summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/add3.ll
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-07-20 17:43:30 +0000
committerDan Gohman <gohman@apple.com>2009-07-20 17:43:30 +0000
commit33a3fd0b9c76d85c478de582d6a26d79c8ddefbb (patch)
tree55c923200c556084716a302394241343e81c9ed6 /llvm/test/Transforms/InstCombine/add3.ll
parent4041dfc360403ede97e0949ddc19a453b2bf6b27 (diff)
downloadbcm5719-llvm-33a3fd0b9c76d85c478de582d6a26d79c8ddefbb.tar.gz
bcm5719-llvm-33a3fd0b9c76d85c478de582d6a26d79c8ddefbb.zip
Revert the addition of hasNoPointerOverflow to GEPOperator.
Getelementptrs that are defined to wrap are virtually useless to optimization, and getelementptrs that are undefined on any kind of overflow are too restrictive -- it's difficult to ensure that all intermediate addresses are within bounds. I'm going to take a different approach. Remove a few optimizations that depended on this flag. llvm-svn: 76437
Diffstat (limited to 'llvm/test/Transforms/InstCombine/add3.ll')
-rw-r--r--llvm/test/Transforms/InstCombine/add3.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/add3.ll b/llvm/test/Transforms/InstCombine/add3.ll
new file mode 100644
index 00000000000..55e7ec7a1db
--- /dev/null
+++ b/llvm/test/Transforms/InstCombine/add3.ll
@@ -0,0 +1,21 @@
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep inttoptr | count 2
+
+;; Target triple for gep raising case below.
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
+target triple = "i686-apple-darwin8"
+
+; PR1795
+define void @test2(i32 %.val24) {
+EntryBlock:
+ add i32 %.val24, -12
+ inttoptr i32 %0 to i32*
+ store i32 1, i32* %1
+ add i32 %.val24, -16
+ inttoptr i32 %2 to i32*
+ getelementptr i32* %3, i32 1
+ load i32* %4
+ tail call i32 @callee( i32 %5 )
+ ret void
+}
+
+declare i32 @callee(i32)
OpenPOWER on IntegriCloud