CodeGen peephole: fold redundant phys reg copies
[oota-llvm.git] / test / CodeGen / X86 / packed_struct.ll
index 2a781e7e546bed361ef79ef61b91c0cdb6fa7e7b..c9aeb7deb4f3a7ca519606cd994e1d11eab65ae3 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=x86 > %t
+; RUN: llc < %s -march=x86 > %t
 ; RUN: grep foos+5 %t
 ; RUN: grep foos+1 %t
 ; RUN: grep foos+9 %t
@@ -15,20 +15,20 @@ target triple = "i686-pc-linux-gnu"
 @foos = external global %struct.anon           ; <%struct.anon*> [#uses=3]
 @bara = weak global [4 x <{ i32, i8 }>] zeroinitializer                ; <[4 x <{ i32, i8 }>]*> [#uses=2]
 
-define i32 @foo() {
+define i32 @foo() nounwind {
 entry:
-       %tmp = load i32* getelementptr (%struct.anon* @foos, i32 0, i32 1)              ; <i32> [#uses=1]
-       %tmp3 = load i32* getelementptr (%struct.anon* @foos, i32 0, i32 2)             ; <i32> [#uses=1]
-       %tmp6 = load i32* getelementptr (%struct.anon* @foos, i32 0, i32 3)             ; <i32> [#uses=1]
+       %tmp = load i32, i32* getelementptr (%struct.anon, %struct.anon* @foos, i32 0, i32 1)           ; <i32> [#uses=1]
+       %tmp3 = load i32, i32* getelementptr (%struct.anon, %struct.anon* @foos, i32 0, i32 2)          ; <i32> [#uses=1]
+       %tmp6 = load i32, i32* getelementptr (%struct.anon, %struct.anon* @foos, i32 0, i32 3)          ; <i32> [#uses=1]
        %tmp4 = add i32 %tmp3, %tmp             ; <i32> [#uses=1]
        %tmp7 = add i32 %tmp4, %tmp6            ; <i32> [#uses=1]
        ret i32 %tmp7
 }
 
-define i8 @bar() {
+define i8 @bar() nounwind {
 entry:
-       %tmp = load i8* getelementptr ([4 x <{ i32, i8 }>]* @bara, i32 0, i32 0, i32 1)         ; <i8> [#uses=1]
-       %tmp4 = load i8* getelementptr ([4 x <{ i32, i8 }>]* @bara, i32 0, i32 3, i32 1)                ; <i8> [#uses=1]
+       %tmp = load i8, i8* getelementptr ([4 x <{ i32, i8 }>], [4 x <{ i32, i8 }>]* @bara, i32 0, i32 0, i32 1)                ; <i8> [#uses=1]
+       %tmp4 = load i8, i8* getelementptr ([4 x <{ i32, i8 }>], [4 x <{ i32, i8 }>]* @bara, i32 0, i32 3, i32 1)               ; <i8> [#uses=1]
        %tmp5 = add i8 %tmp4, %tmp              ; <i8> [#uses=1]
        ret i8 %tmp5
 }