summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-07-28 01:40:03 +0000
committerDan Gohman <gohman@apple.com>2009-07-28 01:40:03 +0000
commitd6aa02de1076c801ac41295156a2379637976918 (patch)
tree4dcd116cd17bcf6e69fa70cc8921273a9f7d0980 /test/Transforms
parenteb045ecba09bf606a7bcdda3edc52d43873561ab (diff)
downloadllvm-d6aa02de1076c801ac41295156a2379637976918.tar.gz
llvm-d6aa02de1076c801ac41295156a2379637976918.tar.bz2
llvm-d6aa02de1076c801ac41295156a2379637976918.tar.xz
Teach instcombine to respect and preserve inbounds. Add inbounds
to a few tests where it is required for the expected transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77290 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/InstCombine/2008-02-04-GEPIdxBug.ll4
-rw-r--r--test/Transforms/InstCombine/getelementptr-setcc.ll12
-rw-r--r--test/Transforms/InstCombine/getelementptr-seteq.ll4
3 files changed, 10 insertions, 10 deletions
diff --git a/test/Transforms/InstCombine/2008-02-04-GEPIdxBug.ll b/test/Transforms/InstCombine/2008-02-04-GEPIdxBug.ll
index 6814e2febc..064fbd13f7 100644
--- a/test/Transforms/InstCombine/2008-02-04-GEPIdxBug.ll
+++ b/test/Transforms/InstCombine/2008-02-04-GEPIdxBug.ll
@@ -10,7 +10,7 @@ define i32 @main() nounwind {
entry:
%orientations = alloca [1 x [1 x %struct.x]] ; <[1 x [1 x %struct.x]]*> [#uses=2]
%tmp3 = call i32 @puts( i8* getelementptr ([6 x i8]* @.str, i32 0, i32 0) ) nounwind ; <i32> [#uses=0]
- %tmp45 = getelementptr [1 x [1 x %struct.x]]* %orientations, i32 1, i32 0, i32 0 ; <%struct.x*> [#uses=1]
+ %tmp45 = getelementptr inbounds [1 x [1 x %struct.x]]* %orientations, i32 1, i32 0, i32 0 ; <%struct.x*> [#uses=1]
%orientations62 = getelementptr [1 x [1 x %struct.x]]* %orientations, i32 0, i32 0, i32 0 ; <%struct.x*> [#uses=1]
br label %bb10
@@ -18,7 +18,7 @@ bb10: ; preds = %bb10, %entry
%indvar = phi i32 [ 0, %entry ], [ %indvar.next, %bb10 ] ; <i32> [#uses=2]
%tmp.0.reg2mem.0.rec = mul i32 %indvar, -1 ; <i32> [#uses=1]
%tmp12.rec = add i32 %tmp.0.reg2mem.0.rec, -1 ; <i32> [#uses=1]
- %tmp12 = getelementptr %struct.x* %tmp45, i32 %tmp12.rec ; <%struct.x*> [#uses=2]
+ %tmp12 = getelementptr inbounds %struct.x* %tmp45, i32 %tmp12.rec ; <%struct.x*> [#uses=2]
%tmp16 = call i32 (i8*, ...)* @printf( i8* getelementptr ([12 x i8]* @.str1, i32 0, i32 0), %struct.x* %tmp12 ) nounwind ; <i32> [#uses=0]
%tmp84 = icmp eq %struct.x* %tmp12, %orientations62 ; <i1> [#uses=1]
%indvar.next = add i32 %indvar, 1 ; <i32> [#uses=1]
diff --git a/test/Transforms/InstCombine/getelementptr-setcc.ll b/test/Transforms/InstCombine/getelementptr-setcc.ll
index 0a6d720d74..c90390ac1e 100644
--- a/test/Transforms/InstCombine/getelementptr-setcc.ll
+++ b/test/Transforms/InstCombine/getelementptr-setcc.ll
@@ -2,28 +2,28 @@
; RUN: not grep getelementptr
define i1 @test1(i16* %P, i32 %I, i32 %J) {
- %X = getelementptr i16* %P, i32 %I ; <i16*> [#uses=1]
- %Y = getelementptr i16* %P, i32 %J ; <i16*> [#uses=1]
+ %X = getelementptr inbounds i16* %P, i32 %I ; <i16*> [#uses=1]
+ %Y = getelementptr inbounds i16* %P, i32 %J ; <i16*> [#uses=1]
%C = icmp ult i16* %X, %Y ; <i1> [#uses=1]
ret i1 %C
}
define i1 @test2(i16* %P, i32 %I) {
- %X = getelementptr i16* %P, i32 %I ; <i16*> [#uses=1]
+ %X = getelementptr inbounds i16* %P, i32 %I ; <i16*> [#uses=1]
%C = icmp ult i16* %X, %P ; <i1> [#uses=1]
ret i1 %C
}
define i32 @test3(i32* %P, i32 %A, i32 %B) {
- %tmp.4 = getelementptr i32* %P, i32 %A ; <i32*> [#uses=1]
- %tmp.9 = getelementptr i32* %P, i32 %B ; <i32*> [#uses=1]
+ %tmp.4 = getelementptr inbounds i32* %P, i32 %A ; <i32*> [#uses=1]
+ %tmp.9 = getelementptr inbounds i32* %P, i32 %B ; <i32*> [#uses=1]
%tmp.10 = icmp eq i32* %tmp.4, %tmp.9 ; <i1> [#uses=1]
%tmp.11 = zext i1 %tmp.10 to i32 ; <i32> [#uses=1]
ret i32 %tmp.11
}
define i32 @test4(i32* %P, i32 %A, i32 %B) {
- %tmp.4 = getelementptr i32* %P, i32 %A ; <i32*> [#uses=1]
+ %tmp.4 = getelementptr inbounds i32* %P, i32 %A ; <i32*> [#uses=1]
%tmp.6 = icmp eq i32* %tmp.4, %P ; <i1> [#uses=1]
%tmp.7 = zext i1 %tmp.6 to i32 ; <i32> [#uses=1]
ret i32 %tmp.7
diff --git a/test/Transforms/InstCombine/getelementptr-seteq.ll b/test/Transforms/InstCombine/getelementptr-seteq.ll
index 05cec622b2..2cd6f77b89 100644
--- a/test/Transforms/InstCombine/getelementptr-seteq.ll
+++ b/test/Transforms/InstCombine/getelementptr-seteq.ll
@@ -5,8 +5,8 @@
%S = type { i32, [ 100 x i32] }
define i1 @test(i64 %X, %S* %P) {
- %A = getelementptr %S* %P, i32 0, i32 1, i64 %X
- %B = getelementptr %S* %P, i32 0, i32 0
+ %A = getelementptr inbounds %S* %P, i32 0, i32 1, i64 %X
+ %B = getelementptr inbounds %S* %P, i32 0, i32 0
%C = icmp eq i32* %A, %B
ret i1 %C
}