diff --git a/test/Feature/packed_struct.ll b/test/Feature/packed_struct.ll new file mode 100755 index 00000000000..97e4d5910fe --- /dev/null +++ b/test/Feature/packed_struct.ll @@ -0,0 +1,29 @@ +; RUN: llvm-as < %s | llvm-dis > %t1.ll +; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll +; RUN: diff %t1.ll %t2.ll && +; RUN: not grep cast %t2.ll && +; RUN: grep "<{" %t2.ll + +%struct.anon = type <{ sbyte, int, int, int }> +%foos = external global %struct.anon +%bara = external global [2 x <{ int, sbyte }>] + +implementation ; Functions: + +int %main() +{ + %tmp = load int* getelementptr (%struct.anon* %foos, int 0, uint 1) ; [#uses=1] + %tmp3 = load int* getelementptr (%struct.anon* %foos, int 0, uint 2) ; [#uses=1] + %tmp6 = load int* getelementptr (%struct.anon* %foos, int 0, uint 3) ; [#uses=1] + %tmp4 = add int %tmp3, %tmp ; [#uses=1] + %tmp7 = add int %tmp4, %tmp6 ; [#uses=1] + ret int %tmp7 +} + +int %bar() { +entry: + %tmp = load int* getelementptr([2 x <{ int, sbyte }>]* %bara, int 0, int 0, uint 0 ) ; [#uses=1] + %tmp4 = load int* getelementptr ([2 x <{ int, sbyte }>]* %bara, int 0, int 1, uint 0) ; [#uses=1] + %tmp5 = add int %tmp4, %tmp ; [#uses=1] + ret int %tmp5 +}