summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-06-09 07:59:40 +0000
committerChris Lattner <sabre@nondot.org>2004-06-09 07:59:40 +0000
commit9e28f18fb3a5a8df03119d9321993795adde820e (patch)
tree26505d84a482ec31a77ceccf5d6c4bfb9bd23011 /test
parent525f228d95afb5a8422eadd0ef3352e4e5f93c5d (diff)
downloadllvm-9e28f18fb3a5a8df03119d9321993795adde820e.tar.gz
llvm-9e28f18fb3a5a8df03119d9321993795adde820e.tar.bz2
llvm-9e28f18fb3a5a8df03119d9321993795adde820e.tar.xz
More instcombine testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14094 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Transforms/InstCombine/select.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/select.ll b/test/Transforms/InstCombine/select.ll
index 891f057d57..fe89d93a66 100644
--- a/test/Transforms/InstCombine/select.ll
+++ b/test/Transforms/InstCombine/select.ll
@@ -109,3 +109,30 @@ bool %test14b(bool %C, int %X) {
ret bool %R
}
+int %test15a(int %X) { ;; Code sequence for (X & 16) ? 16 : 0
+ %t1 = and int %X, 16
+ %t2 = seteq int %t1, 0
+ %t3 = select bool %t2, int 0, int 16 ;; X & 16
+ ret int %t3
+}
+
+int %test15b(int %X) { ;; Code sequence for (X & 32) ? 0 : 24
+ %t1 = and int %X, 32
+ %t2 = seteq int %t1, 0
+ %t3 = select bool %t2, int 32, int 0 ;; ~X & 32
+ ret int %t3
+}
+
+int %test15c(int %X) { ;; Alternate code sequence for (X & 16) ? 16 : 0
+ %t1 = and int %X, 16
+ %t2 = seteq int %t1, 16
+ %t3 = select bool %t2, int 16, int 0 ;; X & 16
+ ret int %t3
+}
+
+int %test15d(int %X) { ;; Alternate code sequence for (X & 16) ? 16 : 0
+ %t1 = and int %X, 16
+ %t2 = setne int %t1, 0
+ %t3 = select bool %t2, int 16, int 0 ;; X & 16
+ ret int %t3
+}