diff options
Diffstat (limited to 'test/Transforms/InstSimplify')
-rw-r--r-- | test/Transforms/InstSimplify/2011-10-27-BinOpCrash.ll | 2 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/call-callconv.ll | 4 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/call.ll | 6 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/compare.ll | 100 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/gep.ll | 14 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/load.ll | 4 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/noalias-ptr.ll | 18 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/past-the-end.ll | 14 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/ptr_diff.ll | 32 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/vector_gep.ll | 14 | ||||
-rw-r--r-- | test/Transforms/InstSimplify/vector_ptr_bitcast.ll | 4 |
11 files changed, 106 insertions, 106 deletions
diff --git a/test/Transforms/InstSimplify/2011-10-27-BinOpCrash.ll b/test/Transforms/InstSimplify/2011-10-27-BinOpCrash.ll index a10081a..5380a7b 100644 --- a/test/Transforms/InstSimplify/2011-10-27-BinOpCrash.ll +++ b/test/Transforms/InstSimplify/2011-10-27-BinOpCrash.ll @@ -6,7 +6,7 @@ @_ZN11xercesc_2_5L15gCombiningCharsE = external constant [163 x i16], align 2 define i32 @_ZN11xercesc_2_515XMLRangeFactory11buildRangesEv(i32 %x) { - %a = add i32 %x, add (i32 add (i32 ashr (i32 add (i32 mul (i32 ptrtoint ([32 x i16]* @_ZN11xercesc_2_5L11gDigitCharsE to i32), i32 -1), i32 ptrtoint (i16* getelementptr inbounds ([32 x i16]* @_ZN11xercesc_2_5L11gDigitCharsE, i32 0, i32 30) to i32)), i32 1), i32 ashr (i32 add (i32 mul (i32 ptrtoint ([7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE to i32), i32 -1), i32 ptrtoint (i16* getelementptr inbounds ([7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE, i32 0, i32 4) to i32)), i32 1)), i32 8) + %a = add i32 %x, add (i32 add (i32 ashr (i32 add (i32 mul (i32 ptrtoint ([32 x i16]* @_ZN11xercesc_2_5L11gDigitCharsE to i32), i32 -1), i32 ptrtoint (i16* getelementptr inbounds ([32 x i16], [32 x i16]* @_ZN11xercesc_2_5L11gDigitCharsE, i32 0, i32 30) to i32)), i32 1), i32 ashr (i32 add (i32 mul (i32 ptrtoint ([7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE to i32), i32 -1), i32 ptrtoint (i16* getelementptr inbounds ([7 x i16], [7 x i16]* @_ZN11xercesc_2_5L17gIdeographicCharsE, i32 0, i32 4) to i32)), i32 1)), i32 8) %b = add i32 %a, %x ret i32 %b } diff --git a/test/Transforms/InstSimplify/call-callconv.ll b/test/Transforms/InstSimplify/call-callconv.ll index e475be7..56a8e44 100644 --- a/test/Transforms/InstSimplify/call-callconv.ll +++ b/test/Transforms/InstSimplify/call-callconv.ll @@ -29,7 +29,7 @@ declare arm_aapcscc i32 @labs(i32) nounwind readnone define arm_aapcscc i32 @_strlen1() { ; CHECK: _strlen1 - %call = tail call arm_aapcscc i32 @strlen(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0)) + %call = tail call arm_aapcscc i32 @strlen(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0)) ret i32 %call ; CHECK: ret i32 3 } @@ -42,7 +42,7 @@ define arm_aapcscc zeroext i1 @_strlen2(i8* %str) { %cmp = icmp ne i32 %call, 0 ret i1 %cmp -; CHECK: %[[STRLENFIRST:.*]] = load i8* %str +; CHECK: %[[STRLENFIRST:.*]] = load i8, i8* %str ; CHECK: %[[CMP:.*]] = icmp ne i8 %[[STRLENFIRST]], 0 ; CHECK: ret i1 %[[CMP]] } diff --git a/test/Transforms/InstSimplify/call.ll b/test/Transforms/InstSimplify/call.ll index fd854c5..ac94e75 100644 --- a/test/Transforms/InstSimplify/call.ll +++ b/test/Transforms/InstSimplify/call.ll @@ -109,7 +109,7 @@ entry: br i1 %cmp, label %cast.end, label %cast.notnull cast.notnull: ; preds = %entry - %add.ptr = getelementptr inbounds i8* %call, i64 4 + %add.ptr = getelementptr inbounds i8, i8* %call, i64 4 br label %cast.end cast.end: ; preds = %cast.notnull, %entry @@ -132,7 +132,7 @@ entry: br i1 %cmp, label %cast.end, label %cast.notnull cast.notnull: ; preds = %entry - %add.ptr = getelementptr inbounds i8* %call, i64 4 + %add.ptr = getelementptr inbounds i8, i8* %call, i64 4 br label %cast.end cast.end: ; preds = %cast.notnull, %entry @@ -152,7 +152,7 @@ entry: br i1 %cmp, label %cast.end, label %cast.notnull cast.notnull: ; preds = %entry - %add.ptr = getelementptr inbounds i8* %call, i64 4 + %add.ptr = getelementptr inbounds i8, i8* %call, i64 4 br label %cast.end cast.end: ; preds = %cast.notnull, %entry diff --git a/test/Transforms/InstSimplify/compare.ll b/test/Transforms/InstSimplify/compare.ll index 10c7ca6..07c90d8 100644 --- a/test/Transforms/InstSimplify/compare.ll +++ b/test/Transforms/InstSimplify/compare.ll @@ -24,7 +24,7 @@ define i1 @bitcast() { define i1 @gep() { ; CHECK-LABEL: @gep( %a = alloca [3 x i8], align 8 - %x = getelementptr inbounds [3 x i8]* %a, i32 0, i32 0 + %x = getelementptr inbounds [3 x i8], [3 x i8]* %a, i32 0, i32 0 %cmp = icmp eq i8* %x, null ret i1 %cmp ; CHECK-NEXT: ret i1 false @@ -33,8 +33,8 @@ define i1 @gep() { define i1 @gep2() { ; CHECK-LABEL: @gep2( %a = alloca [3 x i8], align 8 - %x = getelementptr inbounds [3 x i8]* %a, i32 0, i32 0 - %y = getelementptr inbounds [3 x i8]* %a, i32 0, i32 0 + %x = getelementptr inbounds [3 x i8], [3 x i8]* %a, i32 0, i32 0 + %y = getelementptr inbounds [3 x i8], [3 x i8]* %a, i32 0, i32 0 %cmp = icmp eq i8* %x, %y ret i1 %cmp ; CHECK-NEXT: ret i1 true @@ -48,8 +48,8 @@ define i1 @gep2() { define i1 @gep3() { ; CHECK-LABEL: @gep3( %x = alloca %gept, align 8 - %a = getelementptr %gept* %x, i64 0, i32 0 - %b = getelementptr %gept* %x, i64 0, i32 1 + %a = getelementptr %gept, %gept* %x, i64 0, i32 0 + %b = getelementptr %gept, %gept* %x, i64 0, i32 1 %equal = icmp eq i32* %a, %b ret i1 %equal ; CHECK-NEXT: ret i1 false @@ -58,8 +58,8 @@ define i1 @gep3() { define i1 @gep4() { ; CHECK-LABEL: @gep4( %x = alloca %gept, align 8 - %a = getelementptr %gept* @gepy, i64 0, i32 0 - %b = getelementptr %gept* @gepy, i64 0, i32 1 + %a = getelementptr %gept, %gept* @gepy, i64 0, i32 0 + %b = getelementptr %gept, %gept* @gepy, i64 0, i32 1 %equal = icmp eq i32* %a, %b ret i1 %equal ; CHECK-NEXT: ret i1 false @@ -68,8 +68,8 @@ define i1 @gep4() { define i1 @gep5() { ; CHECK-LABEL: @gep5( %x = alloca %gept, align 8 - %a = getelementptr inbounds %gept* %x, i64 0, i32 1 - %b = getelementptr %gept* @gepy, i64 0, i32 0 + %a = getelementptr inbounds %gept, %gept* %x, i64 0, i32 1 + %b = getelementptr %gept, %gept* @gepy, i64 0, i32 0 %equal = icmp eq i32* %a, %b ret i1 %equal ; CHECK-NEXT: ret i1 false @@ -78,8 +78,8 @@ define i1 @gep5() { define i1 @gep6(%gept* %x) { ; Same as @gep3 but potentially null. ; CHECK-LABEL: @gep6( - %a = getelementptr %gept* %x, i64 0, i32 0 - %b = getelementptr %gept* %x, i64 0, i32 1 + %a = getelementptr %gept, %gept* %x, i64 0, i32 0 + %b = getelementptr %gept, %gept* %x, i64 0, i32 1 %equal = icmp eq i32* %a, %b ret i1 %equal ; CHECK-NEXT: ret i1 false @@ -87,8 +87,8 @@ define i1 @gep6(%gept* %x) { define i1 @gep7(%gept* %x) { ; CHECK-LABEL: @gep7( - %a = getelementptr %gept* %x, i64 0, i32 0 - %b = getelementptr %gept* @gepz, i64 0, i32 0 + %a = getelementptr %gept, %gept* %x, i64 0, i32 0 + %b = getelementptr %gept, %gept* @gepz, i64 0, i32 0 %equal = icmp eq i32* %a, %b ret i1 %equal ; CHECK: ret i1 %equal @@ -96,8 +96,8 @@ define i1 @gep7(%gept* %x) { define i1 @gep8(%gept* %x) { ; CHECK-LABEL: @gep8( - %a = getelementptr %gept* %x, i32 1 - %b = getelementptr %gept* %x, i32 -1 + %a = getelementptr %gept, %gept* %x, i32 1 + %b = getelementptr %gept, %gept* %x, i32 -1 %equal = icmp ugt %gept* %a, %b ret i1 %equal ; CHECK: ret i1 %equal @@ -109,14 +109,14 @@ define i1 @gep9(i8* %ptr) { ; CHECK: ret i1 true entry: - %first1 = getelementptr inbounds i8* %ptr, i32 0 - %first2 = getelementptr inbounds i8* %first1, i32 1 - %first3 = getelementptr inbounds i8* %first2, i32 2 - %first4 = getelementptr inbounds i8* %first3, i32 4 - %last1 = getelementptr inbounds i8* %first2, i32 48 - %last2 = getelementptr inbounds i8* %last1, i32 8 - %last3 = getelementptr inbounds i8* %last2, i32 -4 - %last4 = getelementptr inbounds i8* %last3, i32 -4 + %first1 = getelementptr inbounds i8, i8* %ptr, i32 0 + %first2 = getelementptr inbounds i8, i8* %first1, i32 1 + %first3 = getelementptr inbounds i8, i8* %first2, i32 2 + %first4 = getelementptr inbounds i8, i8* %first3, i32 4 + %last1 = getelementptr inbounds i8, i8* %first2, i32 48 + %last2 = getelementptr inbounds i8, i8* %last1, i32 8 + %last3 = getelementptr inbounds i8, i8* %last2, i32 -4 + %last4 = getelementptr inbounds i8, i8* %last3, i32 -4 %first.int = ptrtoint i8* %first4 to i32 %last.int = ptrtoint i8* %last4 to i32 %cmp = icmp ne i32 %last.int, %first.int @@ -129,10 +129,10 @@ define i1 @gep10(i8* %ptr) { ; CHECK: ret i1 true entry: - %first1 = getelementptr inbounds i8* %ptr, i32 -2 - %first2 = getelementptr inbounds i8* %first1, i32 44 - %last1 = getelementptr inbounds i8* %ptr, i32 48 - %last2 = getelementptr inbounds i8* %last1, i32 -6 + %first1 = getelementptr inbounds i8, i8* %ptr, i32 -2 + %first2 = getelementptr inbounds i8, i8* %first1, i32 44 + %last1 = getelementptr inbounds i8, i8* %ptr, i32 48 + %last2 = getelementptr inbounds i8, i8* %last1, i32 -6 %first.int = ptrtoint i8* %first2 to i32 %last.int = ptrtoint i8* %last2 to i32 %cmp = icmp eq i32 %last.int, %first.int @@ -145,9 +145,9 @@ define i1 @gep11(i8* %ptr) { ; CHECK: ret i1 true entry: - %first1 = getelementptr inbounds i8* %ptr, i32 -2 - %last1 = getelementptr inbounds i8* %ptr, i32 48 - %last2 = getelementptr inbounds i8* %last1, i32 -6 + %first1 = getelementptr inbounds i8, i8* %ptr, i32 -2 + %last1 = getelementptr inbounds i8, i8* %ptr, i32 48 + %last2 = getelementptr inbounds i8, i8* %last1, i32 -6 %cmp = icmp ult i8* %first1, %last2 ret i1 %cmp } @@ -158,9 +158,9 @@ define i1 @gep12(i8* %ptr) { ; CHECK: ret i1 %cmp entry: - %first1 = getelementptr inbounds i8* %ptr, i32 -2 - %last1 = getelementptr inbounds i8* %ptr, i32 48 - %last2 = getelementptr inbounds i8* %last1, i32 -6 + %first1 = getelementptr inbounds i8, i8* %ptr, i32 -2 + %last1 = getelementptr inbounds i8, i8* %ptr, i32 48 + %last2 = getelementptr inbounds i8, i8* %last1, i32 -6 %cmp = icmp slt i8* %first1, %last2 ret i1 %cmp } @@ -168,7 +168,7 @@ entry: define i1 @gep13(i8* %ptr) { ; CHECK-LABEL: @gep13( ; We can prove this GEP is non-null because it is inbounds. - %x = getelementptr inbounds i8* %ptr, i32 1 + %x = getelementptr inbounds i8, i8* %ptr, i32 1 %cmp = icmp eq i8* %x, null ret i1 %cmp ; CHECK-NEXT: ret i1 false @@ -178,7 +178,7 @@ define i1 @gep14({ {}, i8 }* %ptr) { ; CHECK-LABEL: @gep14( ; We can't simplify this because the offset of one in the GEP actually doesn't ; move the pointer. - %x = getelementptr inbounds { {}, i8 }* %ptr, i32 0, i32 1 + %x = getelementptr inbounds { {}, i8 }, { {}, i8 }* %ptr, i32 0, i32 1 %cmp = icmp eq i8* %x, null ret i1 %cmp ; CHECK-NOT: ret i1 false @@ -188,7 +188,7 @@ define i1 @gep15({ {}, [4 x {i8, i8}]}* %ptr, i32 %y) { ; CHECK-LABEL: @gep15( ; We can prove this GEP is non-null even though there is a user value, as we ; would necessarily violate inbounds on one side or the other. - %x = getelementptr inbounds { {}, [4 x {i8, i8}]}* %ptr, i32 0, i32 1, i32 %y, i32 1 + %x = getelementptr inbounds { {}, [4 x {i8, i8}]}, { {}, [4 x {i8, i8}]}* %ptr, i32 0, i32 1, i32 %y, i32 1 %cmp = icmp eq i8* %x, null ret i1 %cmp ; CHECK-NEXT: ret i1 false @@ -199,7 +199,7 @@ define i1 @gep16(i8* %ptr, i32 %a) { ; We can prove this GEP is non-null because it is inbounds and because we know ; %b is non-zero even though we don't know its value. %b = or i32 %a, 1 - %x = getelementptr inbounds i8* %ptr, i32 %b + %x = getelementptr inbounds i8, i8* %ptr, i32 %b %cmp = icmp eq i8* %x, null ret i1 %cmp ; CHECK-NEXT: ret i1 false @@ -687,7 +687,7 @@ define <2 x i1> @vectorselectcrash(i32 %arg1) { ; PR12013 define i1 @alloca_compare(i64 %idx) { %sv = alloca { i32, i32, [124 x i32] } - %1 = getelementptr inbounds { i32, i32, [124 x i32] }* %sv, i32 0, i32 2, i64 %idx + %1 = getelementptr inbounds { i32, i32, [124 x i32] }, { i32, i32, [124 x i32] }* %sv, i32 0, i32 2, i64 %idx %2 = icmp eq i32* %1, null ret i1 %2 ; CHECK: alloca_compare @@ -699,7 +699,7 @@ define i1 @infinite_gep() { ret i1 1 unreachableblock: - %X = getelementptr i32 *%X, i32 1 + %X = getelementptr i32, i32 *%X, i32 1 %Y = icmp eq i32* %X, null ret i1 %Y } @@ -744,7 +744,7 @@ define i1 @alloca_gep(i64 %a, i64 %b) { ; We can prove this GEP is non-null because it is inbounds and the pointer ; is non-null. %strs = alloca [1000 x [1001 x i8]], align 16 - %x = getelementptr inbounds [1000 x [1001 x i8]]* %strs, i64 0, i64 %a, i64 %b + %x = getelementptr inbounds [1000 x [1001 x i8]], [1000 x [1001 x i8]]* %strs, i64 0, i64 %a, i64 %b %cmp = icmp eq i8* %x, null ret i1 %cmp ; CHECK-NEXT: ret i1 false @@ -753,10 +753,10 @@ define i1 @alloca_gep(i64 %a, i64 %b) { define i1 @non_inbounds_gep_compare(i64* %a) { ; CHECK-LABEL: @non_inbounds_gep_compare( ; Equality compares with non-inbounds GEPs can be folded. - %x = getelementptr i64* %a, i64 42 - %y = getelementptr inbounds i64* %x, i64 -42 - %z = getelementptr i64* %a, i64 -42 - %w = getelementptr inbounds i64* %z, i64 42 + %x = getelementptr i64, i64* %a, i64 42 + %y = getelementptr inbounds i64, i64* %x, i64 -42 + %z = getelementptr i64, i64* %a, i64 -42 + %w = getelementptr inbounds i64, i64* %z, i64 42 %cmp = icmp eq i64* %y, %w ret i1 %cmp ; CHECK-NEXT: ret i1 true @@ -765,8 +765,8 @@ define i1 @non_inbounds_gep_compare(i64* %a) { define i1 @non_inbounds_gep_compare2(i64* %a) { ; CHECK-LABEL: @non_inbounds_gep_compare2( ; Equality compares with non-inbounds GEPs can be folded. - %x = getelementptr i64* %a, i64 4294967297 - %y = getelementptr i64* %a, i64 1 + %x = getelementptr i64, i64* %a, i64 4294967297 + %y = getelementptr i64, i64* %a, i64 1 %cmp = icmp eq i64* %y, %y ret i1 %cmp ; CHECK-NEXT: ret i1 true @@ -918,7 +918,7 @@ define i1 @nonnull_deref_as_arg(i32 addrspace(1)* dereferenceable(4) %i) { ret i1 %cmp ; CHECK-LABEL: @nonnull_deref_as_arg ; CHECK: icmp -; CHECK ret +; CHECK: ret } declare nonnull i32* @returns_nonnull_helper() @@ -950,7 +950,7 @@ define i1 @returns_nonnull_as_deref() { } define i1 @nonnull_load(i32** %addr) { - %ptr = load i32** %addr, !nonnull !{} + %ptr = load i32*, i32** %addr, !nonnull !{} %cmp = icmp eq i32* %ptr, null ret i1 %cmp ; CHECK-LABEL: @nonnull_load @@ -958,14 +958,14 @@ define i1 @nonnull_load(i32** %addr) { } define i1 @nonnull_load_as_outer(i32* addrspace(1)* %addr) { - %ptr = load i32* addrspace(1)* %addr, !nonnull !{} + %ptr = load i32*, i32* addrspace(1)* %addr, !nonnull !{} %cmp = icmp eq i32* %ptr, null ret i1 %cmp ; CHECK-LABEL: @nonnull_load_as_outer ; CHECK: ret i1 false } define i1 @nonnull_load_as_inner(i32 addrspace(1)** %addr) { - %ptr = load i32 addrspace(1)** %addr, !nonnull !{} + %ptr = load i32 addrspace(1)*, i32 addrspace(1)** %addr, !nonnull !{} %cmp = icmp eq i32 addrspace(1)* %ptr, null ret i1 %cmp ; CHECK-LABEL: @nonnull_load_as_inner diff --git a/test/Transforms/InstSimplify/gep.ll b/test/Transforms/InstSimplify/gep.ll index 49a97f1..13640e7 100644 --- a/test/Transforms/InstSimplify/gep.ll +++ b/test/Transforms/InstSimplify/gep.ll @@ -9,7 +9,7 @@ define %struct.A* @test1(%struct.A* %b, %struct.A* %e) { %b_ptr = ptrtoint %struct.A* %b to i64 %sub = sub i64 %e_ptr, %b_ptr %sdiv = sdiv exact i64 %sub, 7 - %gep = getelementptr inbounds %struct.A* %b, i64 %sdiv + %gep = getelementptr inbounds %struct.A, %struct.A* %b, i64 %sdiv ret %struct.A* %gep ; CHECK-LABEL: @test1 ; CHECK-NEXT: ret %struct.A* %e @@ -19,7 +19,7 @@ define i8* @test2(i8* %b, i8* %e) { %e_ptr = ptrtoint i8* %e to i64 %b_ptr = ptrtoint i8* %b to i64 %sub = sub i64 %e_ptr, %b_ptr - %gep = getelementptr inbounds i8* %b, i64 %sub + %gep = getelementptr inbounds i8, i8* %b, i64 %sub ret i8* %gep ; CHECK-LABEL: @test2 ; CHECK-NEXT: ret i8* %e @@ -30,7 +30,7 @@ define i64* @test3(i64* %b, i64* %e) { %b_ptr = ptrtoint i64* %b to i64 %sub = sub i64 %e_ptr, %b_ptr %ashr = ashr exact i64 %sub, 3 - %gep = getelementptr inbounds i64* %b, i64 %ashr + %gep = getelementptr inbounds i64, i64* %b, i64 %ashr ret i64* %gep ; CHECK-LABEL: @test3 ; CHECK-NEXT: ret i64* %e @@ -40,7 +40,7 @@ define %struct.A* @test4(%struct.A* %b) { %b_ptr = ptrtoint %struct.A* %b to i64 %sub = sub i64 0, %b_ptr %sdiv = sdiv exact i64 %sub, 7 - %gep = getelementptr inbounds %struct.A* %b, i64 %sdiv + %gep = getelementptr inbounds %struct.A, %struct.A* %b, i64 %sdiv ret %struct.A* %gep ; CHECK-LABEL: @test4 ; CHECK-NEXT: ret %struct.A* null @@ -49,7 +49,7 @@ define %struct.A* @test4(%struct.A* %b) { define i8* @test5(i8* %b) { %b_ptr = ptrtoint i8* %b to i64 %sub = sub i64 0, %b_ptr - %gep = getelementptr inbounds i8* %b, i64 %sub + %gep = getelementptr inbounds i8, i8* %b, i64 %sub ret i8* %gep ; CHECK-LABEL: @test5 ; CHECK-NEXT: ret i8* null @@ -59,7 +59,7 @@ define i64* @test6(i64* %b) { %b_ptr = ptrtoint i64* %b to i64 %sub = sub i64 0, %b_ptr %ashr = ashr exact i64 %sub, 3 - %gep = getelementptr inbounds i64* %b, i64 %ashr + %gep = getelementptr inbounds i64, i64* %b, i64 %ashr ret i64* %gep ; CHECK-LABEL: @test6 ; CHECK-NEXT: ret i64* null @@ -69,7 +69,7 @@ define i8* @test7(i8* %b, i8** %e) { %e_ptr = ptrtoint i8** %e to i64 %b_ptr = ptrtoint i8* %b to i64 %sub = sub i64 %e_ptr, %b_ptr - %gep = getelementptr inbounds i8* %b, i64 %sub + %gep = getelementptr inbounds i8, i8* %b, i64 %sub ret i8* %gep ; CHECK-LABEL: @test7 ; CHECK-NEXT: ptrtoint diff --git a/test/Transforms/InstSimplify/load.ll b/test/Transforms/InstSimplify/load.ll index 92953cd..ab87d4b 100644 --- a/test/Transforms/InstSimplify/load.ll +++ b/test/Transforms/InstSimplify/load.ll @@ -6,14 +6,14 @@ define i32 @crash_on_zeroinit() { ; CHECK-LABEL: @crash_on_zeroinit ; CHECK: ret i32 0 - %load = load i32* bitcast ({}* @zeroinit to i32*) + %load = load i32, i32* bitcast ({}* @zeroinit to i32*) ret i32 %load } define i32 @crash_on_undef() { ; CHECK-LABEL: @crash_on_undef ; CHECK: ret i32 undef - %load = load i32* bitcast ({}* @undef to i32*) + %load = load i32, i32* bitcast ({}* @undef to i32*) ret i32 %load } diff --git a/test/Transforms/InstSimplify/noalias-ptr.ll b/test/Transforms/InstSimplify/noalias-ptr.ll index 7693e55..59b1dfa 100644 --- a/test/Transforms/InstSimplify/noalias-ptr.ll +++ b/test/Transforms/InstSimplify/noalias-ptr.ll @@ -26,7 +26,7 @@ define void @_Z2p1v() #0 { %1 = bitcast [10 x i32]* %mStackData to i8* %2 = tail call noalias i8* @_Znam(i64 48) #4 %3 = bitcast i8* %2 to i32* - %4 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %4 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %5 = icmp eq i32* %3, %4 br i1 %5, label %7, label %6 @@ -47,7 +47,7 @@ define void @_Z2p1v() #0 { define void @_Z2p2bb(i1 zeroext %b1, i1 zeroext %b2) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* @g2 %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -72,7 +72,7 @@ define void @_Z2p2bb(i1 zeroext %b1, i1 zeroext %b2) #0 { define void @_Z2p4bb(i1 zeroext %b1, i1 zeroext %b2) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* @g3 %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -97,7 +97,7 @@ define void @_Z2p4bb(i1 zeroext %b1, i1 zeroext %b2) #0 { define void @_Z2p5bb(i1 zeroext %b1, i1 zeroext %b2) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* @g4 %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -122,7 +122,7 @@ define void @_Z2p5bb(i1 zeroext %b1, i1 zeroext %b2) #0 { define void @_Z2p6bb(i1 zeroext %b1, i1 zeroext %b2) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* @g5 %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -151,7 +151,7 @@ define void @_Z2p6bb(i1 zeroext %b1, i1 zeroext %b2) #0 { define void @_Z4nopebbPi(i1 zeroext %b1, i1 zeroext %b2, i32* readnone %q) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* %q %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -176,7 +176,7 @@ define void @_Z4nopebbPi(i1 zeroext %b1, i1 zeroext %b2, i32* readnone %q) #0 { define void @_Z2p3bb(i1 zeroext %b1, i1 zeroext %b2) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* @g1 %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -201,7 +201,7 @@ define void @_Z2p3bb(i1 zeroext %b1, i1 zeroext %b2) #0 { define void @_Z2p7bb(i1 zeroext %b1, i1 zeroext %b2) #0 { %mStackData = alloca [10 x i32], align 16 %1 = bitcast [10 x i32]* %mStackData to i8* - %2 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %2 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %3 = select i1 %b1, i32* %2, i32* @g6 %4 = tail call noalias i8* @_Znam(i64 48) #4 %5 = tail call noalias i8* @_Znam(i64 48) #4 @@ -228,7 +228,7 @@ define void @_Z2p2v(i32 %c) #0 { %1 = bitcast [10 x i32]* %mStackData to i8* %2 = tail call noalias i8* @_Znam(i64 48) #4 %3 = bitcast i8* %2 to i32* - %4 = getelementptr inbounds [10 x i32]* %mStackData, i64 0, i64 0 + %4 = getelementptr inbounds [10 x i32], [10 x i32]* %mStackData, i64 0, i64 0 %5 = icmp eq i32* %3, %4 br i1 %5, label %7, label %6 diff --git a/test/Transforms/InstSimplify/past-the-end.ll b/test/Transforms/InstSimplify/past-the-end.ll index 075da4a..b676e9d 100644 --- a/test/Transforms/InstSimplify/past-the-end.ll +++ b/test/Transforms/InstSimplify/past-the-end.ll @@ -18,8 +18,8 @@ define zeroext i1 @no_offsets() { ; Comparing past-the-end addresses of two distinct globals. Never equal. define zeroext i1 @both_past_the_end() { - %x = getelementptr i32* @opte_a, i32 1 - %y = getelementptr i32* @opte_b, i32 1 + %x = getelementptr i32, i32* @opte_a, i32 1 + %y = getelementptr i32, i32* @opte_b, i32 1 %t = icmp eq i32* %x, %y ret i1 %t ; CHECK: both_past_the_end( @@ -31,11 +31,11 @@ define zeroext i1 @both_past_the_end() { ; of another. Can't fold this. define zeroext i1 @just_one_past_the_end() { - %x = getelementptr i32* @opte_a, i32 1 + %x = getelementptr i32, i32* @opte_a, i32 1 %t = icmp eq i32* %x, @opte_b ret i1 %t ; CHECK: just_one_past_the_end( - ; CHECK: ret i1 icmp eq (i32* getelementptr inbounds (i32* @opte_a, i32 1), i32* @opte_b) + ; CHECK: ret i1 icmp eq (i32* getelementptr inbounds (i32, i32* @opte_a, i32 1), i32* @opte_b) } ; Comparing base addresses of two distinct allocas. Never equal. @@ -54,8 +54,8 @@ define zeroext i1 @no_alloca_offsets() { define zeroext i1 @both_past_the_end_alloca() { %m = alloca i32 %n = alloca i32 - %x = getelementptr i32* %m, i32 1 - %y = getelementptr i32* %n, i32 1 + %x = getelementptr i32, i32* %m, i32 1 + %y = getelementptr i32, i32* %n, i32 1 %t = icmp eq i32* %x, %y ret i1 %t ; CHECK: both_past_the_end_alloca( @@ -69,7 +69,7 @@ define zeroext i1 @both_past_the_end_alloca() { define zeroext i1 @just_one_past_the_end_alloca() { %m = alloca i32 %n = alloca i32 - %x = getelementptr i32* %m, i32 1 + %x = getelementptr i32, i32* %m, i32 1 %t = icmp eq i32* %x, %n ret i1 %t ; CHECK: just_one_past_the_end_alloca( diff --git a/test/Transforms/InstSimplify/ptr_diff.ll b/test/Transforms/InstSimplify/ptr_diff.ll index 6a3f652..6c27e6f 100644 --- a/test/Transforms/InstSimplify/ptr_diff.ll +++ b/test/Transforms/InstSimplify/ptr_diff.ll @@ -6,8 +6,8 @@ define i64 @ptrdiff1(i8* %ptr) { ; CHECK-LABEL: @ptrdiff1( ; CHECK-NEXT: ret i64 42 - %first = getelementptr inbounds i8* %ptr, i32 0 - %last = getelementptr inbounds i8* %ptr, i32 42 + %first = getelementptr inbounds i8, i8* %ptr, i32 0 + %last = getelementptr inbounds i8, i8* %ptr, i32 42 %first.int = ptrtoint i8* %first to i64 %last.int = ptrtoint i8* %last to i64 %diff = sub i64 %last.int, %first.int @@ -18,14 +18,14 @@ define i64 @ptrdiff2(i8* %ptr) { ; CHECK-LABEL: @ptrdiff2( ; CHECK-NEXT: ret i64 42 - %first1 = getelementptr inbounds i8* %ptr, i32 0 - %first2 = getelementptr inbounds i8* %first1, i32 1 - %first3 = getelementptr inbounds i8* %first2, i32 2 - %first4 = getelementptr inbounds i8* %first3, i32 4 - %last1 = getelementptr inbounds i8* %first2, i32 48 - %last2 = getelementptr inbounds i8* %last1, i32 8 - %last3 = getelementptr inbounds i8* %last2, i32 -4 - %last4 = getelementptr inbounds i8* %last3, i32 -4 + %first1 = getelementptr inbounds i8, i8* %ptr, i32 0 + %first2 = getelementptr inbounds i8, i8* %first1, i32 1 + %first3 = getelementptr inbounds i8, i8* %first2, i32 2 + %first4 = getelementptr inbounds i8, i8* %first3, i32 4 + %last1 = getelementptr inbounds i8, i8* %first2, i32 48 + %last2 = getelementptr inbounds i8, i8* %last1, i32 8 + %last3 = getelementptr inbounds i8, i8* %last2, i32 -4 + %last4 = getelementptr inbounds i8, i8* %last3, i32 -4 %first.int = ptrtoint i8* %first4 to i64 %last.int = ptrtoint i8* %last4 to i64 %diff = sub i64 %last.int, %first.int @@ -39,8 +39,8 @@ define i64 @ptrdiff3(i8* %ptr) { ; CHECK: sub ; CHECK: ret - %first = getelementptr i8* %ptr, i32 0 - %last = getelementptr i8* %ptr, i32 42 + %first = getelementptr i8, i8* %ptr, i32 0 + %last = getelementptr i8, i8* %ptr, i32 42 %first.int = ptrtoint i8* %first to i64 %last.int = ptrtoint i8* %last to i64 %diff = sub i64 %last.int, %first.int @@ -64,12 +64,12 @@ define <4 x i32> @ptrdiff4(<4 x i8*> %arg) nounwind { define i32 @ptrdiff5() nounwind { bb: - %tmp = getelementptr inbounds %struct.ham* @global, i32 0, i32 1 - %tmp1 = getelementptr inbounds [2 x [2 x i32]]* %tmp, i32 0, i32 0 + %tmp = getelementptr inbounds %struct.ham, %struct.ham* @global, i32 0, i32 1 + %tmp1 = getelementptr inbounds [2 x [2 x i32]], [2 x [2 x i32]]* %tmp, i32 0, i32 0 %tmp2 = bitcast [2 x i32]* %tmp1 to i32* %tmp3 = ptrtoint i32* %tmp2 to i32 - %tmp4 = getelementptr inbounds %struct.ham* @global, i32 0, i32 1 - %tmp5 = getelementptr inbounds [2 x [2 x i32]]* %tmp4, i32 0, i32 0 + %tmp4 = getelementptr inbounds %struct.ham, %struct.ham* @global, i32 0, i32 1 + %tmp5 = getelementptr inbounds [2 x [2 x i32]], [2 x [2 x i32]]* %tmp4, i32 0, i32 0 %tmp6 = ptrtoint [2 x i32]* %tmp5 to i32 %tmp7 = sub i32 %tmp3, %tmp6 ret i32 %tmp7 diff --git a/test/Transforms/InstSimplify/vector_gep.ll b/test/Transforms/InstSimplify/vector_gep.ll index 1781463..5c30620 100644 --- a/test/Transforms/InstSimplify/vector_gep.ll +++ b/test/Transforms/InstSimplify/vector_gep.ll @@ -4,13 +4,13 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" declare void @helper(<2 x i8*>) define void @test(<2 x i8*> %a) { - %A = getelementptr <2 x i8*> %a, <2 x i32> <i32 0, i32 0> + %A = getelementptr i8, <2 x i8*> %a, <2 x i32> <i32 0, i32 0> call void @helper(<2 x i8*> %A) ret void } define <4 x i8*> @test1(<4 x i8*> %a) { - %gep = getelementptr <4 x i8*> %a, <4 x i32> zeroinitializer + %gep = getelementptr i8, <4 x i8*> %a, <4 x i32> zeroinitializer ret <4 x i8*> %gep ; CHECK-LABEL: @test1 @@ -18,7 +18,7 @@ define <4 x i8*> @test1(<4 x i8*> %a) { } define <4 x i8*> @test2(<4 x i8*> %a) { - %gep = getelementptr <4 x i8*> %a + %gep = getelementptr i8, <4 x i8*> %a ret <4 x i8*> %gep ; CHECK-LABEL: @test2 @@ -28,7 +28,7 @@ define <4 x i8*> @test2(<4 x i8*> %a) { %struct = type { double, float } define <4 x float*> @test3() { - %gep = getelementptr <4 x %struct*> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32> <i32 1, i32 1, i32 1, i32 1> + %gep = getelementptr %struct, <4 x %struct*> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32> <i32 1, i32 1, i32 1, i32 1> ret <4 x float*> %gep ; CHECK-LABEL: @test3 @@ -38,7 +38,7 @@ define <4 x float*> @test3() { %struct.empty = type { } define <4 x %struct.empty*> @test4(<4 x %struct.empty*> %a) { - %gep = getelementptr <4 x %struct.empty*> %a, <4 x i32> <i32 1, i32 1, i32 1, i32 1> + %gep = getelementptr %struct.empty, <4 x %struct.empty*> %a, <4 x i32> <i32 1, i32 1, i32 1, i32 1> ret <4 x %struct.empty*> %gep ; CHECK-LABEL: @test4 @@ -47,9 +47,9 @@ define <4 x %struct.empty*> @test4(<4 x %struct.empty*> %a) { define <4 x i8*> @test5() { %c = inttoptr <4 x i64> <i64 1, i64 2, i64 3, i64 4> to <4 x i8*> - %gep = getelementptr <4 x i8*> %c, <4 x i32> <i32 1, i32 1, i32 1, i32 1> + %gep = getelementptr i8, <4 x i8*> %c, <4 x i32> <i32 1, i32 1, i32 1, i32 1> ret <4 x i8*> %gep ; CHECK-LABEL: @test5 -; CHECK-NEXT: ret <4 x i8*> getelementptr (<4 x i8*> <i8* inttoptr (i64 1 to i8*), i8* inttoptr (i64 2 to i8*), i8* inttoptr (i64 3 to i8*), i8* inttoptr (i64 4 to i8*)>, <4 x i32> <i32 1, i32 1, i32 1, i32 1>) +; CHECK-NEXT: ret <4 x i8*> getelementptr (i8, <4 x i8*> <i8* inttoptr (i64 1 to i8*), i8* inttoptr (i64 2 to i8*), i8* inttoptr (i64 3 to i8*), i8* inttoptr (i64 4 to i8*)>, <4 x i32> <i32 1, i32 1, i32 1, i32 1>) } diff --git a/test/Transforms/InstSimplify/vector_ptr_bitcast.ll b/test/Transforms/InstSimplify/vector_ptr_bitcast.ll index 607892a..97c8343 100644 --- a/test/Transforms/InstSimplify/vector_ptr_bitcast.ll +++ b/test/Transforms/InstSimplify/vector_ptr_bitcast.ll @@ -14,7 +14,7 @@ target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128" align 8 define i64 @fn() { - %x = load <2 x i8*>* bitcast (%mst* @a to <2 x i8*>*), align 8 + %x = load <2 x i8*>, <2 x i8*>* bitcast (%mst* @a to <2 x i8*>*), align 8 %b = extractelement <2 x i8*> %x, i32 0 %c = ptrtoint i8* %b to i64 ; CHECK-LABEL: @fn @@ -23,7 +23,7 @@ define i64 @fn() { } define i64 @fn2() { - %x = load <4 x i32*>* bitcast (%mst2* @b to <4 x i32*>*), align 8 + %x = load <4 x i32*>, <4 x i32*>* bitcast (%mst2* @b to <4 x i32*>*), align 8 %b = extractelement <4 x i32*> %x, i32 0 %c = extractelement <4 x i32*> %x, i32 3 %d = ptrtoint i32* %b to i64 |