aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2009-09-20 00:04:02 +0000
committerNick Lewycky <nicholas@mxc.ca>2009-09-20 00:04:02 +0000
commitf4d18827430be9ac3a7a5216be61224146d97f44 (patch)
tree5eec82fe4292e5562801d58be0180c714fd1afe6 /test
parent970e7dff5ba2bd8c5613c43e3b215ca940a378e9 (diff)
downloadexternal_llvm-f4d18827430be9ac3a7a5216be61224146d97f44.zip
external_llvm-f4d18827430be9ac3a7a5216be61224146d97f44.tar.gz
external_llvm-f4d18827430be9ac3a7a5216be61224146d97f44.tar.bz2
Teach the constant folder how to handle a few simple i1 cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82340 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/ConstProp/2009-09-19-ConstFold-i1-ConstExpr.ll25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/Transforms/ConstProp/2009-09-19-ConstFold-i1-ConstExpr.ll b/test/Transforms/ConstProp/2009-09-19-ConstFold-i1-ConstExpr.ll
new file mode 100644
index 0000000..debf9a8
--- /dev/null
+++ b/test/Transforms/ConstProp/2009-09-19-ConstFold-i1-ConstExpr.ll
@@ -0,0 +1,25 @@
+; RUN: llvm-as < %s | llvm-dis | FileCheck %s
+
+@X = external global i8
+@Y = external global i8
+@Z = external global i8
+
+global i1 add (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK: xor
+global i1 sub (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK: xor
+global i1 mul (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK: and
+
+global i1 sdiv (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK-NOT: @Z
+; CHECK: i1 icmp ult (i8* @X, i8* @Y)
+global i1 udiv (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK-NOT: @Z
+; CHECK: i1 icmp ult (i8* @X, i8* @Y)
+global i1 srem (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK-NOT: icmp
+; CHECK: i1 false
+global i1 urem (i1 icmp ult (i8* @X, i8* @Y), i1 icmp ult (i8* @X, i8* @Z))
+; CHECK-NOT: icmp
+; CHECK: i1 false