diff options
Diffstat (limited to 'test/Transforms/SROA/vector-promotion.ll')
-rw-r--r-- | test/Transforms/SROA/vector-promotion.ll | 216 |
1 files changed, 108 insertions, 108 deletions
diff --git a/test/Transforms/SROA/vector-promotion.ll b/test/Transforms/SROA/vector-promotion.ll index c20c635..2d9b26b 100644 --- a/test/Transforms/SROA/vector-promotion.ll +++ b/test/Transforms/SROA/vector-promotion.ll @@ -9,18 +9,18 @@ entry: %a = alloca [2 x <4 x i32>] ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0 store <4 x i32> %x, <4 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1 store <4 x i32> %y, <4 x i32>* %a.y ; CHECK-NOT: store - %a.tmp1 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 - %tmp3 = load i32* %a.tmp3 + %a.tmp1 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 + %tmp3 = load i32, i32* %a.tmp3 ; CHECK-NOT: load ; CHECK: extractelement <4 x i32> %x, i32 2 ; CHECK-NEXT: extractelement <4 x i32> %y, i32 3 @@ -40,19 +40,19 @@ entry: %a = alloca [2 x <4 x i32>] ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0 store <4 x i32> %x, <4 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1 store <4 x i32> %y, <4 x i32>* %a.y ; CHECK-NOT: store - %a.tmp1 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 + %a.tmp1 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 %a.tmp3.cast = bitcast i32* %a.tmp3 to <2 x i32>* - %tmp3.vec = load <2 x i32>* %a.tmp3.cast + %tmp3.vec = load <2 x i32>, <2 x i32>* %a.tmp3.cast %tmp3 = extractelement <2 x i32> %tmp3.vec, i32 0 ; CHECK-NOT: load ; CHECK: %[[extract1:.*]] = extractelement <4 x i32> %x, i32 2 @@ -74,9 +74,9 @@ entry: %a = alloca [2 x <4 x i32>] ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0 store <4 x i32> %x, <4 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1 store <4 x i32> %y, <4 x i32>* %a.y ; CHECK-NOT: store @@ -84,14 +84,14 @@ entry: call void @llvm.memset.p0i8.i32(i8* %a.y.cast, i8 0, i32 16, i32 1, i1 false) ; CHECK-NOT: memset - %a.tmp1 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 + %a.tmp1 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 %a.tmp1.cast = bitcast i32* %a.tmp1 to i8* call void @llvm.memset.p0i8.i32(i8* %a.tmp1.cast, i8 -1, i32 4, i32 1, i1 false) - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 - %tmp3 = load i32* %a.tmp3 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 + %tmp3 = load i32, i32* %a.tmp3 ; CHECK-NOT: load ; CHECK: %[[insert:.*]] = insertelement <4 x i32> %x, i32 -1, i32 2 ; CHECK-NEXT: extractelement <4 x i32> %[[insert]], i32 2 @@ -112,9 +112,9 @@ entry: %a = alloca [2 x <4 x i32>] ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0 store <4 x i32> %x, <4 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1 store <4 x i32> %y, <4 x i32>* %a.y ; CHECK-NOT: store @@ -123,20 +123,20 @@ entry: call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.y.cast, i8* %z.cast, i32 16, i32 1, i1 false) ; CHECK-NOT: memcpy - %a.tmp1 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 + %a.tmp1 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 %a.tmp1.cast = bitcast i32* %a.tmp1 to i8* - %z.tmp1 = getelementptr inbounds <4 x i32>* %z, i64 0, i64 2 + %z.tmp1 = getelementptr inbounds <4 x i32>, <4 x i32>* %z, i64 0, i64 2 %z.tmp1.cast = bitcast i32* %z.tmp1 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.tmp1.cast, i8* %z.tmp1.cast, i32 4, i32 1, i1 false) - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 - %tmp3 = load i32* %a.tmp3 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 + %tmp3 = load i32, i32* %a.tmp3 ; CHECK-NOT: memcpy -; CHECK: %[[load:.*]] = load <4 x i32>* %z -; CHECK-NEXT: %[[gep:.*]] = getelementptr inbounds <4 x i32>* %z, i64 0, i64 2 -; CHECK-NEXT: %[[element_load:.*]] = load i32* %[[gep]] +; CHECK: %[[load:.*]] = load <4 x i32>, <4 x i32>* %z +; CHECK-NEXT: %[[gep:.*]] = getelementptr inbounds <4 x i32>, <4 x i32>* %z, i64 0, i64 2 +; CHECK-NEXT: %[[element_load:.*]] = load i32, i32* %[[gep]] ; CHECK-NEXT: %[[insert:.*]] = insertelement <4 x i32> %x, i32 %[[element_load]], i32 2 ; CHECK-NEXT: extractelement <4 x i32> %[[insert]], i32 2 ; CHECK-NEXT: extractelement <4 x i32> %[[load]], i32 3 @@ -159,9 +159,9 @@ entry: %a = alloca [2 x <4 x i32>] ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0 store <4 x i32> %x, <4 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1 store <4 x i32> %y, <4 x i32>* %a.y ; CHECK-NOT: store @@ -170,20 +170,20 @@ entry: call void @llvm.memcpy.p0i8.p1i8.i32(i8* %a.y.cast, i8 addrspace(1)* %z.cast, i32 16, i32 1, i1 false) ; CHECK-NOT: memcpy - %a.tmp1 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 + %a.tmp1 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 %a.tmp1.cast = bitcast i32* %a.tmp1 to i8* - %z.tmp1 = getelementptr inbounds <4 x i32> addrspace(1)* %z, i16 0, i16 2 + %z.tmp1 = getelementptr inbounds <4 x i32>, <4 x i32> addrspace(1)* %z, i16 0, i16 2 %z.tmp1.cast = bitcast i32 addrspace(1)* %z.tmp1 to i8 addrspace(1)* call void @llvm.memcpy.p0i8.p1i8.i32(i8* %a.tmp1.cast, i8 addrspace(1)* %z.tmp1.cast, i32 4, i32 1, i1 false) - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 - %tmp3 = load i32* %a.tmp3 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 + %tmp3 = load i32, i32* %a.tmp3 ; CHECK-NOT: memcpy -; CHECK: %[[load:.*]] = load <4 x i32> addrspace(1)* %z -; CHECK-NEXT: %[[gep:.*]] = getelementptr inbounds <4 x i32> addrspace(1)* %z, i64 0, i64 2 -; CHECK-NEXT: %[[element_load:.*]] = load i32 addrspace(1)* %[[gep]] +; CHECK: %[[load:.*]] = load <4 x i32>, <4 x i32> addrspace(1)* %z +; CHECK-NEXT: %[[gep:.*]] = getelementptr inbounds <4 x i32>, <4 x i32> addrspace(1)* %z, i64 0, i64 2 +; CHECK-NEXT: %[[element_load:.*]] = load i32, i32 addrspace(1)* %[[gep]] ; CHECK-NEXT: %[[insert:.*]] = insertelement <4 x i32> %x, i32 %[[element_load]], i32 2 ; CHECK-NEXT: extractelement <4 x i32> %[[insert]], i32 2 ; CHECK-NEXT: extractelement <4 x i32> %[[load]], i32 3 @@ -205,9 +205,9 @@ entry: %a = alloca [2 x <4 x i32>] ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0 store <4 x i32> %x, <4 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1 store <4 x i32> %y, <4 x i32>* %a.y ; CHECK-NOT: store @@ -216,18 +216,18 @@ entry: call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.x.cast, i8* %a.y.cast, i32 16, i32 1, i1 false) ; CHECK-NOT: memcpy - %a.tmp1 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 + %a.tmp1 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 0, i64 2 %a.tmp1.cast = bitcast i32* %a.tmp1 to i8* - %z.tmp1 = getelementptr inbounds <4 x i32>* %z, i64 0, i64 2 + %z.tmp1 = getelementptr inbounds <4 x i32>, <4 x i32>* %z, i64 0, i64 2 %z.tmp1.cast = bitcast i32* %z.tmp1 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %z.tmp1.cast, i8* %a.tmp1.cast, i32 4, i32 1, i1 false) - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 - %tmp3 = load i32* %a.tmp3 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 3 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <4 x i32>], [2 x <4 x i32>]* %a, i64 0, i64 1, i64 0 + %tmp3 = load i32, i32* %a.tmp3 ; CHECK-NOT: memcpy -; CHECK: %[[gep:.*]] = getelementptr inbounds <4 x i32>* %z, i64 0, i64 2 +; CHECK: %[[gep:.*]] = getelementptr inbounds <4 x i32>, <4 x i32>* %z, i64 0, i64 2 ; CHECK-NEXT: %[[extract:.*]] = extractelement <4 x i32> %y, i32 2 ; CHECK-NEXT: store i32 %[[extract]], i32* %[[gep]] ; CHECK-NEXT: extractelement <4 x i32> %y, i32 2 @@ -250,14 +250,14 @@ define i64 @test6(<4 x i64> %x, <4 x i64> %y, i64 %n) { ; The old scalarrepl pass would wrongly drop the store to the second alloca. ; PR13254 %tmp = alloca { <4 x i64>, <4 x i64> } - %p0 = getelementptr inbounds { <4 x i64>, <4 x i64> }* %tmp, i32 0, i32 0 + %p0 = getelementptr inbounds { <4 x i64>, <4 x i64> }, { <4 x i64>, <4 x i64> }* %tmp, i32 0, i32 0 store <4 x i64> %x, <4 x i64>* %p0 ; CHECK: store <4 x i64> %x, - %p1 = getelementptr inbounds { <4 x i64>, <4 x i64> }* %tmp, i32 0, i32 1 + %p1 = getelementptr inbounds { <4 x i64>, <4 x i64> }, { <4 x i64>, <4 x i64> }* %tmp, i32 0, i32 1 store <4 x i64> %y, <4 x i64>* %p1 ; CHECK: store <4 x i64> %y, - %addr = getelementptr inbounds { <4 x i64>, <4 x i64> }* %tmp, i32 0, i32 0, i64 %n - %res = load i64* %addr, align 4 + %addr = getelementptr inbounds { <4 x i64>, <4 x i64> }, { <4 x i64>, <4 x i64> }* %tmp, i32 0, i32 0, i64 %n + %res = load i64, i64* %addr, align 4 ret i64 %res } @@ -267,27 +267,27 @@ entry: %a = alloca <4 x i32> ; CHECK-NOT: alloca - %a.gep0 = getelementptr <4 x i32>* %a, i32 0, i32 0 + %a.gep0 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 0 %a.cast0 = bitcast i32* %a.gep0 to <2 x i32>* store <2 x i32> <i32 0, i32 0>, <2 x i32>* %a.cast0 ; CHECK-NOT: store ; CHECK: select <4 x i1> <i1 true, i1 true, i1 false, i1 false> - %a.gep1 = getelementptr <4 x i32>* %a, i32 0, i32 1 + %a.gep1 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 1 %a.cast1 = bitcast i32* %a.gep1 to <2 x i32>* store <2 x i32> <i32 1, i32 1>, <2 x i32>* %a.cast1 ; CHECK-NEXT: select <4 x i1> <i1 false, i1 true, i1 true, i1 false> - %a.gep2 = getelementptr <4 x i32>* %a, i32 0, i32 2 + %a.gep2 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 2 %a.cast2 = bitcast i32* %a.gep2 to <2 x i32>* store <2 x i32> <i32 2, i32 2>, <2 x i32>* %a.cast2 ; CHECK-NEXT: select <4 x i1> <i1 false, i1 false, i1 true, i1 true> - %a.gep3 = getelementptr <4 x i32>* %a, i32 0, i32 3 + %a.gep3 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 3 store i32 3, i32* %a.gep3 ; CHECK-NEXT: insertelement <4 x i32> - %ret = load <4 x i32>* %a + %ret = load <4 x i32>, <4 x i32>* %a ret <4 x i32> %ret ; CHECK-NEXT: ret <4 x i32> @@ -301,20 +301,20 @@ entry: store <4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32>* %a ; CHECK-NOT: store - %a.gep0 = getelementptr <4 x i32>* %a, i32 0, i32 0 + %a.gep0 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 0 %a.cast0 = bitcast i32* %a.gep0 to <2 x i32>* - %first = load <2 x i32>* %a.cast0 + %first = load <2 x i32>, <2 x i32>* %a.cast0 ; CHECK-NOT: load ; CHECK: %[[extract1:.*]] = shufflevector <4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32> undef, <2 x i32> <i32 0, i32 1> - %a.gep1 = getelementptr <4 x i32>* %a, i32 0, i32 1 + %a.gep1 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 1 %a.cast1 = bitcast i32* %a.gep1 to <2 x i32>* - %second = load <2 x i32>* %a.cast1 + %second = load <2 x i32>, <2 x i32>* %a.cast1 ; CHECK-NEXT: %[[extract2:.*]] = shufflevector <4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32> undef, <2 x i32> <i32 1, i32 2> - %a.gep2 = getelementptr <4 x i32>* %a, i32 0, i32 2 + %a.gep2 = getelementptr <4 x i32>, <4 x i32>* %a, i32 0, i32 2 %a.cast2 = bitcast i32* %a.gep2 to <2 x i32>* - %third = load <2 x i32>* %a.cast2 + %third = load <2 x i32>, <2 x i32>* %a.cast2 ; CHECK-NEXT: %[[extract3:.*]] = shufflevector <4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32> undef, <2 x i32> <i32 2, i32 3> %tmp = shufflevector <2 x i32> %first, <2 x i32> %second, <2 x i32> <i32 0, i32 2> @@ -334,28 +334,28 @@ entry: %a = alloca <4 x float> ; CHECK-NOT: alloca - %a.gep0 = getelementptr <4 x float>* %a, i32 0, i32 0 + %a.gep0 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 0 %a.cast0 = bitcast float* %a.gep0 to i8* call void @llvm.memset.p0i8.i32(i8* %a.cast0, i8 0, i32 8, i32 0, i1 false) ; CHECK-NOT: store ; CHECK: select <4 x i1> <i1 true, i1 true, i1 false, i1 false> - %a.gep1 = getelementptr <4 x float>* %a, i32 0, i32 1 + %a.gep1 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 1 %a.cast1 = bitcast float* %a.gep1 to i8* call void @llvm.memset.p0i8.i32(i8* %a.cast1, i8 1, i32 8, i32 0, i1 false) ; CHECK-NEXT: select <4 x i1> <i1 false, i1 true, i1 true, i1 false> - %a.gep2 = getelementptr <4 x float>* %a, i32 0, i32 2 + %a.gep2 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 2 %a.cast2 = bitcast float* %a.gep2 to i8* call void @llvm.memset.p0i8.i32(i8* %a.cast2, i8 3, i32 8, i32 0, i1 false) ; CHECK-NEXT: select <4 x i1> <i1 false, i1 false, i1 true, i1 true> - %a.gep3 = getelementptr <4 x float>* %a, i32 0, i32 3 + %a.gep3 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 3 %a.cast3 = bitcast float* %a.gep3 to i8* call void @llvm.memset.p0i8.i32(i8* %a.cast3, i8 7, i32 4, i32 0, i1 false) ; CHECK-NEXT: insertelement <4 x float> - %ret = load <4 x float>* %a + %ret = load <4 x float>, <4 x float>* %a ret <4 x float> %ret ; CHECK-NEXT: ret <4 x float> @@ -367,35 +367,35 @@ entry: %a = alloca <4 x float> ; CHECK-NOT: alloca - %a.gep0 = getelementptr <4 x float>* %a, i32 0, i32 0 + %a.gep0 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 0 %a.cast0 = bitcast float* %a.gep0 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.cast0, i8* %x, i32 8, i32 0, i1 false) ; CHECK: %[[xptr:.*]] = bitcast i8* %x to <2 x float>* -; CHECK-NEXT: %[[x:.*]] = load <2 x float>* %[[xptr]] +; CHECK-NEXT: %[[x:.*]] = load <2 x float>, <2 x float>* %[[xptr]] ; CHECK-NEXT: %[[expand_x:.*]] = shufflevector <2 x float> %[[x]], <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> ; CHECK-NEXT: select <4 x i1> <i1 true, i1 true, i1 false, i1 false> - %a.gep1 = getelementptr <4 x float>* %a, i32 0, i32 1 + %a.gep1 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 1 %a.cast1 = bitcast float* %a.gep1 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.cast1, i8* %y, i32 8, i32 0, i1 false) ; CHECK-NEXT: %[[yptr:.*]] = bitcast i8* %y to <2 x float>* -; CHECK-NEXT: %[[y:.*]] = load <2 x float>* %[[yptr]] +; CHECK-NEXT: %[[y:.*]] = load <2 x float>, <2 x float>* %[[yptr]] ; CHECK-NEXT: %[[expand_y:.*]] = shufflevector <2 x float> %[[y]], <2 x float> undef, <4 x i32> <i32 undef, i32 0, i32 1, i32 undef> ; CHECK-NEXT: select <4 x i1> <i1 false, i1 true, i1 true, i1 false> - %a.gep2 = getelementptr <4 x float>* %a, i32 0, i32 2 + %a.gep2 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 2 %a.cast2 = bitcast float* %a.gep2 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.cast2, i8* %z, i32 8, i32 0, i1 false) ; CHECK-NEXT: %[[zptr:.*]] = bitcast i8* %z to <2 x float>* -; CHECK-NEXT: %[[z:.*]] = load <2 x float>* %[[zptr]] +; CHECK-NEXT: %[[z:.*]] = load <2 x float>, <2 x float>* %[[zptr]] ; CHECK-NEXT: %[[expand_z:.*]] = shufflevector <2 x float> %[[z]], <2 x float> undef, <4 x i32> <i32 undef, i32 undef, i32 0, i32 1> ; CHECK-NEXT: select <4 x i1> <i1 false, i1 false, i1 true, i1 true> - %a.gep3 = getelementptr <4 x float>* %a, i32 0, i32 3 + %a.gep3 = getelementptr <4 x float>, <4 x float>* %a, i32 0, i32 3 %a.cast3 = bitcast float* %a.gep3 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a.cast3, i8* %f, i32 4, i32 0, i1 false) ; CHECK-NEXT: %[[fptr:.*]] = bitcast i8* %f to float* -; CHECK-NEXT: %[[f:.*]] = load float* %[[fptr]] +; CHECK-NEXT: %[[f:.*]] = load float, float* %[[fptr]] ; CHECK-NEXT: %[[insert_f:.*]] = insertelement <4 x float> call void @llvm.memcpy.p0i8.p0i8.i32(i8* %out, i8* %a.cast2, i32 8, i32 0, i1 false) @@ -403,7 +403,7 @@ entry: ; CHECK-NEXT: %[[extract_out:.*]] = shufflevector <4 x float> %[[insert_f]], <4 x float> undef, <2 x i32> <i32 2, i32 3> ; CHECK-NEXT: store <2 x float> %[[extract_out]], <2 x float>* %[[outptr]] - %ret = load <4 x float>* %a + %ret = load <4 x float>, <4 x float>* %a ret <4 x float> %ret ; CHECK-NEXT: ret <4 x float> %[[insert_f]] @@ -419,7 +419,7 @@ entry: store <3 x i8> undef, <3 x i8>* %retval, align 4 %cast = bitcast <3 x i8>* %retval to i32* - %load = load i32* %cast, align 4 + %load = load i32, i32* %cast, align 4 ret i32 %load ; CHECK: ret i32 } @@ -437,7 +437,7 @@ entry: ; CHECK-NOT: store %cast = bitcast i32* %a to <2 x i8>* - %vec = load <2 x i8>* %cast + %vec = load <2 x i8>, <2 x i8>* %cast ; CHECK-NOT: load ret <2 x i8> %vec @@ -459,7 +459,7 @@ entry: store <2 x i8> %x, <2 x i8>* %cast ; CHECK-NOT: store - %int = load i32* %a + %int = load i32, i32* %a ; CHECK-NOT: load ret i32 %int @@ -477,18 +477,18 @@ entry: %a.cast = bitcast [2 x i64]* %a to [2 x <2 x i32>]* ; CHECK-NOT: alloca - %a.x = getelementptr inbounds [2 x <2 x i32>]* %a.cast, i64 0, i64 0 + %a.x = getelementptr inbounds [2 x <2 x i32>], [2 x <2 x i32>]* %a.cast, i64 0, i64 0 store <2 x i32> %x, <2 x i32>* %a.x - %a.y = getelementptr inbounds [2 x <2 x i32>]* %a.cast, i64 0, i64 1 + %a.y = getelementptr inbounds [2 x <2 x i32>], [2 x <2 x i32>]* %a.cast, i64 0, i64 1 store <2 x i32> %y, <2 x i32>* %a.y ; CHECK-NOT: store - %a.tmp1 = getelementptr inbounds [2 x <2 x i32>]* %a.cast, i64 0, i64 0, i64 1 - %tmp1 = load i32* %a.tmp1 - %a.tmp2 = getelementptr inbounds [2 x <2 x i32>]* %a.cast, i64 0, i64 1, i64 1 - %tmp2 = load i32* %a.tmp2 - %a.tmp3 = getelementptr inbounds [2 x <2 x i32>]* %a.cast, i64 0, i64 1, i64 0 - %tmp3 = load i32* %a.tmp3 + %a.tmp1 = getelementptr inbounds [2 x <2 x i32>], [2 x <2 x i32>]* %a.cast, i64 0, i64 0, i64 1 + %tmp1 = load i32, i32* %a.tmp1 + %a.tmp2 = getelementptr inbounds [2 x <2 x i32>], [2 x <2 x i32>]* %a.cast, i64 0, i64 1, i64 1 + %tmp2 = load i32, i32* %a.tmp2 + %a.tmp3 = getelementptr inbounds [2 x <2 x i32>], [2 x <2 x i32>]* %a.cast, i64 0, i64 1, i64 0 + %tmp3 = load i32, i32* %a.tmp3 ; CHECK-NOT: load ; CHECK: extractelement <2 x i32> %x, i32 1 ; CHECK-NEXT: extractelement <2 x i32> %y, i32 1 @@ -515,9 +515,9 @@ entry: store <2 x i32> %x, <2 x i32>* %a.vec ; CHECK-NOT: store - %tmp1 = load i32* %a.i32 - %a.tmp2 = getelementptr inbounds i32* %a.i32, i64 1 - %tmp2 = load i32* %a.tmp2 + %tmp1 = load i32, i32* %a.i32 + %a.tmp2 = getelementptr inbounds i32, i32* %a.i32, i64 1 + %tmp2 = load i32, i32* %a.tmp2 ; CHECK-NOT: load ; CHECK: extractelement <2 x i32> %x, i32 0 ; CHECK-NEXT: extractelement <2 x i32> %x, i32 1 @@ -539,13 +539,13 @@ entry: ; CHECK-NOT: alloca store i32 %x, i32* %a.i32 - %a.tmp2 = getelementptr inbounds i32* %a.i32, i64 1 + %a.tmp2 = getelementptr inbounds i32, i32* %a.i32, i64 1 store i32 %y, i32* %a.tmp2 ; CHECK-NOT: store ; CHECK: %[[V1:.*]] = insertelement <2 x i32> undef, i32 %x, i32 0 ; CHECK-NEXT: %[[V2:.*]] = insertelement <2 x i32> %[[V1]], i32 %y, i32 1 - %result = load <2 x i32>* %a.vec + %result = load <2 x i32>, <2 x i32>* %a.vec ; CHECK-NOT: load ret <2 x i32> %result @@ -564,13 +564,13 @@ entry: ; CHECK-NOT: alloca store <4 x i16> %x, <4 x i16>* %a.vec2 - %a.tmp2 = getelementptr inbounds i32* %a.i32, i64 1 + %a.tmp2 = getelementptr inbounds i32, i32* %a.i32, i64 1 store i32 %y, i32* %a.tmp2 ; CHECK-NOT: store ; CHECK: %[[V1:.*]] = bitcast <4 x i16> %x to <2 x i32> ; CHECK-NEXT: %[[V2:.*]] = insertelement <2 x i32> %[[V1]], i32 %y, i32 1 - %result = load <2 x i32>* %a.vec1 + %result = load <2 x i32>, <2 x i32>* %a.vec1 ; CHECK-NOT: load ret <2 x i32> %result @@ -590,7 +590,7 @@ entry: ; CHECK-NOT: alloca store <4 x i16> %x, <4 x i16>* %a.vec2 - %a.tmp2 = getelementptr inbounds i32* %a.i32, i64 1 + %a.tmp2 = getelementptr inbounds i32, i32* %a.i32, i64 1 store i32 %y, i32* %a.tmp2 ; CHECK-NOT: store ; CHECK: %[[V1:.*]] = bitcast i32 %y to <2 x i16> @@ -598,7 +598,7 @@ entry: ; CHECK-NEXT: %[[V3:.*]] = select <4 x i1> <i1 false, i1 false, i1 true, i1 true>, <4 x i16> %[[V2]], <4 x i16> %x ; CHECK-NEXT: %[[V4:.*]] = bitcast <4 x i16> %[[V3]] to <2 x float> - %result = load <2 x float>* %a.vec1 + %result = load <2 x float>, <2 x float>* %a.vec1 ; CHECK-NOT: load ret <2 x float> %result @@ -616,7 +616,7 @@ define <4 x float> @test12() { %cast2 = bitcast <3 x i32>* %a to <3 x float>* %cast3 = bitcast <3 x float>* %cast2 to <4 x float>* - %vec = load <4 x float>* %cast3 + %vec = load <4 x float>, <4 x float>* %cast3 ; CHECK-NOT: load ; CHECK: %[[ret:.*]] = bitcast <4 x i32> undef to <4 x float> |