move a failing testcase from bit-tracking.ll to narrow.ll, and move the
authorChris Lattner <sabre@nondot.org>
Sun, 12 Feb 2006 02:02:43 +0000 (02:02 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 12 Feb 2006 02:02:43 +0000 (02:02 +0000)
xfail marker with it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26129 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/InstCombine/bit-tracking.ll
test/Transforms/InstCombine/narrow.ll [new file with mode: 0644]

index c979833bc099656006954cd2f11a418503d81623..aa81da92defa11d5fceafe6e6217bfe0f0bfb6b0 100644 (file)
@@ -1,29 +1,7 @@
 ; This file contains various testcases that require tracking whether bits are
 ; set or cleared by various instructions.
-; XFAIL: *
 ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep %ELIM
 
-; test1 - Eliminating the casts in this testcase (by narrowing the AND 
-; operation) allows instcombine to realize the function always returns false.
-;
-bool %test1(int %A, int %B) {
-        %C1 = setlt int %A, %B
-        %ELIM1 = cast bool %C1 to uint
-        %C2 = setgt int %A, %B
-        %ELIM2 = cast bool %C2 to uint
-        %C3 = and uint %ELIM1, %ELIM2
-        %ELIM3 = cast uint %C3 to bool
-        ret bool %ELIM3
-}
-
-; See if we can eliminate the shifts...
-int %test2(int %B) {
-        %ELIM1 = shl int %B, ubyte 31
-        %ELIM2 = shr int %ELIM1, ubyte 31
-        %inc = add int %ELIM2, 1   ; == xor int %B, 1
-        ret int %inc
-}
-
 ; Reduce down to a single XOR
 int %test3(int %B) {
         %ELIMinc = and int %B, 1
diff --git a/test/Transforms/InstCombine/narrow.ll b/test/Transforms/InstCombine/narrow.ll
new file mode 100644 (file)
index 0000000..a26d615
--- /dev/null
@@ -0,0 +1,18 @@
+; This file contains various testcases that check to see that instcombine
+; is narrowing computations when possible.
+
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep %ELIM
+; XFAIL: *
+
+; test1 - Eliminating the casts in this testcase (by narrowing the AND
+; operation) allows instcombine to realize the function always returns false.
+;
+bool %test1(int %A, int %B) {
+        %C1 = setlt int %A, %B
+        %ELIM1 = cast bool %C1 to uint
+        %C2 = setgt int %A, %B
+        %ELIM2 = cast bool %C2 to uint
+        %C3 = and uint %ELIM1, %ELIM2
+        %ELIM3 = cast uint %C3 to bool
+        ret bool %ELIM3
+}