diff options
Diffstat (limited to 'test/Transforms/ScalarRepl')
53 files changed, 321 insertions, 315 deletions
diff --git a/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll b/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll index 7116199d02..336c0a9dfa 100644 --- a/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll +++ b/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll @@ -5,9 +5,9 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 define i32 @test() nounwind { %X = alloca [4 x i32] ; <[4 x i32]*> [#uses=1] - %Y = getelementptr [4 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=1] + %Y = getelementptr [4 x i32], [4 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=1] ; Must preserve arrayness! - %Z = getelementptr i32* %Y, i64 1 ; <i32*> [#uses=1] - %A = load i32* %Z ; <i32> [#uses=1] + %Z = getelementptr i32, i32* %Y, i64 1 ; <i32*> [#uses=1] + %A = load i32, i32* %Z ; <i32> [#uses=1] ret i32 %A } diff --git a/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll b/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll index 3f28cb187f..c5ca428be4 100644 --- a/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll +++ b/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll @@ -4,8 +4,8 @@ define i8* @test() { %A = alloca [30 x i8] ; <[30 x i8]*> [#uses=1] - %B = getelementptr [30 x i8]* %A, i64 0, i64 0 ; <i8*> [#uses=2] - %C = getelementptr i8* %B, i64 1 ; <i8*> [#uses=1] + %B = getelementptr [30 x i8], [30 x i8]* %A, i64 0, i64 0 ; <i8*> [#uses=2] + %C = getelementptr i8, i8* %B, i64 1 ; <i8*> [#uses=1] store i8 0, i8* %B ret i8* %C } diff --git a/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll b/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll index 77c7b54b63..ce652737bc 100644 --- a/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll +++ b/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll @@ -7,9 +7,9 @@ declare void @.iter_2(i32 (i8*)*, i8*) define i32 @main() { %d = alloca %T ; <{ [80 x i8], i32, i32 }*> [#uses=2] - %tmp.0 = getelementptr %T* %d, i64 0, i32 2 ; <i32*> [#uses=1] + %tmp.0 = getelementptr %T, %T* %d, i64 0, i32 2 ; <i32*> [#uses=1] store i32 0, i32* %tmp.0 - %tmp.1 = getelementptr %T* %d, i64 0, i32 0, i64 0 ; <i8*> [#uses=1] + %tmp.1 = getelementptr %T, %T* %d, i64 0, i32 0, i64 0 ; <i8*> [#uses=1] call void @.iter_2( i32 (i8*)* @.callback_1, i8* %tmp.1 ) ret i32 0 } diff --git a/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll b/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll index 99c9fb9ef3..2701fdaea5 100644 --- a/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll +++ b/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll @@ -5,14 +5,14 @@ define i32 @func(<4 x float> %v0, <4 x float> %v1) nounwind { %vsiidx = alloca [2 x <4 x i32>], align 16 ; <[2 x <4 x i32>]*> [#uses=3] %tmp = call <4 x i32> @llvm.x86.sse2.cvttps2dq( <4 x float> %v0 ) ; <<4 x i32>> [#uses=2] %tmp.upgrd.1 = bitcast <4 x i32> %tmp to <2 x i64> ; <<2 x i64>> [#uses=0] - %tmp.upgrd.2 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 0 ; <<4 x i32>*> [#uses=1] + %tmp.upgrd.2 = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* %vsiidx, i32 0, i32 0 ; <<4 x i32>*> [#uses=1] store <4 x i32> %tmp, <4 x i32>* %tmp.upgrd.2 %tmp10 = call <4 x i32> @llvm.x86.sse2.cvttps2dq( <4 x float> %v1 ) ; <<4 x i32>> [#uses=2] %tmp10.upgrd.3 = bitcast <4 x i32> %tmp10 to <2 x i64> ; <<2 x i64>> [#uses=0] - %tmp14 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 1 ; <<4 x i32>*> [#uses=1] + %tmp14 = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* %vsiidx, i32 0, i32 1 ; <<4 x i32>*> [#uses=1] store <4 x i32> %tmp10, <4 x i32>* %tmp14 - %tmp15 = getelementptr [2 x <4 x i32>]* %vsiidx, i32 0, i32 0, i32 4 ; <i32*> [#uses=1] - %tmp.upgrd.4 = load i32* %tmp15 ; <i32> [#uses=1] + %tmp15 = getelementptr [2 x <4 x i32>], [2 x <4 x i32>]* %vsiidx, i32 0, i32 0, i32 4 ; <i32*> [#uses=1] + %tmp.upgrd.4 = load i32, i32* %tmp15 ; <i32> [#uses=1] ret i32 %tmp.upgrd.4 } diff --git a/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll b/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll index cf96c4cc20..966b17939f 100644 --- a/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll +++ b/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll @@ -11,12 +11,12 @@ target triple = "i686-apple-darwin8" define void @_Z4testP9UnionTypePS0_(%struct.UnionType* %p, %struct.UnionType** %pointerToUnion) { entry: %tmp = alloca %struct.UnionType, align 8 - %tmp2 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0 - %tmp13 = getelementptr %struct.UnionType* %p, i32 0, i32 0, i32 0 + %tmp2 = getelementptr %struct.UnionType, %struct.UnionType* %tmp, i32 0, i32 0, i32 0 + %tmp13 = getelementptr %struct.UnionType, %struct.UnionType* %p, i32 0, i32 0, i32 0 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp2, i8* %tmp13, i32 8, i32 0, i1 false) - %tmp5 = load %struct.UnionType** %pointerToUnion - %tmp56 = getelementptr %struct.UnionType* %tmp5, i32 0, i32 0, i32 0 - %tmp7 = getelementptr %struct.UnionType* %tmp, i32 0, i32 0, i32 0 + %tmp5 = load %struct.UnionType*, %struct.UnionType** %pointerToUnion + %tmp56 = getelementptr %struct.UnionType, %struct.UnionType* %tmp5, i32 0, i32 0, i32 0 + %tmp7 = getelementptr %struct.UnionType, %struct.UnionType* %tmp, i32 0, i32 0, i32 0 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp56, i8* %tmp7, i32 8, i32 0, i1 false) ret void } diff --git a/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll b/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll index 48abffe5f5..28f503a210 100644 --- a/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll +++ b/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll @@ -1,5 +1,11 @@ ; RUN: opt < %s -scalarrepl -S | not grep shr +; FIXME: I think this test is no longer valid. +; It was working because SROA was aborting when +; no datalayout was supplied +; XFAIL: * + + %struct.S = type { i16 } define zeroext i1 @f(i16 signext %b) { @@ -10,21 +16,21 @@ entry: %tmp = alloca i32 ; <i32*> [#uses=2] %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0] store i16 %b, i16* %b_addr - %tmp1 = getelementptr %struct.S* %s, i32 0, i32 0 ; <i16*> [#uses=1] - %tmp2 = load i16* %b_addr, align 2 ; <i16> [#uses=1] + %tmp1 = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0 ; <i16*> [#uses=1] + %tmp2 = load i16, i16* %b_addr, align 2 ; <i16> [#uses=1] store i16 %tmp2, i16* %tmp1, align 2 - %tmp3 = getelementptr %struct.S* %s, i32 0, i32 0 ; <i16*> [#uses=1] + %tmp3 = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0 ; <i16*> [#uses=1] %tmp34 = bitcast i16* %tmp3 to [2 x i1]* ; <[2 x i1]*> [#uses=1] - %tmp5 = getelementptr [2 x i1]* %tmp34, i32 0, i32 1 ; <i1*> [#uses=1] - %tmp6 = load i1* %tmp5, align 1 ; <i1> [#uses=1] + %tmp5 = getelementptr [2 x i1], [2 x i1]* %tmp34, i32 0, i32 1 ; <i1*> [#uses=1] + %tmp6 = load i1, i1* %tmp5, align 1 ; <i1> [#uses=1] %tmp67 = zext i1 %tmp6 to i32 ; <i32> [#uses=1] store i32 %tmp67, i32* %tmp, align 4 - %tmp8 = load i32* %tmp, align 4 ; <i32> [#uses=1] + %tmp8 = load i32, i32* %tmp, align 4 ; <i32> [#uses=1] store i32 %tmp8, i32* %retval, align 4 br label %return return: ; preds = %entry - %retval9 = load i32* %retval ; <i32> [#uses=1] + %retval9 = load i32, i32* %retval ; <i32> [#uses=1] %retval910 = trunc i32 %retval9 to i1 ; <i1> [#uses=1] ret i1 %retval910 } diff --git a/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll b/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll index a53f3deadc..99366b3644 100644 --- a/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll +++ b/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll @@ -10,10 +10,10 @@ entry: %T3 = bitcast [1 x %struct.T]* %s to i32* store i32 -61184, i32* %T3 - %tmp16 = getelementptr [1 x %struct.T]* %s, i32 0, i32 0 ; <%struct.T*> [#uses=1] - %tmp17 = getelementptr %struct.T* %tmp16, i32 0, i32 1 ; <[3 x i8]*> [#uses=1] + %tmp16 = getelementptr [1 x %struct.T], [1 x %struct.T]* %s, i32 0, i32 0 ; <%struct.T*> [#uses=1] + %tmp17 = getelementptr %struct.T, %struct.T* %tmp16, i32 0, i32 1 ; <[3 x i8]*> [#uses=1] %tmp1718 = bitcast [3 x i8]* %tmp17 to i32* ; <i32*> [#uses=1] - %tmp19 = load i32* %tmp1718, align 4 ; <i32> [#uses=1] + %tmp19 = load i32, i32* %tmp1718, align 4 ; <i32> [#uses=1] %mask = and i32 %tmp19, 16777215 ; <i32> [#uses=2] %mask2324 = trunc i32 %mask to i8 ; <i8> [#uses=1] ret i8 %mask2324 diff --git a/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll b/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll index 7f8ef83105..f37b6529a5 100644 --- a/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll +++ b/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll @@ -6,11 +6,11 @@ target triple = "i686-apple-darwin8" define i32 @main(i32 %argc, i8** %argv) { entry: %c = alloca %struct..0anon ; <%struct..0anon*> [#uses=2] - %tmp2 = getelementptr %struct..0anon* %c, i32 0, i32 0 ; <<1 x i64>*> [#uses=1] + %tmp2 = getelementptr %struct..0anon, %struct..0anon* %c, i32 0, i32 0 ; <<1 x i64>*> [#uses=1] store <1 x i64> zeroinitializer, <1 x i64>* %tmp2, align 8 - %tmp7 = getelementptr %struct..0anon* %c, i32 0, i32 0 ; <<1 x i64>*> [#uses=1] + %tmp7 = getelementptr %struct..0anon, %struct..0anon* %c, i32 0, i32 0 ; <<1 x i64>*> [#uses=1] %tmp78 = bitcast <1 x i64>* %tmp7 to [2 x i32]* ; <[2 x i32]*> [#uses=1] - %tmp9 = getelementptr [2 x i32]* %tmp78, i32 0, i32 0 ; <i32*> [#uses=1] - %tmp10 = load i32* %tmp9, align 4 ; <i32> [#uses=0] + %tmp9 = getelementptr [2 x i32], [2 x i32]* %tmp78, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp10 = load i32, i32* %tmp9, align 4 ; <i32> [#uses=0] unreachable } diff --git a/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll b/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll index ce70a1b13b..d1f3312117 100644 --- a/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll +++ b/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll @@ -14,8 +14,8 @@ define i32 @foo() { ; And store it store { i32, i32 } %res2, { i32, i32 }* %target ; Actually use %target, so it doesn't get removed altogether - %ptr = getelementptr { i32, i32 }* %target, i32 0, i32 0 - %val = load i32* %ptr + %ptr = getelementptr { i32, i32 }, { i32, i32 }* %target, i32 0, i32 0 + %val = load i32, i32* %ptr ret i32 %val } @@ -27,7 +27,7 @@ define i32 @bar() { ; And store it store [ 2 x i32 ] %res2, [ 2 x i32 ]* %target ; Actually use %target, so it doesn't get removed altogether - %ptr = getelementptr [ 2 x i32 ]* %target, i32 0, i32 0 - %val = load i32* %ptr + %ptr = getelementptr [ 2 x i32 ], [ 2 x i32 ]* %target, i32 0, i32 0 + %val = load i32, i32* %ptr ret i32 %val } diff --git a/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll b/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll index b2a9d43b22..c0ff25f354 100644 --- a/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll +++ b/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll @@ -13,8 +13,8 @@ entry: %r1 = bitcast %struct.x* %r to i8* %s2 = bitcast %struct.x* %s to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %r1, i8* %s2, i32 12, i32 8, i1 false) - %1 = getelementptr %struct.x* %r, i32 0, i32 0, i32 1 - %2 = load i32* %1, align 4 + %1 = getelementptr %struct.x, %struct.x* %r, i32 0, i32 0, i32 1 + %2 = load i32, i32* %1, align 4 ret i32 %2 } diff --git a/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll b/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll index 7554b7f2b0..16d9108bb2 100644 --- a/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll +++ b/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll @@ -12,11 +12,11 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 define void @main(%struct.two* %D, i16 %V) { entry: %S = alloca %struct.two - %S.2 = getelementptr %struct.two* %S, i32 0, i32 1 + %S.2 = getelementptr %struct.two, %struct.two* %S, i32 0, i32 1 store i16 %V, i16* %S.2 ; This gep is effectively a bitcast to i8*, but is sometimes generated ; because the type of the first element in %struct.two is i8. - %tmpS = getelementptr %struct.two* %S, i32 0, i32 0, i32 0 + %tmpS = getelementptr %struct.two, %struct.two* %S, i32 0, i32 0, i32 0 %tmpD = bitcast %struct.two* %D to i8* call void @llvm.memmove.p0i8.p0i8.i32(i8* %tmpD, i8* %tmpS, i32 4, i32 1, i1 false) ret void diff --git a/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll b/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll index 3c8a364edc..f0af1caa46 100644 --- a/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll +++ b/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll @@ -6,11 +6,11 @@ target triple = "i386-pc-linux-gnu" define i32 @f(i32 %x, i32 %y) { %instance = alloca %pair - %first = getelementptr %pair* %instance, i32 0, i32 0 + %first = getelementptr %pair, %pair* %instance, i32 0, i32 0 %cast = bitcast [1 x i32]* %first to i32* store i32 %x, i32* %cast - %second = getelementptr %pair* %instance, i32 0, i32 1 + %second = getelementptr %pair, %pair* %instance, i32 0, i32 1 store i32 %y, i32* %second - %v = load i32* %cast + %v = load i32, i32* %cast ret i32 %v } diff --git a/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll b/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll index 67228a7a3c..56375ffe79 100644 --- a/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll +++ b/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll @@ -9,7 +9,7 @@ entry: %tmp = alloca { i64, i64 }, align 8 ; <{ i64, i64 }*> [#uses=2] store { i64, i64 } %0, { i64, i64 }* %tmp %1 = bitcast { i64, i64 }* %tmp to %struct.anon* ; <%struct.anon*> [#uses=1] - %2 = load %struct.anon* %1, align 8 ; <%struct.anon> [#uses=1] + %2 = load %struct.anon, %struct.anon* %1, align 8 ; <%struct.anon> [#uses=1] %tmp3 = extractvalue %struct.anon %2, 0 ret i32 %tmp3 } diff --git a/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll b/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll index a4182d4c1d..025578c7f4 100644 --- a/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll +++ b/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll @@ -9,7 +9,7 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 define void @f(i8* %p) nounwind { entry: %s = alloca %struct.st, align 4 ; <%struct.st*> [#uses=2] - %0 = getelementptr %struct.st* %s, i32 0, i32 0 ; <i16*> [#uses=1] + %0 = getelementptr %struct.st, %struct.st* %s, i32 0, i32 0 ; <i16*> [#uses=1] store i16 1, i16* %0, align 4 %s1 = bitcast %struct.st* %s to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i32(i8* %p, i8* %s1, i32 2, i32 1, i1 false) diff --git a/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll b/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll index 1f921914fc..d1cc4244cc 100644 --- a/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll +++ b/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll @@ -25,37 +25,37 @@ entry: %tmp2 = alloca %struct.int16x8x2_t %0 = alloca %struct.int16x8x2_t %"alloca point" = bitcast i32 0 to i32 - %1 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 + %1 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %tmp_addr, i32 0, i32 0 store <8 x i16> %tmp.0, <8 x i16>* %1 store %struct.int16x8x2_t* %dst, %struct.int16x8x2_t** %dst_addr - %2 = getelementptr inbounds %struct.int16x8_t* %__ax, i32 0, i32 0 - %3 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 - %4 = load <8 x i16>* %3, align 16 + %2 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__ax, i32 0, i32 0 + %3 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %tmp_addr, i32 0, i32 0 + %4 = load <8 x i16>, <8 x i16>* %3, align 16 store <8 x i16> %4, <8 x i16>* %2, align 16 - %5 = getelementptr inbounds %struct.int16x8_t* %__bx, i32 0, i32 0 - %6 = getelementptr inbounds %struct.int16x8_t* %tmp_addr, i32 0, i32 0 - %7 = load <8 x i16>* %6, align 16 + %5 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__bx, i32 0, i32 0 + %6 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %tmp_addr, i32 0, i32 0 + %7 = load <8 x i16>, <8 x i16>* %6, align 16 store <8 x i16> %7, <8 x i16>* %5, align 16 - %8 = getelementptr inbounds %struct.int16x8_t* %__ax, i32 0, i32 0 - %9 = load <8 x i16>* %8, align 16 - %10 = getelementptr inbounds %struct.int16x8_t* %__bx, i32 0, i32 0 - %11 = load <8 x i16>* %10, align 16 - %12 = getelementptr inbounds %union..0anon* %__rv, i32 0, i32 0 + %8 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__ax, i32 0, i32 0 + %9 = load <8 x i16>, <8 x i16>* %8, align 16 + %10 = getelementptr inbounds %struct.int16x8_t, %struct.int16x8_t* %__bx, i32 0, i32 0 + %11 = load <8 x i16>, <8 x i16>* %10, align 16 + %12 = getelementptr inbounds %union..0anon, %union..0anon* %__rv, i32 0, i32 0 %13 = bitcast %struct.int16x8x2_t* %12 to %struct.__neon_int16x8x2_t* %14 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14> - %15 = getelementptr inbounds %struct.__neon_int16x8x2_t* %13, i32 0, i32 0 + %15 = getelementptr inbounds %struct.__neon_int16x8x2_t, %struct.__neon_int16x8x2_t* %13, i32 0, i32 0 store <8 x i16> %14, <8 x i16>* %15 %16 = shufflevector <8 x i16> %9, <8 x i16> %11, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15> - %17 = getelementptr inbounds %struct.__neon_int16x8x2_t* %13, i32 0, i32 1 + %17 = getelementptr inbounds %struct.__neon_int16x8x2_t, %struct.__neon_int16x8x2_t* %13, i32 0, i32 1 store <8 x i16> %16, <8 x i16>* %17 - %18 = getelementptr inbounds %union..0anon* %__rv, i32 0, i32 0 + %18 = getelementptr inbounds %union..0anon, %union..0anon* %__rv, i32 0, i32 0 %19 = bitcast %struct.int16x8x2_t* %0 to i8* %20 = bitcast %struct.int16x8x2_t* %18 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %19, i8* %20, i32 32, i32 16, i1 false) %tmp21 = bitcast %struct.int16x8x2_t* %tmp2 to i8* %21 = bitcast %struct.int16x8x2_t* %0 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp21, i8* %21, i32 32, i32 16, i1 false) - %22 = load %struct.int16x8x2_t** %dst_addr, align 4 + %22 = load %struct.int16x8x2_t*, %struct.int16x8x2_t** %dst_addr, align 4 %23 = bitcast %struct.int16x8x2_t* %22 to i8* %tmp22 = bitcast %struct.int16x8x2_t* %tmp2 to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %23, i8* %tmp22, i32 32, i32 16, i1 false) diff --git a/test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll b/test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll index 816cb60e82..997d03b059 100644 --- a/test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll +++ b/test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll @@ -17,7 +17,7 @@ entry: %tmp = bitcast [4 x i32]* %l_10 to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp, i8* bitcast ([4 x i32]* @func_1.l_10 to i8*), i64 16, i32 16, i1 false) ; CHECK: call void @llvm.memcpy - %arrayidx = getelementptr inbounds [4 x i32]* %l_10, i64 0, i64 0 + %arrayidx = getelementptr inbounds [4 x i32], [4 x i32]* %l_10, i64 0, i64 0 %call = call i32* @noop(i32* %arrayidx) store i32 0, i32* %call ret i32 0 diff --git a/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll b/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll index 459688547f..dee27f8e30 100644 --- a/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll +++ b/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll @@ -16,12 +16,12 @@ define void @main() uwtable ssp { entry: %ref.tmp2 = alloca %0, align 16 %tmpcast = bitcast %0* %ref.tmp2 to %struct.Point_3* - %0 = getelementptr %0* %ref.tmp2, i64 0, i32 0 + %0 = getelementptr %0, %0* %ref.tmp2, i64 0, i32 0 store <2 x float> zeroinitializer, <2 x float>* %0, align 16 - %1 = getelementptr inbounds %struct.Point_3* %tmpcast, i64 0, i32 0 - %base.i.i.i = getelementptr inbounds %struct.PointC3* %1, i64 0, i32 0 - %arrayidx.i.i.i.i = getelementptr inbounds %struct.array* %base.i.i.i, i64 0, i32 0, i64 0 - %tmp5.i.i = load float* %arrayidx.i.i.i.i, align 4 + %1 = getelementptr inbounds %struct.Point_3, %struct.Point_3* %tmpcast, i64 0, i32 0 + %base.i.i.i = getelementptr inbounds %struct.PointC3, %struct.PointC3* %1, i64 0, i32 0 + %arrayidx.i.i.i.i = getelementptr inbounds %struct.array, %struct.array* %base.i.i.i, i64 0, i32 0, i64 0 + %tmp5.i.i = load float, float* %arrayidx.i.i.i.i, align 4 ret void } @@ -33,9 +33,9 @@ define void @test1() uwtable ssp { entry: %ref.tmp2 = alloca {<2 x float>, float}, align 16 %tmpcast = bitcast {<2 x float>, float}* %ref.tmp2 to float* - %0 = getelementptr {<2 x float>, float}* %ref.tmp2, i64 0, i32 0 + %0 = getelementptr {<2 x float>, float}, {<2 x float>, float}* %ref.tmp2, i64 0, i32 0 store <2 x float> zeroinitializer, <2 x float>* %0, align 16 - %tmp5.i.i = load float* %tmpcast, align 4 + %tmp5.i.i = load float, float* %tmpcast, align 4 ret void } @@ -50,12 +50,12 @@ define float @test2() uwtable ssp { entry: %ref.tmp2 = alloca {<2 x float>, float}, align 16 %tmpcast = bitcast {<2 x float>, float}* %ref.tmp2 to float* - %tmpcast2 = getelementptr {<2 x float>, float}* %ref.tmp2, i64 0, i32 1 - %0 = getelementptr {<2 x float>, float}* %ref.tmp2, i64 0, i32 0 + %tmpcast2 = getelementptr {<2 x float>, float}, {<2 x float>, float}* %ref.tmp2, i64 0, i32 1 + %0 = getelementptr {<2 x float>, float}, {<2 x float>, float}* %ref.tmp2, i64 0, i32 0 store <2 x float> zeroinitializer, <2 x float>* %0, align 16 store float 1.0, float* %tmpcast2, align 4 - %r1 = load float* %tmpcast, align 4 - %r2 = load float* %tmpcast2, align 4 + %r1 = load float, float* %tmpcast, align 4 + %r2 = load float, float* %tmpcast2, align 4 %r = fadd float %r1, %r2 ret float %r } @@ -69,7 +69,7 @@ entry: %ai = alloca { <2 x float>, <2 x float> }, align 8 store { <2 x float>, <2 x float> } {<2 x float> <float 0.0, float 1.0>, <2 x float> <float 2.0, float 3.0>}, { <2 x float>, <2 x float> }* %ai, align 8 %tmpcast = bitcast { <2 x float>, <2 x float> }* %ai to [4 x float]* - %arrayidx = getelementptr inbounds [4 x float]* %tmpcast, i64 0, i64 3 - %f = load float* %arrayidx, align 4 + %arrayidx = getelementptr inbounds [4 x float], [4 x float]* %tmpcast, i64 0, i64 3 + %f = load float, float* %arrayidx, align 4 ret float %f } diff --git a/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll b/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll index f8530d68a8..af6d1f36fa 100644 --- a/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll +++ b/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll @@ -14,7 +14,7 @@ entry: %a = alloca <4 x float>, align 16 %p = bitcast <4 x float>* %a to i8* call void @llvm.memset.p0i8.i32(i8* %p, i8 0, i32 3, i32 16, i1 false) - %vec = load <4 x float>* %a, align 8 + %vec = load <4 x float>, <4 x float>* %a, align 8 %val = extractelement <4 x float> %vec, i32 0 ret float %val } @@ -29,7 +29,7 @@ entry: %p = bitcast { <4 x float> }* %a to i8* call void @llvm.memset.p0i8.i32(i8* %p, i8 0, i32 16, i32 16, i1 false) %q = bitcast { <4 x float> }* %a to [2 x <2 x float>]* - %arrayidx = getelementptr inbounds [2 x <2 x float>]* %q, i32 0, i32 0 + %arrayidx = getelementptr inbounds [2 x <2 x float>], [2 x <2 x float>]* %q, i32 0, i32 0 store <2 x float> undef, <2 x float>* %arrayidx, align 8 ret void } diff --git a/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll b/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll index 5f4d0fc7e1..9a24662f41 100644 --- a/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll +++ b/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll @@ -25,7 +25,7 @@ else: ; preds = %2 join: ; preds = %then, %else %storemerge.in = phi i32* [ %retptr2, %else ], [ %retptr1, %then ] - %storemerge = load i32* %storemerge.in + %storemerge = load i32, i32* %storemerge.in %x3 = call i32 @extern_fn2(i32 %storemerge) ret void diff --git a/test/Transforms/ScalarRepl/2011-10-22-VectorCrash.ll b/test/Transforms/ScalarRepl/2011-10-22-VectorCrash.ll index e4456361a6..c9c1a148a4 100644 --- a/test/Transforms/ScalarRepl/2011-10-22-VectorCrash.ll +++ b/test/Transforms/ScalarRepl/2011-10-22-VectorCrash.ll @@ -11,7 +11,7 @@ define void @test() nounwind { entry: %u = alloca %union.anon, align 16 %u164 = bitcast %union.anon* %u to [4 x i32]* - %arrayidx165 = getelementptr inbounds [4 x i32]* %u164, i32 0, i32 0 + %arrayidx165 = getelementptr inbounds [4 x i32], [4 x i32]* %u164, i32 0, i32 0 store i32 undef, i32* %arrayidx165, align 4 %v186 = bitcast %union.anon* %u to <4 x float>* store <4 x float> undef, <4 x float>* %v186, align 16 diff --git a/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll b/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll index da707b706d..51d1d146a9 100644 --- a/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll +++ b/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll @@ -13,13 +13,13 @@ define double @test() nounwind uwtable ssp { entry: %retval = alloca %struct.S, align 8 %ret = alloca %struct.S, align 8 - %b = getelementptr inbounds %struct.S* %ret, i32 0, i32 1 + %b = getelementptr inbounds %struct.S, %struct.S* %ret, i32 0, i32 1 store double 1.000000e+00, double* %b, align 8 %0 = bitcast %struct.S* %retval to i8* %1 = bitcast %struct.S* %ret to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* %1, i64 8, i32 8, i1 false) %2 = bitcast %struct.S* %retval to double* - %3 = load double* %2, align 1 + %3 = load double, double* %2, align 1 ret double %3 } diff --git a/test/Transforms/ScalarRepl/AggregatePromote.ll b/test/Transforms/ScalarRepl/AggregatePromote.ll index 16b327356b..f6dfdf5534 100644 --- a/test/Transforms/ScalarRepl/AggregatePromote.ll +++ b/test/Transforms/ScalarRepl/AggregatePromote.ll @@ -10,7 +10,7 @@ define i64 @test1(i64 %X) { %B = bitcast i64* %A to i32* ; <i32*> [#uses=1] %C = bitcast i32* %B to i8* ; <i8*> [#uses=1] store i8 0, i8* %C - %Y = load i64* %A ; <i64> [#uses=1] + %Y = load i64, i64* %A ; <i64> [#uses=1] ret i64 %Y } @@ -18,22 +18,22 @@ define i8 @test2(i64 %X) { %X_addr = alloca i64 ; <i64*> [#uses=2] store i64 %X, i64* %X_addr %tmp.0 = bitcast i64* %X_addr to i32* ; <i32*> [#uses=1] - %tmp.1 = getelementptr i32* %tmp.0, i32 1 ; <i32*> [#uses=1] + %tmp.1 = getelementptr i32, i32* %tmp.0, i32 1 ; <i32*> [#uses=1] %tmp.2 = bitcast i32* %tmp.1 to i8* ; <i8*> [#uses=1] - %tmp.3 = getelementptr i8* %tmp.2, i32 3 ; <i8*> [#uses=1] - %tmp.2.upgrd.1 = load i8* %tmp.3 ; <i8> [#uses=1] + %tmp.3 = getelementptr i8, i8* %tmp.2, i32 3 ; <i8*> [#uses=1] + %tmp.2.upgrd.1 = load i8, i8* %tmp.3 ; <i8> [#uses=1] ret i8 %tmp.2.upgrd.1 } define i16 @crafty(i64 %X) { %a = alloca { i64 } ; <{ i64 }*> [#uses=2] - %tmp.0 = getelementptr { i64 }* %a, i32 0, i32 0 ; <i64*> [#uses=1] + %tmp.0 = getelementptr { i64 }, { i64 }* %a, i32 0, i32 0 ; <i64*> [#uses=1] store i64 %X, i64* %tmp.0 %tmp.3 = bitcast { i64 }* %a to [4 x i16]* ; <[4 x i16]*> [#uses=2] - %tmp.4 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 3 ; <i16*> [#uses=1] - %tmp.5 = load i16* %tmp.4 ; <i16> [#uses=1] - %tmp.8 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 2 ; <i16*> [#uses=1] - %tmp.9 = load i16* %tmp.8 ; <i16> [#uses=1] + %tmp.4 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 3 ; <i16*> [#uses=1] + %tmp.5 = load i16, i16* %tmp.4 ; <i16> [#uses=1] + %tmp.8 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 2 ; <i16*> [#uses=1] + %tmp.9 = load i16, i16* %tmp.8 ; <i16> [#uses=1] %tmp.10 = or i16 %tmp.9, %tmp.5 ; <i16> [#uses=1] ret i16 %tmp.10 } @@ -42,10 +42,10 @@ define i16 @crafty2(i64 %X) { %a = alloca i64 ; <i64*> [#uses=2] store i64 %X, i64* %a %tmp.3 = bitcast i64* %a to [4 x i16]* ; <[4 x i16]*> [#uses=2] - %tmp.4 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 3 ; <i16*> [#uses=1] - %tmp.5 = load i16* %tmp.4 ; <i16> [#uses=1] - %tmp.8 = getelementptr [4 x i16]* %tmp.3, i32 0, i32 2 ; <i16*> [#uses=1] - %tmp.9 = load i16* %tmp.8 ; <i16> [#uses=1] + %tmp.4 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 3 ; <i16*> [#uses=1] + %tmp.5 = load i16, i16* %tmp.4 ; <i16> [#uses=1] + %tmp.8 = getelementptr [4 x i16], [4 x i16]* %tmp.3, i32 0, i32 2 ; <i16*> [#uses=1] + %tmp.9 = load i16, i16* %tmp.8 ; <i16> [#uses=1] %tmp.10 = or i16 %tmp.9, %tmp.5 ; <i16> [#uses=1] ret i16 %tmp.10 } diff --git a/test/Transforms/ScalarRepl/DifferingTypes.ll b/test/Transforms/ScalarRepl/DifferingTypes.ll index 933c47f798..3860f6cd75 100644 --- a/test/Transforms/ScalarRepl/DifferingTypes.ll +++ b/test/Transforms/ScalarRepl/DifferingTypes.ll @@ -10,7 +10,7 @@ define i32 @testfunc(i32 %i, i8 %j) { store i32 %i, i32* %I %P = bitcast i32* %I to i8* ; <i8*> [#uses=1] store i8 %j, i8* %P - %t = load i32* %I ; <i32> [#uses=1] + %t = load i32, i32* %I ; <i32> [#uses=1] ret i32 %t } diff --git a/test/Transforms/ScalarRepl/address-space.ll b/test/Transforms/ScalarRepl/address-space.ll index d8efc1774b..b8b90efefc 100644 --- a/test/Transforms/ScalarRepl/address-space.ll +++ b/test/Transforms/ScalarRepl/address-space.ll @@ -7,22 +7,22 @@ target triple = "x86_64-apple-darwin10" %struct.anon = type { [1 x float] } ; CHECK-LABEL: define void @Test( -; CHECK: load float addrspace(2)* +; CHECK: load float, float addrspace(2)* ; CHECK-NEXT: fsub float ; CHECK: store float {{.*}}, float addrspace(2)* define void @Test(%struct.anon addrspace(2)* %pPtr) nounwind { entry: %s = alloca %struct.anon, align 4 ; <%struct.anon*> [#uses=3] - %arrayidx = getelementptr inbounds %struct.anon addrspace(2)* %pPtr, i64 0 ; <%struct.anon addrspace(2)*> [#uses=1] + %arrayidx = getelementptr inbounds %struct.anon, %struct.anon addrspace(2)* %pPtr, i64 0 ; <%struct.anon addrspace(2)*> [#uses=1] %tmp1 = bitcast %struct.anon* %s to i8* ; <i8*> [#uses=1] %tmp2 = bitcast %struct.anon addrspace(2)* %arrayidx to i8 addrspace(2)* ; <i8 addrspace(2)*> [#uses=1] call void @llvm.memcpy.p0i8.p2i8.i64(i8* %tmp1, i8 addrspace(2)* %tmp2, i64 4, i32 4, i1 false) - %tmp3 = getelementptr inbounds %struct.anon* %s, i32 0, i32 0 ; <[1 x float]*> [#uses=1] - %arrayidx4 = getelementptr inbounds [1 x float]* %tmp3, i32 0, i64 0 ; <float*> [#uses=2] - %tmp5 = load float* %arrayidx4 ; <float> [#uses=1] + %tmp3 = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 0 ; <[1 x float]*> [#uses=1] + %arrayidx4 = getelementptr inbounds [1 x float], [1 x float]* %tmp3, i32 0, i64 0 ; <float*> [#uses=2] + %tmp5 = load float, float* %arrayidx4 ; <float> [#uses=1] %sub = fsub float %tmp5, 5.000000e+00 ; <float> [#uses=1] store float %sub, float* %arrayidx4 - %arrayidx7 = getelementptr inbounds %struct.anon addrspace(2)* %pPtr, i64 0 ; <%struct.anon addrspace(2)*> [#uses=1] + %arrayidx7 = getelementptr inbounds %struct.anon, %struct.anon addrspace(2)* %pPtr, i64 0 ; <%struct.anon addrspace(2)*> [#uses=1] %tmp8 = bitcast %struct.anon addrspace(2)* %arrayidx7 to i8 addrspace(2)* ; <i8 addrspace(2)*> [#uses=1] %tmp9 = bitcast %struct.anon* %s to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p2i8.p0i8.i64(i8 addrspace(2)* %tmp8, i8* %tmp9, i64 4, i32 4, i1 false) diff --git a/test/Transforms/ScalarRepl/arraytest.ll b/test/Transforms/ScalarRepl/arraytest.ll index 06a928c6d8..486e725fa6 100644 --- a/test/Transforms/ScalarRepl/arraytest.ll +++ b/test/Transforms/ScalarRepl/arraytest.ll @@ -3,9 +3,9 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 define i32 @test() { %X = alloca [4 x i32] ; <[4 x i32]*> [#uses=1] - %Y = getelementptr [4 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=2] + %Y = getelementptr [4 x i32], [4 x i32]* %X, i64 0, i64 0 ; <i32*> [#uses=2] store i32 0, i32* %Y - %Z = load i32* %Y ; <i32> [#uses=1] + %Z = load i32, i32* %Y ; <i32> [#uses=1] ret i32 %Z } diff --git a/test/Transforms/ScalarRepl/badarray.ll b/test/Transforms/ScalarRepl/badarray.ll index 480e12b8d4..6f5bc95b43 100644 --- a/test/Transforms/ScalarRepl/badarray.ll +++ b/test/Transforms/ScalarRepl/badarray.ll @@ -10,9 +10,9 @@ define i32 @test1() { ; CHECK-LABEL: @test1( ; CHECK-NOT: = alloca %X = alloca [4 x i32] - %Y = getelementptr [4 x i32]* %X, i64 0, i64 6 ; <i32*> [#uses=2] + %Y = getelementptr [4 x i32], [4 x i32]* %X, i64 0, i64 6 ; <i32*> [#uses=2] store i32 0, i32* %Y - %Z = load i32* %Y ; <i32> [#uses=1] + %Z = load i32, i32* %Y ; <i32> [#uses=1] ret i32 %Z } @@ -24,7 +24,7 @@ entry: ; CHECK-NOT: = alloca %yx2.i = alloca float, align 4 ; <float*> [#uses=1] %yx26.i = bitcast float* %yx2.i to i64* ; <i64*> [#uses=1] - %0 = load i64* %yx26.i, align 8 ; <i64> [#uses=0] + %0 = load i64, i64* %yx26.i, align 8 ; <i64> [#uses=0] unreachable } @@ -38,9 +38,9 @@ entry: ; CHECK-NOT: = alloca ; CHECK: store i64 %var_1 = alloca %padded, align 8 ; <%padded*> [#uses=3] - %0 = getelementptr inbounds %padded* %var_1, i32 0, i32 0 ; <%base*> [#uses=2] + %0 = getelementptr inbounds %padded, %padded* %var_1, i32 0, i32 0 ; <%base*> [#uses=2] - %p2 = getelementptr inbounds %base* %0, i32 0, i32 1, i32 0 ; <i8*> [#uses=1] + %p2 = getelementptr inbounds %base, %base* %0, i32 0, i32 1, i32 0 ; <i8*> [#uses=1] store i8 72, i8* %p2, align 1 ; 72 -> a[0]. diff --git a/test/Transforms/ScalarRepl/basictest.ll b/test/Transforms/ScalarRepl/basictest.ll index af3c237d49..35d4d3ba86 100644 --- a/test/Transforms/ScalarRepl/basictest.ll +++ b/test/Transforms/ScalarRepl/basictest.ll @@ -3,9 +3,9 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 define i32 @test1() { %X = alloca { i32, float } ; <{ i32, float }*> [#uses=1] - %Y = getelementptr { i32, float }* %X, i64 0, i32 0 ; <i32*> [#uses=2] + %Y = getelementptr { i32, float }, { i32, float }* %X, i64 0, i32 0 ; <i32*> [#uses=2] store i32 0, i32* %Y - %Z = load i32* %Y ; <i32> [#uses=1] + %Z = load i32, i32* %Y ; <i32> [#uses=1] ret i32 %Z ; CHECK-LABEL: @test1( ; CHECK-NOT: alloca @@ -21,7 +21,7 @@ define i64 @test2(i64 %X) { br label %L2 L2: - %Z = load i64* %B ; <i32> [#uses=1] + %Z = load i64, i64* %B ; <i32> [#uses=1] ret i64 %Z ; CHECK-LABEL: @test2( ; CHECK-NOT: alloca diff --git a/test/Transforms/ScalarRepl/bitfield-sroa.ll b/test/Transforms/ScalarRepl/bitfield-sroa.ll index 3728658caa..52986b0a49 100644 --- a/test/Transforms/ScalarRepl/bitfield-sroa.ll +++ b/test/Transforms/ScalarRepl/bitfield-sroa.ll @@ -7,11 +7,11 @@ define i8 @foo(i64 %A) { %ALL = alloca %t, align 8 %tmp59172 = bitcast %t* %ALL to i64* store i64 %A, i64* %tmp59172, align 8 - %C = getelementptr %t* %ALL, i32 0, i32 0, i32 1 + %C = getelementptr %t, %t* %ALL, i32 0, i32 0, i32 1 %D = bitcast i16* %C to i32* - %E = load i32* %D, align 4 + %E = load i32, i32* %D, align 4 %F = bitcast %t* %ALL to i8* - %G = load i8* %F, align 8 + %G = load i8, i8* %F, align 8 ret i8 %G } diff --git a/test/Transforms/ScalarRepl/copy-aggregate.ll b/test/Transforms/ScalarRepl/copy-aggregate.ll index 51ba8109b3..97977dbf11 100644 --- a/test/Transforms/ScalarRepl/copy-aggregate.ll +++ b/test/Transforms/ScalarRepl/copy-aggregate.ll @@ -10,10 +10,10 @@ define i32 @test1(i64 %V) nounwind { %Y = bitcast {{i32,i32}}* %X to i64* store i64 %V, i64* %Y - %A = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 0 - %B = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 1 - %a = load i32* %A - %b = load i32* %B + %A = getelementptr {{i32,i32}}, {{i32,i32}}* %X, i32 0, i32 0, i32 0 + %B = getelementptr {{i32,i32}}, {{i32,i32}}* %X, i32 0, i32 0, i32 1 + %a = load i32, i32* %A + %b = load i32, i32* %B %c = add i32 %a, %b ret i32 %c } @@ -26,10 +26,10 @@ define float @test2(i128 %V) nounwind { %Y = bitcast {[4 x float]}* %X to i128* store i128 %V, i128* %Y - %A = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 0 - %B = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 3 - %a = load float* %A - %b = load float* %B + %A = getelementptr {[4 x float]}, {[4 x float]}* %X, i32 0, i32 0, i32 0 + %B = getelementptr {[4 x float]}, {[4 x float]}* %X, i32 0, i32 0, i32 3 + %a = load float, float* %A + %b = load float, float* %B %c = fadd float %a, %b ret float %c } @@ -40,13 +40,13 @@ define i64 @test3(i32 %a, i32 %b) nounwind { ; CHECK-NOT: alloca %X = alloca {{i32, i32}} - %A = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 0 - %B = getelementptr {{i32,i32}}* %X, i32 0, i32 0, i32 1 + %A = getelementptr {{i32,i32}}, {{i32,i32}}* %X, i32 0, i32 0, i32 0 + %B = getelementptr {{i32,i32}}, {{i32,i32}}* %X, i32 0, i32 0, i32 1 store i32 %a, i32* %A store i32 %b, i32* %B %Y = bitcast {{i32,i32}}* %X to i64* - %Z = load i64* %Y + %Z = load i64, i64* %Y ret i64 %Z } @@ -55,13 +55,13 @@ define i128 @test4(float %a, float %b) nounwind { ; CHECK: test4 ; CHECK-NOT: alloca %X = alloca {[4 x float]} - %A = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 0 - %B = getelementptr {[4 x float]}* %X, i32 0, i32 0, i32 3 + %A = getelementptr {[4 x float]}, {[4 x float]}* %X, i32 0, i32 0, i32 0 + %B = getelementptr {[4 x float]}, {[4 x float]}* %X, i32 0, i32 0, i32 3 store float %a, float* %A store float %b, float* %B %Y = bitcast {[4 x float]}* %X to i128* - %V = load i128* %Y + %V = load i128, i128* %Y ret i128 %V } diff --git a/test/Transforms/ScalarRepl/crash.ll b/test/Transforms/ScalarRepl/crash.ll index 8c60dceb8b..72e9f090fb 100644 --- a/test/Transforms/ScalarRepl/crash.ll +++ b/test/Transforms/ScalarRepl/crash.ll @@ -11,7 +11,7 @@ entry: unreachable for.cond: ; preds = %for.cond - %tmp1.i = load i32** %l_72, align 8 + %tmp1.i = load i32*, i32** %l_72, align 8 store i32* %tmp1.i, i32** %l_72, align 8 br label %for.cond @@ -22,15 +22,15 @@ if.end: ; No predecessors! define void @test2() { %E = alloca { { i32, float, double, i64 }, { i32, float, double, i64 } } ; <{ { i32, float, double, i64 }, { i32, float, double, i64 } }*> [#uses=1] - %tmp.151 = getelementptr { { i32, float, double, i64 }, { i32, float, double, i64 } }* %E, i64 0, i32 1, i32 3 ; <i64*> [#uses=0] + %tmp.151 = getelementptr { { i32, float, double, i64 }, { i32, float, double, i64 } }, { { i32, float, double, i64 }, { i32, float, double, i64 } }* %E, i64 0, i32 1, i32 3 ; <i64*> [#uses=0] ret void } define i32 @test3() { %X = alloca { [4 x i32] } ; <{ [4 x i32] }*> [#uses=1] - %Y = getelementptr { [4 x i32] }* %X, i64 0, i32 0, i64 2 ; <i32*> [#uses=2] + %Y = getelementptr { [4 x i32] }, { [4 x i32] }* %X, i64 0, i32 0, i64 2 ; <i32*> [#uses=2] store i32 4, i32* %Y - %Z = load i32* %Y ; <i32> [#uses=1] + %Z = load i32, i32* %Y ; <i32> [#uses=1] ret i32 %Z } @@ -102,11 +102,11 @@ bb9131: ; preds = %bb1365 ret void bb9875: ; preds = %bb1365 %source_ptr9884 = bitcast i8** %source_ptr to i8** ; <i8**> [#uses=1] - %tmp9885 = load i8** %source_ptr9884 ; <i8*> [#uses=0] + %tmp9885 = load i8*, i8** %source_ptr9884 ; <i8*> [#uses=0] ret void bb10249: ; preds = %bb1365 %source_ptr10257 = bitcast i8** %source_ptr to i16** ; <i16**> [#uses=1] - %tmp10258 = load i16** %source_ptr10257 ; <i16*> [#uses=0] + %tmp10258 = load i16*, i16** %source_ptr10257 ; <i16*> [#uses=0] ret void cond_next10377: ; preds = %bb1365 ret void @@ -125,10 +125,10 @@ entry: %this_addr.i = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"**> [#uses=3] %tmp = alloca %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", align 4 ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] store %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i - %tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] + %tmp.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] %tmp.i.upgrd.1 = bitcast %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp.i to %"struct.__gnu_cxx::bitmap_allocator<char>"* ; <%"struct.__gnu_cxx::bitmap_allocator<char>"*> [#uses=0] - %tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] - %tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0 ; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0] + %tmp1.i = load %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*, %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"** %this_addr.i ; <%"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"*> [#uses=1] + %tmp.i.upgrd.2 = getelementptr %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>", %"struct.__gnu_cxx::balloc::_Inclusive_between<__gnu_cxx::bitmap_allocator<char>::_Alloc_block*>"* %tmp1.i, i32 0, i32 0 ; <%"struct.__gnu_cxx::bitmap_allocator<char>::_Alloc_block"**> [#uses=0] unreachable } @@ -161,8 +161,8 @@ cond_next: ; preds = %cond_true br i1 false, label %cond_next34, label %cond_next79 cond_next34: ; preds = %cond_next - %i.2.reload22 = load i32* null ; <i32> [#uses=1] - %tmp51 = getelementptr %struct.aal_spanbucket_t* %SB, i32 0, i32 2, i32 0, i32 0, i32 %i.2.reload22, i32 1 + %i.2.reload22 = load i32, i32* null ; <i32> [#uses=1] + %tmp51 = getelementptr %struct.aal_spanbucket_t, %struct.aal_spanbucket_t* %SB, i32 0, i32 2, i32 0, i32 0, i32 %i.2.reload22, i32 1 ; <i16*> [#uses=0] ret void @@ -180,7 +180,7 @@ cond_next79: ; preds = %cond_next, %entry define void @test8() { entry: %v = alloca %struct.c37304a__vrec - %0 = getelementptr %struct.c37304a__vrec* %v, i32 0, i32 0 + %0 = getelementptr %struct.c37304a__vrec, %struct.c37304a__vrec* %v, i32 0, i32 0 store i8 8, i8* %0, align 1 unreachable } @@ -193,7 +193,7 @@ entry: define i32 @test9() { entry: %.compoundliteral = alloca %0 - %tmp228 = getelementptr %0* %.compoundliteral, i32 0, i32 7 + %tmp228 = getelementptr %0, %0* %.compoundliteral, i32 0, i32 7 %tmp229 = bitcast [0 x i16]* %tmp228 to i8* call void @llvm.memset.p0i8.i64(i8* %tmp229, i8 0, i64 0, i32 2, i1 false) unreachable @@ -207,7 +207,7 @@ declare void @llvm.memset.i64(i8* nocapture, i8, i64, i32) nounwind define void @test10() { entry: %w = alloca %wrapper, align 8 ; <%wrapper*> [#uses=1] - %0 = getelementptr %wrapper* %w, i64 0, i32 0 ; <i1*> + %0 = getelementptr %wrapper, %wrapper* %w, i64 0, i32 0 ; <i1*> store i1 true, i1* %0 ret void } @@ -220,8 +220,8 @@ entry: %a = alloca %struct.singlebool, align 1 ; <%struct.singlebool*> [#uses=2] %storetmp.i = bitcast %struct.singlebool* %a to i1* ; <i1*> [#uses=1] store i1 true, i1* %storetmp.i - %tmp = getelementptr %struct.singlebool* %a, i64 0, i32 0 ; <i8*> [#uses=1] - %tmp1 = load i8* %tmp ; <i8> [#uses=1] + %tmp = getelementptr %struct.singlebool, %struct.singlebool* %a, i64 0, i32 0 ; <i8*> [#uses=1] + %tmp1 = load i8, i8* %tmp ; <i8> [#uses=1] ret i8 %tmp1 } @@ -246,7 +246,7 @@ define void @test12() { bb4.i: %malloccall = tail call i8* @malloc(i32 0) %0 = bitcast i8* %malloccall to [0 x %struct.Item]* - %.sub.i.c.i = getelementptr [0 x %struct.Item]* %0, i32 0, i32 0 ; <%struct.Item*> [#uses=0] + %.sub.i.c.i = getelementptr [0 x %struct.Item], [0 x %struct.Item]* %0, i32 0, i32 0 ; <%struct.Item*> [#uses=0] unreachable } declare noalias i8* @malloc(i32) @@ -268,13 +268,13 @@ define fastcc void @test() optsize inlinehint ssp align 2 { entry: %alloc.0.0 = alloca <4 x float>, align 16 %bitcast = bitcast <4 x float>* %alloc.0.0 to [4 x float]* - %idx3 = getelementptr inbounds [4 x float]* %bitcast, i32 0, i32 3 + %idx3 = getelementptr inbounds [4 x float], [4 x float]* %bitcast, i32 0, i32 3 store float 0.000000e+00, float* %idx3, align 4 br label %for.body10 for.body10: ; preds = %for.body10, %entry %loopidx = phi i32 [ 0, %entry ], [ undef, %for.body10 ] - %unusedidx = getelementptr inbounds <4 x float>* %alloc.0.0, i32 0, i32 %loopidx + %unusedidx = getelementptr inbounds <4 x float>, <4 x float>* %alloc.0.0, i32 0, i32 %loopidx br i1 undef, label %for.end, label %for.body10 for.end: ; preds = %for.body10 diff --git a/test/Transforms/ScalarRepl/debuginfo-preserved.ll b/test/Transforms/ScalarRepl/debuginfo-preserved.ll index b0c459e21b..80ce25e768 100644 --- a/test/Transforms/ScalarRepl/debuginfo-preserved.ll +++ b/test/Transforms/ScalarRepl/debuginfo-preserved.ll @@ -17,22 +17,22 @@ entry: %b.addr = alloca i32, align 4 %c = alloca i32, align 4 store i32 %a, i32* %a.addr, align 4 - call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !6, metadata !{}), !dbg !7 + call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !6, metadata !MDExpression()), !dbg !7 store i32 %b, i32* %b.addr, align 4 - call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !8, metadata !{}), !dbg !9 - call void @llvm.dbg.declare(metadata i32* %c, metadata !10, metadata !{}), !dbg !12 - %tmp = load i32* %a.addr, align 4, !dbg !13 + call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !8, metadata !MDExpression()), !dbg !9 + call void @llvm.dbg.declare(metadata i32* %c, metadata !10, metadata !MDExpression()), !dbg !12 + %tmp = load i32, i32* %a.addr, align 4, !dbg !13 store i32 %tmp, i32* %c, align 4, !dbg !13 - %tmp1 = load i32* %a.addr, align 4, !dbg !14 - %tmp2 = load i32* %b.addr, align 4, !dbg !14 + %tmp1 = load i32, i32* %a.addr, align 4, !dbg !14 + %tmp2 = load i32, i32* %b.addr, align 4, !dbg !14 %add = add nsw i32 %tmp1, %tmp2, !dbg !14 store i32 %add, i32* %a.addr, align 4, !dbg !14 - %tmp3 = load i32* %c, align 4, !dbg !15 - %tmp4 = load i32* %b.addr, align 4, !dbg !15 + %tmp3 = load i32, i32* %c, align 4, !dbg !15 + %tmp4 = load i32, i32* %b.addr, align 4, !dbg !15 %sub = sub nsw i32 %tmp3, %tmp4, !dbg !15 store i32 %sub, i32* %b.addr, align 4, !dbg !15 - %tmp5 = load i32* %a.addr, align 4, !dbg !16 - %tmp6 = load i32* %b.addr, align 4, !dbg !16 + %tmp5 = load i32, i32* %a.addr, align 4, !dbg !16 + %tmp6 = load i32, i32* %b.addr, align 4, !dbg !16 %add7 = add nsw i32 %tmp5, %tmp6, !dbg !16 ret i32 %add7, !dbg !16 } @@ -42,24 +42,24 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone !llvm.dbg.cu = !{!0} !llvm.module.flags = !{!20} -!0 = !{!"0x11\0012\00clang version 3.0 (trunk 131941)\000\00\000\00\000", !18, !19, !19, !17, null, null} ; [ DW_TAG_compile_unit ] -!1 = !{!"0x2e\00f\00f\00\001\000\001\000\006\00256\000\001", !18, !2, !3, null, i32 (i32, i32)* @f, null, null, null} ; [ DW_TAG_subprogram ] [line 1] [def] [f] -!2 = !{!"0x29", !18} ; [ DW_TAG_file_type ] -!3 = !{!"0x15\00\000\000\000\000\000\000", !18, !2, null, !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.0 (trunk 131941)", isOptimized: false, emissionKind: 0, file: !18, enums: !19, retainedTypes: !19, subprograms: !17) +!1 = !MDSubprogram(name: "f", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 1, file: !18, scope: !2, type: !3, function: i32 (i32, i32)* @f) +!2 = !MDFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b") +!3 = !MDSubroutineType(types: !4) !4 = !{!5} -!5 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !0} ; [ DW_TAG_base_type ] -!6 = !{!"0x101\00a\0016777217\000", !1, !2, !5} ; [ DW_TAG_arg_variable ] +!5 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!6 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "a", line: 1, arg: 1, scope: !1, file: !2, type: !5) !7 = !MDLocation(line: 1, column: 11, scope: !1) -!8 = !{!"0x101\00b\0033554433\000", !1, !2, !5} ; [ DW_TAG_arg_variable ] +!8 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "b", line: 1, arg: 2, scope: !1, file: !2, type: !5) !9 = !MDLocation(line: 1, column: 18, scope: !1) -!10 = !{!"0x100\00c\002\000", !11, !2, !5} ; [ DW_TAG_auto_variable ] -!11 = !{!"0xb\001\0021\000", !18, !1} ; [ DW_TAG_lexical_block ] +!10 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "c", line: 2, scope: !11, file: !2, type: !5) +!11 = distinct !MDLexicalBlock(line: 1, column: 21, file: !18, scope: !1) !12 = !MDLocation(line: 2, column: 9, scope: !11) !13 = !MDLocation(line: 2, column: 14, scope: !11) !14 = !MDLocation(line: 3, column: 5, scope: !11) !15 = !MDLocation(line: 4, column: 5, scope: !11) !16 = !MDLocation(line: 5, column: 5, scope: !11) !17 = !{!1} -!18 = !{!"/d/j/debug-test.c", !"/Volumes/Data/b"} +!18 = !MDFile(filename: "/d/j/debug-test.c", directory: "/Volumes/Data/b") !19 = !{i32 0} -!20 = !{i32 1, !"Debug Info Version", i32 2} +!20 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/test/Transforms/ScalarRepl/inline-vector.ll b/test/Transforms/ScalarRepl/inline-vector.ll index f7c70dcd55..5d856c6d8f 100644 --- a/test/Transforms/ScalarRepl/inline-vector.ll +++ b/test/Transforms/ScalarRepl/inline-vector.ll @@ -30,20 +30,20 @@ for.body: ; preds = %for.cond %tmp3 = bitcast %struct.Vector4* %vector to i8* call void @llvm.memcpy.p0i8.p0i8.i32(i8* %tmp2, i8* %tmp3, i32 16, i32 16, i1 false) %0 = bitcast %struct.Vector4* %agg.tmp to [2 x i64]* - %1 = load [2 x i64]* %0, align 16 + %1 = load [2 x i64], [2 x i64]* %0, align 16 %tmp2.i = extractvalue [2 x i64] %1, 0 %tmp3.i = zext i64 %tmp2.i to i128 %tmp10.i = bitcast i128 %tmp3.i to <4 x float> %sub.i.i = fsub <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, %tmp10.i %2 = bitcast %struct.Vector4* %vector to <4 x float>* store <4 x float> %sub.i.i, <4 x float>* %2, align 16 - %tmp4 = load i32* %i, align 4 + %tmp4 = load i32, i32* %i, align 4 %inc = add nsw i32 %tmp4, 1 br label %for.cond for.end: ; preds = %for.cond - %x = getelementptr inbounds %struct.Vector4* %vector, i32 0, i32 0 - %tmp5 = load float* %x, align 16 + %x = getelementptr inbounds %struct.Vector4, %struct.Vector4* %vector, i32 0, i32 0 + %tmp5 = load float, float* %x, align 16 %conv = fpext float %tmp5 to double %call = call i32 (...)* @printf(double %conv) nounwind ret void diff --git a/test/Transforms/ScalarRepl/lifetime.ll b/test/Transforms/ScalarRepl/lifetime.ll index 47cb854982..c0ddfb58bb 100644 --- a/test/Transforms/ScalarRepl/lifetime.ll +++ b/test/Transforms/ScalarRepl/lifetime.ll @@ -11,9 +11,9 @@ declare void @llvm.lifetime.end(i64, i8*) define void @test1() { ; CHECK-LABEL: @test1( %A = alloca %t1 - %A1 = getelementptr %t1* %A, i32 0, i32 0 - %A2 = getelementptr %t1* %A, i32 0, i32 1 - %A3 = getelementptr %t1* %A, i32 0, i32 2 + %A1 = getelementptr %t1, %t1* %A, i32 0, i32 0 + %A2 = getelementptr %t1, %t1* %A, i32 0, i32 1 + %A3 = getelementptr %t1, %t1* %A, i32 0, i32 2 %B = bitcast i32* %A1 to i8* store i32 0, i32* %A1 call void @llvm.lifetime.start(i64 -1, i8* %B) @@ -24,13 +24,13 @@ define void @test1() { define void @test2() { ; CHECK-LABEL: @test2( %A = alloca %t1 - %A1 = getelementptr %t1* %A, i32 0, i32 0 - %A2 = getelementptr %t1* %A, i32 0, i32 1 - %A3 = getelementptr %t1* %A, i32 0, i32 2 + %A1 = getelementptr %t1, %t1* %A, i32 0, i32 0 + %A2 = getelementptr %t1, %t1* %A, i32 0, i32 1 + %A3 = getelementptr %t1, %t1* %A, i32 0, i32 2 %B = bitcast i32* %A2 to i8* store i32 0, i32* %A2 call void @llvm.lifetime.start(i64 -1, i8* %B) - %C = load i32* %A2 + %C = load i32, i32* %A2 ret void ; CHECK: ret void } @@ -38,13 +38,13 @@ define void @test2() { define void @test3() { ; CHECK-LABEL: @test3( %A = alloca %t1 - %A1 = getelementptr %t1* %A, i32 0, i32 0 - %A2 = getelementptr %t1* %A, i32 0, i32 1 - %A3 = getelementptr %t1* %A, i32 0, i32 2 + %A1 = getelementptr %t1, %t1* %A, i32 0, i32 0 + %A2 = getelementptr %t1, %t1* %A, i32 0, i32 1 + %A3 = getelementptr %t1, %t1* %A, i32 0, i32 2 %B = bitcast i32* %A2 to i8* store i32 0, i32* %A2 call void @llvm.lifetime.start(i64 6, i8* %B) - %C = load i32* %A2 + %C = load i32, i32* %A2 ret void ; CHECK-NEXT: ret void } @@ -52,13 +52,13 @@ define void @test3() { define void @test4() { ; CHECK-LABEL: @test4( %A = alloca %t1 - %A1 = getelementptr %t1* %A, i32 0, i32 0 - %A2 = getelementptr %t1* %A, i32 0, i32 1 - %A3 = getelementptr %t1* %A, i32 0, i32 2 + %A1 = getelementptr %t1, %t1* %A, i32 0, i32 0 + %A2 = getelementptr %t1, %t1* %A, i32 0, i32 1 + %A3 = getelementptr %t1, %t1* %A, i32 0, i32 2 %B = bitcast i32* %A2 to i8* store i32 0, i32* %A2 call void @llvm.lifetime.start(i64 1, i8* %B) - %C = load i32* %A2 + %C = load i32, i32* %A2 ret void ; CHECK-NEXT: ret void } @@ -72,25 +72,25 @@ define void @test5() { ; CHECK: alloca{{.*}}i8 ; CHECK: alloca{{.*}}i8 - %A21 = getelementptr %t2* %A, i32 0, i32 1, i32 0 - %A22 = getelementptr %t2* %A, i32 0, i32 1, i32 1 - %A23 = getelementptr %t2* %A, i32 0, i32 1, i32 2 - %A24 = getelementptr %t2* %A, i32 0, i32 1, i32 3 + %A21 = getelementptr %t2, %t2* %A, i32 0, i32 1, i32 0 + %A22 = getelementptr %t2, %t2* %A, i32 0, i32 1, i32 1 + %A23 = getelementptr %t2, %t2* %A, i32 0, i32 1, i32 2 + %A24 = getelementptr %t2, %t2* %A, i32 0, i32 1, i32 3 ; CHECK-NOT: store i8 1 store i8 1, i8* %A21 store i8 2, i8* %A22 store i8 3, i8* %A23 store i8 4, i8* %A24 - %A1 = getelementptr %t2* %A, i32 0, i32 0 - %A2 = getelementptr %t2* %A, i32 0, i32 1, i32 1 - %A3 = getelementptr %t2* %A, i32 0, i32 2 + %A1 = getelementptr %t2, %t2* %A, i32 0, i32 0 + %A2 = getelementptr %t2, %t2* %A, i32 0, i32 1, i32 1 + %A3 = getelementptr %t2, %t2* %A, i32 0, i32 2 store i8 0, i8* %A2 call void @llvm.lifetime.start(i64 5, i8* %A2) ; CHECK: llvm.lifetime{{.*}}i64 1 ; CHECK: llvm.lifetime{{.*}}i64 1 ; CHECK: llvm.lifetime{{.*}}i64 1 - %C = load i8* %A2 + %C = load i8, i8* %A2 ret void } @@ -103,10 +103,10 @@ define void @test6() { ; CHECK: alloca i8 ; CHECK: alloca i8 - %A11 = getelementptr %t3* %A, i32 0, i32 0, i32 0 - %A12 = getelementptr %t3* %A, i32 0, i32 0, i32 1 - %A13 = getelementptr %t3* %A, i32 0, i32 0, i32 2 - %A14 = getelementptr %t3* %A, i32 0, i32 0, i32 3 + %A11 = getelementptr %t3, %t3* %A, i32 0, i32 0, i32 0 + %A12 = getelementptr %t3, %t3* %A, i32 0, i32 0, i32 1 + %A13 = getelementptr %t3, %t3* %A, i32 0, i32 0, i32 2 + %A14 = getelementptr %t3, %t3* %A, i32 0, i32 0, i32 3 store i16 11, i16* %A11 store i16 12, i16* %A12 store i16 13, i16* %A13 @@ -116,10 +116,10 @@ define void @test6() { ; CHECK-NOT: store i16 13 ; CHECK-NOT: store i16 14 - %A21 = getelementptr %t3* %A, i32 0, i32 1, i32 0 - %A22 = getelementptr %t3* %A, i32 0, i32 1, i32 1 - %A23 = getelementptr %t3* %A, i32 0, i32 1, i32 2 - %A24 = getelementptr %t3* %A, i32 0, i32 1, i32 3 + %A21 = getelementptr %t3, %t3* %A, i32 0, i32 1, i32 0 + %A22 = getelementptr %t3, %t3* %A, i32 0, i32 1, i32 1 + %A23 = getelementptr %t3, %t3* %A, i32 0, i32 1, i32 2 + %A24 = getelementptr %t3, %t3* %A, i32 0, i32 1, i32 3 store i8 21, i8* %A21 store i8 22, i8* %A22 store i8 23, i8* %A23 diff --git a/test/Transforms/ScalarRepl/load-store-aggregate.ll b/test/Transforms/ScalarRepl/load-store-aggregate.ll index c5008ac131..88299f3679 100644 --- a/test/Transforms/ScalarRepl/load-store-aggregate.ll +++ b/test/Transforms/ScalarRepl/load-store-aggregate.ll @@ -11,21 +11,21 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 define i32 @test(%struct.foo* %P) { entry: %L = alloca %struct.foo, align 8 ; <%struct.foo*> [#uses=2] - %V = load %struct.foo* %P + %V = load %struct.foo, %struct.foo* %P store %struct.foo %V, %struct.foo* %L - %tmp4 = getelementptr %struct.foo* %L, i32 0, i32 0 ; <i32*> [#uses=1] - %tmp5 = load i32* %tmp4 ; <i32> [#uses=1] + %tmp4 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp5 = load i32, i32* %tmp4 ; <i32> [#uses=1] ret i32 %tmp5 } define %struct.foo @test2(i32 %A, i32 %B) { entry: %L = alloca %struct.foo, align 8 ; <%struct.foo*> [#uses=2] - %L.0 = getelementptr %struct.foo* %L, i32 0, i32 0 + %L.0 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0 store i32 %A, i32* %L.0 - %L.1 = getelementptr %struct.foo* %L, i32 0, i32 1 + %L.1 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 1 store i32 %B, i32* %L.1 - %V = load %struct.foo* %L + %V = load %struct.foo, %struct.foo* %L ret %struct.foo %V } diff --git a/test/Transforms/ScalarRepl/memcpy-align.ll b/test/Transforms/ScalarRepl/memcpy-align.ll index 6046e1295d..29a1bb8a4b 100644 --- a/test/Transforms/ScalarRepl/memcpy-align.ll +++ b/test/Transforms/ScalarRepl/memcpy-align.ll @@ -15,7 +15,7 @@ entry: %tmp = bitcast %struct.anon* %x0 to i8* ; <i8*> [#uses=1] call void @llvm.memset.p0i8.i32(i8* %tmp, i8 0, i32 4, i32 4, i1 false) %tmp1 = bitcast %struct.anon* %x0 to i8* ; <i8*> [#uses=1] - call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds (%0* @c, i32 + call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds (%0, %0* @c, i32 0, i32 0, i32 0, i32 0), i8* %tmp1, i32 4, i32 4, i1 false) ret void diff --git a/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll b/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll index 8ac1d2570a..e8088c121f 100644 --- a/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll +++ b/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll @@ -12,10 +12,10 @@ target triple = "powerpc-apple-darwin8.8.0" define i32 @test1(%struct.foo* %P) { entry: %L = alloca %struct.foo, align 2 ; <%struct.foo*> [#uses=1] - %L2 = getelementptr %struct.foo* %L, i32 0, i32 0 ; <i8*> [#uses=2] - %tmp13 = getelementptr %struct.foo* %P, i32 0, i32 0 ; <i8*> [#uses=1] + %L2 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0 ; <i8*> [#uses=2] + %tmp13 = getelementptr %struct.foo, %struct.foo* %P, i32 0, i32 0 ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i32( i8* %L2, i8* %tmp13, i32 2, i32 1, i1 false) - %tmp5 = load i8* %L2 ; <i8> [#uses=1] + %tmp5 = load i8, i8* %L2 ; <i8> [#uses=1] %tmp56 = sext i8 %tmp5 to i32 ; <i32> [#uses=1] ret i32 %tmp56 } diff --git a/test/Transforms/ScalarRepl/memset-aggregate.ll b/test/Transforms/ScalarRepl/memset-aggregate.ll index 3a5c37c046..98e2dddefe 100644 --- a/test/Transforms/ScalarRepl/memset-aggregate.ll +++ b/test/Transforms/ScalarRepl/memset-aggregate.ll @@ -15,8 +15,8 @@ entry: %L2 = bitcast %struct.foo* %L to i8* ; <i8*> [#uses=1] %tmp13 = bitcast %struct.foo* %P to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i32(i8* %L2, i8* %tmp13, i32 8, i32 4, i1 false) - %tmp4 = getelementptr %struct.foo* %L, i32 0, i32 0 ; <i32*> [#uses=1] - %tmp5 = load i32* %tmp4 ; <i32> [#uses=1] + %tmp4 = getelementptr %struct.foo, %struct.foo* %L, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp5 = load i32, i32* %tmp4 ; <i32> [#uses=1] ret i32 %tmp5 } @@ -26,8 +26,8 @@ entry: %L = alloca [4 x %struct.foo], align 16 ; <[4 x %struct.foo]*> [#uses=2] %L12 = bitcast [4 x %struct.foo]* %L to i8* ; <i8*> [#uses=1] call void @llvm.memset.p0i8.i32(i8* %L12, i8 0, i32 32, i32 16, i1 false) - %tmp4 = getelementptr [4 x %struct.foo]* %L, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] - %tmp5 = load i32* %tmp4 ; <i32> [#uses=1] + %tmp4 = getelementptr [4 x %struct.foo], [4 x %struct.foo]* %L, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp5 = load i32, i32* %tmp4 ; <i32> [#uses=1] ret i32 %tmp5 } @@ -37,12 +37,12 @@ entry: %B = alloca %struct.bar, align 16 ; <%struct.bar*> [#uses=4] %B1 = bitcast %struct.bar* %B to i8* ; <i8*> [#uses=1] call void @llvm.memset.p0i8.i32(i8* %B1, i8 1, i32 24, i32 16, i1 false) - %tmp3 = getelementptr %struct.bar* %B, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp3 = getelementptr %struct.bar, %struct.bar* %B, i32 0, i32 0, i32 0 ; <i32*> [#uses=1] store i32 1, i32* %tmp3 - %tmp4 = getelementptr %struct.bar* %B, i32 0, i32 2 ; <double*> [#uses=1] + %tmp4 = getelementptr %struct.bar, %struct.bar* %B, i32 0, i32 2 ; <double*> [#uses=1] store double 1.000000e+01, double* %tmp4 - %tmp6 = getelementptr %struct.bar* %B, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp7 = load i32* %tmp6 ; <i32> [#uses=1] + %tmp6 = getelementptr %struct.bar, %struct.bar* %B, i32 0, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp7 = load i32, i32* %tmp6 ; <i32> [#uses=1] ret i32 %tmp7 } @@ -52,13 +52,13 @@ entry: define i16 @test4() nounwind { entry: %A = alloca %struct.f, align 8 ; <%struct.f*> [#uses=3] - %0 = getelementptr %struct.f* %A, i32 0, i32 0 ; <i32*> [#uses=1] + %0 = getelementptr %struct.f, %struct.f* %A, i32 0, i32 0 ; <i32*> [#uses=1] store i32 1, i32* %0, align 8 - %1 = getelementptr %struct.f* %A, i32 0, i32 1 ; <i32*> [#uses=1] + %1 = getelementptr %struct.f, %struct.f* %A, i32 0, i32 1 ; <i32*> [#uses=1] %2 = bitcast i32* %1 to i8* ; <i8*> [#uses=1] call void @llvm.memset.p0i8.i32(i8* %2, i8 2, i32 12, i32 4, i1 false) - %3 = getelementptr %struct.f* %A, i32 0, i32 2 ; <i32*> [#uses=1] - %4 = load i32* %3, align 8 ; <i32> [#uses=1] + %3 = getelementptr %struct.f, %struct.f* %A, i32 0, i32 2 ; <i32*> [#uses=1] + %4 = load i32, i32* %3, align 8 ; <i32> [#uses=1] %retval12 = trunc i32 %4 to i16 ; <i16> [#uses=1] ret i16 %retval12 } diff --git a/test/Transforms/ScalarRepl/negative-memset.ll b/test/Transforms/ScalarRepl/negative-memset.ll index e52ab468fd..458d9610cd 100644 --- a/test/Transforms/ScalarRepl/negative-memset.ll +++ b/test/Transforms/ScalarRepl/negative-memset.ll @@ -12,7 +12,7 @@ entry: store i32 0, i32* %retval %0 = bitcast [1 x i8]* %buff to i8* call void @llvm.memset.p0i8.i32(i8* %0, i8 0, i32 1, i32 1, i1 false) - %arraydecay = getelementptr inbounds [1 x i8]* %buff, i32 0, i32 0 + %arraydecay = getelementptr inbounds [1 x i8], [1 x i8]* %buff, i32 0, i32 0 call void @llvm.memset.p0i8.i32(i8* %arraydecay, i8 -1, i32 -8, i32 1, i1 false) ; Negative 8! ret i32 0 } diff --git a/test/Transforms/ScalarRepl/nonzero-first-index.ll b/test/Transforms/ScalarRepl/nonzero-first-index.ll index b2e93feb6c..da757b08d4 100644 --- a/test/Transforms/ScalarRepl/nonzero-first-index.ll +++ b/test/Transforms/ScalarRepl/nonzero-first-index.ll @@ -12,9 +12,9 @@ define i32 @test1() { ; CHECK-NOT: = i160 ; CHECK: ret i32 undef %A = alloca %nested - %B = getelementptr %nested* %A, i32 0, i32 1, i32 0 - %C = getelementptr i32* %B, i32 2 - %D = load i32* %C + %B = getelementptr %nested, %nested* %A, i32 0, i32 1, i32 0 + %C = getelementptr i32, i32* %B, i32 2 + %D = load i32, i32* %C ret i32 %D } @@ -23,9 +23,9 @@ define i32 @test2() { ; CHECK-LABEL: @test2( ; CHECK: i160 %A = alloca %nested - %B = getelementptr %nested* %A, i32 0, i32 1, i32 0 - %C = getelementptr i32* %B, i32 4 - %D = load i32* %C + %B = getelementptr %nested, %nested* %A, i32 0, i32 1, i32 0 + %C = getelementptr i32, i32* %B, i32 4 + %D = load i32, i32* %C ret i32 %D } @@ -36,8 +36,8 @@ define i32 @test3() { ; CHECK: ret i32 undef %A = alloca %nested %B = bitcast %nested* %A to i32* - %C = getelementptr i32* %B, i32 2 - %D = load i32* %C + %C = getelementptr i32, i32* %B, i32 2 + %D = load i32, i32* %C ret i32 %D } @@ -47,7 +47,7 @@ define i32 @test4() { ; CHECK: i160 %A = alloca %nested %B = bitcast %nested* %A to i32* - %C = getelementptr i32* %B, i32 -1 - %D = load i32* %C + %C = getelementptr i32, i32* %B, i32 -1 + %D = load i32, i32* %C ret i32 %D } diff --git a/test/Transforms/ScalarRepl/not-a-vector.ll b/test/Transforms/ScalarRepl/not-a-vector.ll index 67fefb4841..04c1f93617 100644 --- a/test/Transforms/ScalarRepl/not-a-vector.ll +++ b/test/Transforms/ScalarRepl/not-a-vector.ll @@ -8,12 +8,12 @@ define double @test(double %A, double %B) { %C = bitcast [7 x i64]* %ARR to double* store double %A, double* %C - %D = getelementptr [7 x i64]* %ARR, i32 0, i32 4 + %D = getelementptr [7 x i64], [7 x i64]* %ARR, i32 0, i32 4 %E = bitcast i64* %D to double* store double %B, double* %E - %F = getelementptr double* %C, i32 4 - %G = load double* %F + %F = getelementptr double, double* %C, i32 4 + %G = load double, double* %F ret double %G } diff --git a/test/Transforms/ScalarRepl/phi-cycle.ll b/test/Transforms/ScalarRepl/phi-cycle.ll index 05d9382cec..6089936a69 100644 --- a/test/Transforms/ScalarRepl/phi-cycle.ll +++ b/test/Transforms/ScalarRepl/phi-cycle.ll @@ -11,9 +11,9 @@ target triple = "x86_64-unknown-linux-gnu" define i32 @main(i32 %argc, i8** nocapture %argv) nounwind uwtable { entry: %f = alloca %struct.foo, align 4 - %x.i = getelementptr inbounds %struct.foo* %f, i64 0, i32 0 + %x.i = getelementptr inbounds %struct.foo, %struct.foo* %f, i64 0, i32 0 store i32 1, i32* %x.i, align 4 - %y.i = getelementptr inbounds %struct.foo* %f, i64 0, i32 1 + %y.i = getelementptr inbounds %struct.foo, %struct.foo* %f, i64 0, i32 1 br label %while.cond.i ; CHECK: while.cond.i: @@ -67,10 +67,10 @@ while.cond.backedge.i: ; preds = %if.end.i, %while.bo ; CHECK: func.exit: ; CHECK-NOT: load -; CHECK: %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([6 x i8]* @.str, i64 0, i64 0), i32 %tmp) [[NUW:#[0-9]+]] +; CHECK: %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32 %tmp) [[NUW:#[0-9]+]] func.exit: ; preds = %while.body.i.func.exit_crit_edge, %while.cond.i.func.exit_crit_edge - %tmp3 = load i32* %x.i, align 4 - %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([6 x i8]* @.str, i64 0, i64 0), i32 %tmp3) nounwind + %tmp3 = load i32, i32* %x.i, align 4 + %call = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32 %tmp3) nounwind ret i32 0 } diff --git a/test/Transforms/ScalarRepl/phi-select.ll b/test/Transforms/ScalarRepl/phi-select.ll index a5da2dcf49..a6c7135a49 100644 --- a/test/Transforms/ScalarRepl/phi-select.ll +++ b/test/Transforms/ScalarRepl/phi-select.ll @@ -13,14 +13,14 @@ define i32 @test1(i32 %x) nounwind readnone ssp { entry: %a = alloca %struct.X, align 8 ; <%struct.X*> [#uses=2] %b = alloca %struct.X, align 8 ; <%struct.X*> [#uses=2] - %0 = getelementptr inbounds %struct.X* %a, i64 0, i32 0 ; <i32*> [#uses=1] + %0 = getelementptr inbounds %struct.X, %struct.X* %a, i64 0, i32 0 ; <i32*> [#uses=1] store i32 1, i32* %0, align 8 - %1 = getelementptr inbounds %struct.X* %b, i64 0, i32 0 ; <i32*> [#uses=1] + %1 = getelementptr inbounds %struct.X, %struct.X* %b, i64 0, i32 0 ; <i32*> [#uses=1] store i32 2, i32* %1, align 8 %2 = icmp eq i32 %x, 0 ; <i1> [#uses=1] %p.0 = select i1 %2, %struct.X* %b, %struct.X* %a ; <%struct.X*> [#uses=1] - %3 = getelementptr inbounds %struct.X* %p.0, i64 0, i32 0 ; <i32*> [#uses=1] - %4 = load i32* %3, align 8 ; <i32> [#uses=1] + %3 = getelementptr inbounds %struct.X, %struct.X* %p.0, i64 0, i32 0 ; <i32*> [#uses=1] + %4 = load i32, i32* %3, align 8 ; <i32> [#uses=1] ret i32 %4 } @@ -30,16 +30,16 @@ entry: define i32 @test2(i1 %c) { entry: %A = alloca {i32, i32} - %B = getelementptr {i32, i32}* %A, i32 0, i32 0 + %B = getelementptr {i32, i32}, {i32, i32}* %A, i32 0, i32 0 store i32 1, i32* %B br i1 %c, label %T, label %F T: - %C = getelementptr {i32, i32}* %A, i32 0, i32 1 + %C = getelementptr {i32, i32}, {i32, i32}* %A, i32 0, i32 1 store i32 2, i32* %C br label %F F: %X = phi i32* [%B, %entry], [%C, %T] - %Q = load i32* %X + %Q = load i32, i32* %X ret i32 %Q } @@ -49,13 +49,13 @@ F: ; rdar://8904039 define i32 @test3(i1 %c) { %A = alloca {i32, i32} - %B = getelementptr {i32, i32}* %A, i32 0, i32 0 + %B = getelementptr {i32, i32}, {i32, i32}* %A, i32 0, i32 0 store i32 1, i32* %B - %C = getelementptr {i32, i32}* %A, i32 0, i32 1 + %C = getelementptr {i32, i32}, {i32, i32}* %A, i32 0, i32 1 store i32 2, i32* %C %X = select i1 %c, i32* %B, i32* %C - %Q = load i32* %X + %Q = load i32, i32* %X ret i32 %Q } @@ -65,14 +65,14 @@ entry: %A = alloca %PairTy ; CHECK-LABEL: @test4( ; CHECK: %A = alloca %PairTy - %B = getelementptr %PairTy* %A, i32 0, i32 0 + %B = getelementptr %PairTy, %PairTy* %A, i32 0, i32 0 store i32 1, i32* %B - %C = getelementptr %PairTy* %A, i32 0, i32 1 + %C = getelementptr %PairTy, %PairTy* %A, i32 0, i32 1 store i32 2, i32* %B %X = select i1 %c, i32* %B, i32* %C %Y = bitcast i32* %X to i64* - %Q = load i64* %Y + %Q = load i64, i64* %Y ret i64 %Q } @@ -91,7 +91,7 @@ entry: %p.0 = select i1 false, i32* %b, i32* %P store i32 123, i32* %p.0 - %r = load i32* %b, align 8 + %r = load i32, i32* %b, align 8 ret i32 %r ; CHECK-LABEL: @test5( @@ -105,7 +105,7 @@ define i32 @test6(i32 %x, i1 %c) nounwind readnone ssp { store i32 1, i32* %a, align 8 store i32 2, i32* %b, align 8 %p.0 = select i1 %c, i32* %b, i32* %a - %r = load i32* %p.0, align 8 + %r = load i32, i32* %p.0, align 8 ret i32 %r ; CHECK-LABEL: @test6( ; CHECK-NEXT: %r = select i1 %c, i32 2, i32 1 @@ -122,7 +122,7 @@ define i32 @test7(i32 %x, i1 %c) nounwind readnone ssp { store i32 0, i32* %a - %r = load i32* %p.0, align 8 + %r = load i32, i32* %p.0, align 8 ret i32 %r ; CHECK-LABEL: @test7( ; CHECK-NOT: alloca i32 @@ -148,6 +148,6 @@ T: br label %Cont Cont: %p.0 = phi i32* [%b, %entry],[%a, %T] - %r = load i32* %p.0, align 8 + %r = load i32, i32* %p.0, align 8 ret i32 %r } diff --git a/test/Transforms/ScalarRepl/phinodepromote.ll b/test/Transforms/ScalarRepl/phinodepromote.ll index 9c6e8b92f3..c3af62485d 100644 --- a/test/Transforms/ScalarRepl/phinodepromote.ll +++ b/test/Transforms/ScalarRepl/phinodepromote.ll @@ -21,14 +21,14 @@ entry: %mem_tmp.1 = alloca i32 ; <i32*> [#uses=3] store i32 0, i32* %mem_tmp.0 store i32 1, i32* %mem_tmp.1 - %tmp.1.i = load i32* %mem_tmp.1 ; <i32> [#uses=1] - %tmp.3.i = load i32* %mem_tmp.0 ; <i32> [#uses=1] + %tmp.1.i = load i32, i32* %mem_tmp.1 ; <i32> [#uses=1] + %tmp.3.i = load i32, i32* %mem_tmp.0 ; <i32> [#uses=1] %tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i ; <i1> [#uses=1] br i1 %tmp.4.i, label %cond_true.i, label %cond_continue.i cond_true.i: ; preds = %entry br label %cond_continue.i cond_continue.i: ; preds = %cond_true.i, %entry %mem_tmp.i.0 = phi i32* [ %mem_tmp.1, %cond_true.i ], [ %mem_tmp.0, %entry ] ; <i32*> [#uses=1] - %tmp.3 = load i32* %mem_tmp.i.0 ; <i32> [#uses=1] + %tmp.3 = load i32, i32* %mem_tmp.i.0 ; <i32> [#uses=1] ret i32 %tmp.3 } diff --git a/test/Transforms/ScalarRepl/select_promote.ll b/test/Transforms/ScalarRepl/select_promote.ll index d6b2b75327..b4ef8c46fa 100644 --- a/test/Transforms/ScalarRepl/select_promote.ll +++ b/test/Transforms/ScalarRepl/select_promote.ll @@ -8,11 +8,11 @@ define i32 @main() { %mem_tmp.1 = alloca i32 ; <i32*> [#uses=3] store i32 0, i32* %mem_tmp.0 store i32 1, i32* %mem_tmp.1 - %tmp.1.i = load i32* %mem_tmp.1 ; <i32> [#uses=1] - %tmp.3.i = load i32* %mem_tmp.0 ; <i32> [#uses=1] + %tmp.1.i = load i32, i32* %mem_tmp.1 ; <i32> [#uses=1] + %tmp.3.i = load i32, i32* %mem_tmp.0 ; <i32> [#uses=1] %tmp.4.i = icmp sle i32 %tmp.1.i, %tmp.3.i ; <i1> [#uses=1] %mem_tmp.i.0 = select i1 %tmp.4.i, i32* %mem_tmp.1, i32* %mem_tmp.0 ; <i32*> [#uses=1] - %tmp.3 = load i32* %mem_tmp.i.0 ; <i32> [#uses=1] + %tmp.3 = load i32, i32* %mem_tmp.i.0 ; <i32> [#uses=1] ret i32 %tmp.3 } diff --git a/test/Transforms/ScalarRepl/sroa-fca.ll b/test/Transforms/ScalarRepl/sroa-fca.ll index 2df3b9be1e..c6e7c23ab0 100644 --- a/test/Transforms/ScalarRepl/sroa-fca.ll +++ b/test/Transforms/ScalarRepl/sroa-fca.ll @@ -6,7 +6,7 @@ define i64 @test({i32, i32} %A) { %Y = bitcast i64* %X to {i32,i32}* store {i32,i32} %A, {i32,i32}* %Y - %Q = load i64* %X + %Q = load i64, i64* %X ret i64 %Q } @@ -15,7 +15,7 @@ define {i32,i32} @test2(i64 %A) { %Y = bitcast i64* %X to {i32,i32}* store i64 %A, i64* %X - %Q = load {i32,i32}* %Y + %Q = load {i32,i32}, {i32,i32}* %Y ret {i32,i32} %Q } diff --git a/test/Transforms/ScalarRepl/sroa_two.ll b/test/Transforms/ScalarRepl/sroa_two.ll index d8aa26dce6..f2285ef21a 100644 --- a/test/Transforms/ScalarRepl/sroa_two.ll +++ b/test/Transforms/ScalarRepl/sroa_two.ll @@ -2,12 +2,12 @@ define i32 @test(i32 %X) { %Arr = alloca [2 x i32] ; <[2 x i32]*> [#uses=3] - %tmp.0 = getelementptr [2 x i32]* %Arr, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp.0 = getelementptr [2 x i32], [2 x i32]* %Arr, i32 0, i32 0 ; <i32*> [#uses=1] store i32 1, i32* %tmp.0 - %tmp.1 = getelementptr [2 x i32]* %Arr, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.1 = getelementptr [2 x i32], [2 x i32]* %Arr, i32 0, i32 1 ; <i32*> [#uses=1] store i32 2, i32* %tmp.1 - %tmp.3 = getelementptr [2 x i32]* %Arr, i32 0, i32 %X ; <i32*> [#uses=1] - %tmp.4 = load i32* %tmp.3 ; <i32> [#uses=1] + %tmp.3 = getelementptr [2 x i32], [2 x i32]* %Arr, i32 0, i32 %X ; <i32*> [#uses=1] + %tmp.4 = load i32, i32* %tmp.3 ; <i32> [#uses=1] ret i32 %tmp.4 } diff --git a/test/Transforms/ScalarRepl/union-fp-int.ll b/test/Transforms/ScalarRepl/union-fp-int.ll index 6a49918871..fa64b60685 100644 --- a/test/Transforms/ScalarRepl/union-fp-int.ll +++ b/test/Transforms/ScalarRepl/union-fp-int.ll @@ -8,7 +8,7 @@ define i32 @test(float %X) { %X_addr = alloca float ; <float*> [#uses=2] store float %X, float* %X_addr %X_addr.upgrd.1 = bitcast float* %X_addr to i32* ; <i32*> [#uses=1] - %tmp = load i32* %X_addr.upgrd.1 ; <i32> [#uses=1] + %tmp = load i32, i32* %X_addr.upgrd.1 ; <i32> [#uses=1] ret i32 %tmp } diff --git a/test/Transforms/ScalarRepl/union-packed.ll b/test/Transforms/ScalarRepl/union-packed.ll index b272abfc3d..741de76d58 100644 --- a/test/Transforms/ScalarRepl/union-packed.ll +++ b/test/Transforms/ScalarRepl/union-packed.ll @@ -8,7 +8,7 @@ define <4 x i32> @test(<4 x float> %X) { %X_addr = alloca <4 x float> ; <<4 x float>*> [#uses=2] store <4 x float> %X, <4 x float>* %X_addr %X_addr.upgrd.1 = bitcast <4 x float>* %X_addr to <4 x i32>* ; <<4 x i32>*> [#uses=1] - %tmp = load <4 x i32>* %X_addr.upgrd.1 ; <<4 x i32>> [#uses=1] + %tmp = load <4 x i32>, <4 x i32>* %X_addr.upgrd.1 ; <<4 x i32>> [#uses=1] ret <4 x i32> %tmp } diff --git a/test/Transforms/ScalarRepl/union-pointer.ll b/test/Transforms/ScalarRepl/union-pointer.ll index f0dc141aca..6a5db1c4d6 100644 --- a/test/Transforms/ScalarRepl/union-pointer.ll +++ b/test/Transforms/ScalarRepl/union-pointer.ll @@ -14,7 +14,7 @@ define i8* @test(i16* %X) { %X_addr = alloca i16* ; <i16**> [#uses=2] store i16* %X, i16** %X_addr %X_addr.upgrd.1 = bitcast i16** %X_addr to i8** ; <i8**> [#uses=1] - %tmp = load i8** %X_addr.upgrd.1 ; <i8*> [#uses=1] + %tmp = load i8*, i8** %X_addr.upgrd.1 ; <i8*> [#uses=1] ret i8* %tmp } @@ -26,7 +26,7 @@ define i8 addrspace(1)* @test_as1(i16 addrspace(1)* %x) { %x_addr = alloca i16 addrspace(1)* store i16 addrspace(1)* %x, i16 addrspace(1)** %x_addr %x_addr.upgrd.1 = bitcast i16 addrspace(1)** %x_addr to i8 addrspace(1)** - %tmp = load i8 addrspace(1)** %x_addr.upgrd.1 + %tmp = load i8 addrspace(1)*, i8 addrspace(1)** %x_addr.upgrd.1 ret i8 addrspace(1)* %tmp } @@ -36,10 +36,10 @@ define i8 addrspace(1)* @test_as1_array(i16 addrspace(1)* %x) { ; CHECK-NEXT: %2 = inttoptr i16 %1 to i8 addrspace(1)* ; CHECK-NEXT: ret i8 addrspace(1)* %2 %as_ptr_array = alloca [4 x i16 addrspace(1)*] - %elem1 = getelementptr [4 x i16 addrspace(1)*]* %as_ptr_array, i32 0, i32 1 + %elem1 = getelementptr [4 x i16 addrspace(1)*], [4 x i16 addrspace(1)*]* %as_ptr_array, i32 0, i32 1 store i16 addrspace(1)* %x, i16 addrspace(1)** %elem1 %elem1.cast = bitcast i16 addrspace(1)** %elem1 to i8 addrspace(1)** - %tmp = load i8 addrspace(1)** %elem1.cast + %tmp = load i8 addrspace(1)*, i8 addrspace(1)** %elem1.cast ret i8 addrspace(1)* %tmp } @@ -54,17 +54,17 @@ define void @test2(i64 %Op.0) { %tmp.upgrd.2 = call i64 @_Z3foov( ) ; <i64> [#uses=1] %tmp1.upgrd.3 = bitcast %struct.Val* %tmp1 to i64* ; <i64*> [#uses=1] store i64 %tmp.upgrd.2, i64* %tmp1.upgrd.3 - %tmp.upgrd.4 = getelementptr %struct.Val* %tmp, i32 0, i32 0 ; <i32**> [#uses=1] - %tmp2 = getelementptr %struct.Val* %tmp1, i32 0, i32 0 ; <i32**> [#uses=1] - %tmp.upgrd.5 = load i32** %tmp2 ; <i32*> [#uses=1] + %tmp.upgrd.4 = getelementptr %struct.Val, %struct.Val* %tmp, i32 0, i32 0 ; <i32**> [#uses=1] + %tmp2 = getelementptr %struct.Val, %struct.Val* %tmp1, i32 0, i32 0 ; <i32**> [#uses=1] + %tmp.upgrd.5 = load i32*, i32** %tmp2 ; <i32*> [#uses=1] store i32* %tmp.upgrd.5, i32** %tmp.upgrd.4 - %tmp3 = getelementptr %struct.Val* %tmp, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp4 = getelementptr %struct.Val* %tmp1, i32 0, i32 1 ; <i32*> [#uses=1] - %tmp.upgrd.6 = load i32* %tmp4 ; <i32> [#uses=1] + %tmp3 = getelementptr %struct.Val, %struct.Val* %tmp, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp4 = getelementptr %struct.Val, %struct.Val* %tmp1, i32 0, i32 1 ; <i32*> [#uses=1] + %tmp.upgrd.6 = load i32, i32* %tmp4 ; <i32> [#uses=1] store i32 %tmp.upgrd.6, i32* %tmp3 %tmp7 = bitcast %struct.Val* %tmp to { i64 }* ; <{ i64 }*> [#uses=1] - %tmp8 = getelementptr { i64 }* %tmp7, i32 0, i32 0 ; <i64*> [#uses=1] - %tmp9 = load i64* %tmp8 ; <i64> [#uses=1] + %tmp8 = getelementptr { i64 }, { i64 }* %tmp7, i32 0, i32 0 ; <i64*> [#uses=1] + %tmp9 = load i64, i64* %tmp8 ; <i64> [#uses=1] call void @_Z3bar3ValS_( i64 %Op.0, i64 %tmp9 ) ret void } diff --git a/test/Transforms/ScalarRepl/vector_memcpy.ll b/test/Transforms/ScalarRepl/vector_memcpy.ll index dfba9e2c80..031ad5e38c 100644 --- a/test/Transforms/ScalarRepl/vector_memcpy.ll +++ b/test/Transforms/ScalarRepl/vector_memcpy.ll @@ -10,7 +10,7 @@ define <16 x float> @foo(<16 x float> %A) nounwind { %s = bitcast <16 x float>* %tmp to i8* %s2 = bitcast <16 x float>* %tmp2 to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %s2, i8* %s, i64 64, i32 16, i1 false) - %R = load <16 x float>* %tmp2 + %R = load <16 x float>, <16 x float>* %tmp2 ret <16 x float> %R } @@ -20,7 +20,7 @@ define <16 x float> @foo2(<16 x float> %A) nounwind { %s2 = bitcast <16 x float>* %tmp2 to i8* call void @llvm.memset.p0i8.i64(i8* %s2, i8 0, i64 64, i32 16, i1 false) - %R = load <16 x float>* %tmp2 + %R = load <16 x float>, <16 x float>* %tmp2 ret <16 x float> %R } diff --git a/test/Transforms/ScalarRepl/vector_promote.ll b/test/Transforms/ScalarRepl/vector_promote.ll index 8ca1ed5005..3c2377fc0f 100644 --- a/test/Transforms/ScalarRepl/vector_promote.ll +++ b/test/Transforms/ScalarRepl/vector_promote.ll @@ -5,18 +5,18 @@ target triple = "x86_64-apple-darwin10.0.0" define void @test1(<4 x float>* %F, float %f) { entry: %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] store <4 x float> %tmp3, <4 x float>* %G - %G.upgrd.1 = getelementptr <4 x float>* %G, i32 0, i32 0 ; <float*> [#uses=1] + %G.upgrd.1 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 0 ; <float*> [#uses=1] store float %f, float* %G.upgrd.1 - %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] + %tmp4 = load <4 x float>, <4 x float>* %G ; <<4 x float>> [#uses=2] %tmp6 = fadd <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] store <4 x float> %tmp6, <4 x float>* %F ret void ; CHECK-LABEL: @test1( ; CHECK-NOT: alloca -; CHECK: %tmp = load <4 x float>* %F +; CHECK: %tmp = load <4 x float>, <4 x float>* %F ; CHECK: fadd <4 x float> %tmp, %tmp ; CHECK-NEXT: insertelement <4 x float> %tmp3, float %f, i32 0 } @@ -24,18 +24,18 @@ entry: define void @test2(<4 x float>* %F, float %f) { entry: %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=3] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] store <4 x float> %tmp3, <4 x float>* %G - %tmp.upgrd.2 = getelementptr <4 x float>* %G, i32 0, i32 2 ; <float*> [#uses=1] + %tmp.upgrd.2 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 2 ; <float*> [#uses=1] store float %f, float* %tmp.upgrd.2 - %tmp4 = load <4 x float>* %G ; <<4 x float>> [#uses=2] + %tmp4 = load <4 x float>, <4 x float>* %G ; <<4 x float>> [#uses=2] %tmp6 = fadd <4 x float> %tmp4, %tmp4 ; <<4 x float>> [#uses=1] store <4 x float> %tmp6, <4 x float>* %F ret void ; CHECK-LABEL: @test2( ; CHECK-NOT: alloca -; CHECK: %tmp = load <4 x float>* %F +; CHECK: %tmp = load <4 x float>, <4 x float>* %F ; CHECK: fadd <4 x float> %tmp, %tmp ; CHECK-NEXT: insertelement <4 x float> %tmp3, float %f, i32 2 } @@ -43,16 +43,16 @@ entry: define void @test3(<4 x float>* %F, float* %f) { entry: %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] store <4 x float> %tmp3, <4 x float>* %G - %tmp.upgrd.3 = getelementptr <4 x float>* %G, i32 0, i32 2 ; <float*> [#uses=1] - %tmp.upgrd.4 = load float* %tmp.upgrd.3 ; <float> [#uses=1] + %tmp.upgrd.3 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 2 ; <float*> [#uses=1] + %tmp.upgrd.4 = load float, float* %tmp.upgrd.3 ; <float> [#uses=1] store float %tmp.upgrd.4, float* %f ret void ; CHECK-LABEL: @test3( ; CHECK-NOT: alloca -; CHECK: %tmp = load <4 x float>* %F +; CHECK: %tmp = load <4 x float>, <4 x float>* %F ; CHECK: fadd <4 x float> %tmp, %tmp ; CHECK-NEXT: extractelement <4 x float> %tmp3, i32 2 } @@ -60,26 +60,26 @@ entry: define void @test4(<4 x float>* %F, float* %f) { entry: %G = alloca <4 x float>, align 16 ; <<4 x float>*> [#uses=2] - %tmp = load <4 x float>* %F ; <<4 x float>> [#uses=2] + %tmp = load <4 x float>, <4 x float>* %F ; <<4 x float>> [#uses=2] %tmp3 = fadd <4 x float> %tmp, %tmp ; <<4 x float>> [#uses=1] store <4 x float> %tmp3, <4 x float>* %G - %G.upgrd.5 = getelementptr <4 x float>* %G, i32 0, i32 0 ; <float*> [#uses=1] - %tmp.upgrd.6 = load float* %G.upgrd.5 ; <float> [#uses=1] + %G.upgrd.5 = getelementptr <4 x float>, <4 x float>* %G, i32 0, i32 0 ; <float*> [#uses=1] + %tmp.upgrd.6 = load float, float* %G.upgrd.5 ; <float> [#uses=1] store float %tmp.upgrd.6, float* %f ret void ; CHECK-LABEL: @test4( ; CHECK-NOT: alloca -; CHECK: %tmp = load <4 x float>* %F +; CHECK: %tmp = load <4 x float>, <4 x float>* %F ; CHECK: fadd <4 x float> %tmp, %tmp ; CHECK-NEXT: extractelement <4 x float> %tmp3, i32 0 } define i32 @test5(float %X) { ;; should turn into bitcast. %X_addr = alloca [4 x float] - %X1 = getelementptr [4 x float]* %X_addr, i32 0, i32 2 + %X1 = getelementptr [4 x float], [4 x float]* %X_addr, i32 0, i32 2 store float %X, float* %X1 %a = bitcast float* %X1 to i32* - %tmp = load i32* %a + %tmp = load i32, i32* %a ret i32 %tmp ; CHECK-LABEL: @test5( ; CHECK-NEXT: bitcast float %X to i32 @@ -90,7 +90,7 @@ define i64 @test6(<2 x float> %X) { %X_addr = alloca <2 x float> store <2 x float> %X, <2 x float>* %X_addr %P = bitcast <2 x float>* %X_addr to i64* - %tmp = load i64* %P + %tmp = load i64, i64* %P ret i64 %tmp ; CHECK-LABEL: @test6( ; CHECK: bitcast <2 x float> %X to i64 @@ -104,7 +104,7 @@ entry: %memtmp = alloca %struct.test7, align 16 %0 = bitcast %struct.test7* %memtmp to <4 x i32>* store <4 x i32> zeroinitializer, <4 x i32>* %0, align 16 - %1 = getelementptr inbounds %struct.test7* %memtmp, i64 0, i32 0, i64 5 + %1 = getelementptr inbounds %struct.test7, %struct.test7* %memtmp, i64 0, i32 0, i64 5 store i32 0, i32* %1, align 4 ret void ; CHECK-LABEL: @test7( @@ -121,14 +121,14 @@ entry: %__a = alloca <1 x i64>, align 8 %tmp = alloca <1 x i64>, align 8 store <1 x i64> %a, <1 x i64>* %a.addr, align 8 - %0 = load <1 x i64>* %a.addr, align 8 + %0 = load <1 x i64>, <1 x i64>* %a.addr, align 8 store <1 x i64> %0, <1 x i64>* %__a, align 8 - %1 = load <1 x i64>* %__a, align 8 + %1 = load <1 x i64>, <1 x i64>* %__a, align 8 %2 = bitcast <1 x i64> %1 to <8 x i8> %3 = bitcast <8 x i8> %2 to <1 x i64> %vshl_n = shl <1 x i64> %3, <i64 4> store <1 x i64> %vshl_n, <1 x i64>* %tmp - %4 = load <1 x i64>* %tmp + %4 = load <1 x i64>, <1 x i64>* %tmp ret <1 x i64> %4 ; CHECK-LABEL: @test8( ; CHECK-NOT: alloca diff --git a/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll b/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll index c3fbdf5f86..154883122d 100644 --- a/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll +++ b/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll @@ -18,10 +18,10 @@ define <2 x i64> @foo() nounwind { entry: %retval = alloca <3 x i32>, align 16 %z = alloca <4 x i32>, align 16 - %tmp = load <4 x i32>* %z + %tmp = load <4 x i32>, <4 x i32>* %z %tmp1 = shufflevector <4 x i32> %tmp, <4 x i32> undef, <3 x i32> <i32 0, i32 1, i32 2> store <3 x i32> %tmp1, <3 x i32>* %retval %0 = bitcast <3 x i32>* %retval to <2 x i64>* - %1 = load <2 x i64>* %0, align 1 + %1 = load <2 x i64>, <2 x i64>* %0, align 1 ret <2 x i64> %1 } diff --git a/test/Transforms/ScalarRepl/volatile.ll b/test/Transforms/ScalarRepl/volatile.ll index d506cdfbd8..2a600b3b27 100644 --- a/test/Transforms/ScalarRepl/volatile.ll +++ b/test/Transforms/ScalarRepl/volatile.ll @@ -2,12 +2,12 @@ define i32 @voltest(i32 %T) { %A = alloca {i32, i32} - %B = getelementptr {i32,i32}* %A, i32 0, i32 0 + %B = getelementptr {i32,i32}, {i32,i32}* %A, i32 0, i32 0 store volatile i32 %T, i32* %B ; CHECK: store volatile - %C = getelementptr {i32,i32}* %A, i32 0, i32 1 - %X = load volatile i32* %C + %C = getelementptr {i32,i32}, {i32,i32}* %A, i32 0, i32 1 + %X = load volatile i32, i32* %C ; CHECK: load volatile ret i32 %X } |