[TwoAddressInstructionPass] When looking for a 3 addr conversion after commuting...
[oota-llvm.git] / test / CodeGen / X86 / 2012-11-28-merge-store-alias.ll
index 756e86e0f8016732e505122a8bfa15fa5e539754..c16deeff3d99a01d47d1dbb0606ee63119a8e029 100644 (file)
@@ -2,7 +2,8 @@
 
 ; CHECK: merge_stores_can
 ; CHECK: callq foo
-; CHECK-NEXT: xorps %xmm0, %xmm0
+; CHECK: xorps %xmm0, %xmm0
+; CHECK-NEXT: movl 36(%rsp), %ebp
 ; CHECK-NEXT: movups  %xmm0
 ; CHECK: callq foo
 ; CHECK: ret
@@ -13,15 +14,15 @@ define i32 @merge_stores_can() nounwind ssp {
 
   %ret0 = call i32 @foo([10 x i32]* %object1) nounwind
 
-  %O1_1 = getelementptr [10 x i32]* %object1, i64 0, i32 1
-  %O1_2 = getelementptr [10 x i32]* %object1, i64 0, i32 2
-  %O1_3 = getelementptr [10 x i32]* %object1, i64 0, i32 3
-  %O1_4 = getelementptr [10 x i32]* %object1, i64 0, i32 4
-  %ld_ptr = getelementptr [10 x i32]* %object1, i64 0, i32 9
+  %O1_1 = getelementptr [10 x i32], [10 x i32]* %object1, i64 0, i32 1
+  %O1_2 = getelementptr [10 x i32], [10 x i32]* %object1, i64 0, i32 2
+  %O1_3 = getelementptr [10 x i32], [10 x i32]* %object1, i64 0, i32 3
+  %O1_4 = getelementptr [10 x i32], [10 x i32]* %object1, i64 0, i32 4
+  %ld_ptr = getelementptr [10 x i32], [10 x i32]* %object1, i64 0, i32 9
 
   store i32 0, i32* %O1_1
   store i32 0, i32* %O1_2
-  %ret = load  i32* %ld_ptr  ; <--- does not alias.
+  %ret = load  i32,  i32* %ld_ptr  ; <--- does not alias.
   store i32 0, i32* %O1_3
   store i32 0, i32* %O1_4
 
@@ -36,15 +37,15 @@ define i32 @merge_stores_can() nounwind ssp {
 ; CHECK: ret
 define i32 @merge_stores_cant([10 x i32]* %in0, [10 x i32]* %in1) nounwind ssp {
 
-  %O1_1 = getelementptr [10 x i32]* %in1, i64 0, i32 1
-  %O1_2 = getelementptr [10 x i32]* %in1, i64 0, i32 2
-  %O1_3 = getelementptr [10 x i32]* %in1, i64 0, i32 3
-  %O1_4 = getelementptr [10 x i32]* %in1, i64 0, i32 4
-  %ld_ptr = getelementptr [10 x i32]* %in0, i64 0, i32 2
+  %O1_1 = getelementptr [10 x i32], [10 x i32]* %in1, i64 0, i32 1
+  %O1_2 = getelementptr [10 x i32], [10 x i32]* %in1, i64 0, i32 2
+  %O1_3 = getelementptr [10 x i32], [10 x i32]* %in1, i64 0, i32 3
+  %O1_4 = getelementptr [10 x i32], [10 x i32]* %in1, i64 0, i32 4
+  %ld_ptr = getelementptr [10 x i32], [10 x i32]* %in0, i64 0, i32 2
 
   store i32 0, i32* %O1_1
   store i32 0, i32* %O1_2
-  %ret = load  i32* %ld_ptr  ;  <--- may alias
+  %ret = load  i32,  i32* %ld_ptr  ;  <--- may alias
   store i32 0, i32* %O1_3
   store i32 0, i32* %O1_4