Add a bunch of tests for cases that should be eliminated.
authorChris Lattner <sabre@nondot.org>
Sat, 1 Jan 2005 16:13:43 +0000 (16:13 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 1 Jan 2005 16:13:43 +0000 (16:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19217 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/cast.ll

index f0b99568f48e13535f2aed2a94fb523383302a58..bf7d405059fa1c55c6de6579c76036c0655c63c6 100644 (file)
@@ -128,3 +128,30 @@ bool %test20(bool %B) {
        %D = setlt int %C, -1
        ret bool %D                ;; false
 }
+
+uint %test21(uint %X) {
+       %Y = cast uint %X to sbyte
+       %Z = cast sbyte %Y to uint ;; sext -> zext -> and -> nop
+       %RV = and uint %Z, 255
+       ret uint %RV
+}
+
+uint %test22(uint %X) {
+       %Y = cast uint %X to sbyte
+       %Z = cast sbyte %Y to uint ;; sext -> zext -> and -> nop
+       %RV = shl uint %Z, ubyte 24
+       ret uint %RV
+}
+
+int %test23(int %X) {
+       %Y = cast int %X to ushort  ;; Turn into an AND even though X
+       %Z = cast ushort %Y to int  ;; and Z are signed.
+       ret int %Z
+}
+
+bool %test24(bool %C) {
+        %X = select bool %C, uint 14, uint 1234
+        %Y = cast uint %X to bool                  ;; Fold cast into select
+        ret bool %Y
+}
+