diff options
Diffstat (limited to 'llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll')
-rw-r--r-- | llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll b/llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll new file mode 100644 index 00000000000..f7f15932480 --- /dev/null +++ b/llvm/test/Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll @@ -0,0 +1,34 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -scalarrepl -disable-output +target endian = big +target pointersize = 32 + %struct.rtx_def = type { [2 x ubyte], int, [1 x %union.rtunion_def] } + %union.rtunion_def = type { uint } + +implementation ; Functions: + +void %find_reloads() { +entry: + %c_addr.i = alloca sbyte ; <sbyte*> [#uses=1] + switch uint 0, label %return [ + uint 36, label %label.7 + uint 34, label %label.7 + uint 41, label %label.5 + ] + +label.5: ; preds = %entry + ret void + +label.7: ; preds = %entry, %entry + br bool false, label %then.4, label %switchexit.0 + +then.4: ; preds = %label.7 + %tmp.0.i = cast sbyte* %c_addr.i to int* ; <int*> [#uses=1] + store int 44, int* %tmp.0.i + ret void + +switchexit.0: ; preds = %label.7 + ret void + +return: ; preds = %entry + ret void +} |