Add a bunch of testcases for cast-of-casts that should be removed.
authorChris Lattner <sabre@nondot.org>
Thu, 15 Aug 2002 16:13:29 +0000 (16:13 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 15 Aug 2002 16:13:29 +0000 (16:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3345 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/cast.ll

index 5aa6368bdb168f170aa8e8e2a849acbe2e5df86a..a809fc4136f89154f62b2ab4eda3019043c1b7ce 100644 (file)
@@ -25,3 +25,35 @@ ulong %test3(ulong %A) {    ; This function should just use bitwise AND
        %c2 = cast ubyte %c1 to ulong
        ret ulong %c2
 }
+
+uint %test4(int %A, int %B) {
+        %COND = setlt int %A, %B
+        %c = cast bool %COND to ubyte     ; Booleans are unsigned integrals
+        %result = cast ubyte %c to uint   ; for the cast elim purpose
+        ret uint %result
+}
+
+int %test5(bool %B) {
+        %c = cast bool %B to ubyte       ; This cast should get folded into
+        %result = cast ubyte %c to int   ; this cast
+        ret int %result
+}
+
+int %test6(ulong %A) {
+       %c1 = cast ulong %A to uint
+       %res = cast uint %c1 to int
+       ret int %res
+}
+
+long %test7(bool %A) {
+       %c1 = cast bool %A to int
+       %res = cast int %c1 to long
+       ret long %res
+}
+
+long %test8(sbyte %A) {
+        %c1 = cast sbyte %A to ulong
+        %res = cast ulong %c1 to long
+        ret long %res
+}
+