diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2009-09-20 00:04:02 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2009-09-20 00:04:02 +0000 |
commit | f4d18827430be9ac3a7a5216be61224146d97f44 (patch) | |
tree | 5eec82fe4292e5562801d58be0180c714fd1afe6 /test | |
parent | 970e7dff5ba2bd8c5613c43e3b215ca940a378e9 (diff) | |
download | external_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.ll | 25 |
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 |