summaryrefslogtreecommitdiffstats
path: root/test/Transforms/IPConstantProp
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2011-08-15 20:50:36 +0000
committerEric Christopher <echristo@apple.com>2011-08-15 20:50:36 +0000
commitf000957aadaf1f273c97b1b9d4e4c6f26608c435 (patch)
tree0d1d869484f6e7b696cfae41fd401736026034f4 /test/Transforms/IPConstantProp
parent95d01b88987699efd2059f9969ba8a76422242c5 (diff)
downloadexternal_llvm-f000957aadaf1f273c97b1b9d4e4c6f26608c435.zip
external_llvm-f000957aadaf1f273c97b1b9d4e4c6f26608c435.tar.gz
external_llvm-f000957aadaf1f273c97b1b9d4e4c6f26608c435.tar.bz2
Add an ipsccp test. Migrated from test/FrontendC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137646 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/IPConstantProp')
-rw-r--r--test/Transforms/IPConstantProp/global.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/Transforms/IPConstantProp/global.ll b/test/Transforms/IPConstantProp/global.ll
new file mode 100644
index 0000000..6715293
--- /dev/null
+++ b/test/Transforms/IPConstantProp/global.ll
@@ -0,0 +1,26 @@
+; RUN: opt < %s -S -ipsccp | FileCheck %s
+
+@_ZL6test1g = internal global i32 42, align 4
+
+define void @_Z7test1f1v() nounwind {
+entry:
+ %tmp = load i32* @_ZL6test1g, align 4
+ %cmp = icmp eq i32 %tmp, 0
+ br i1 %cmp, label %if.then, label %if.end
+
+if.then: ; preds = %entry
+ store i32 0, i32* @_ZL6test1g, align 4
+ br label %if.end
+
+if.end: ; preds = %if.then, %entry
+ ret void
+}
+
+; CHECK: @_Z7test1f2v()
+; CHECK: entry:
+; CHECK-NEXT: ret i32 42
+define i32 @_Z7test1f2v() nounwind {
+entry:
+ %tmp = load i32* @_ZL6test1g, align 4
+ ret i32 %tmp
+}