It's (currently) not safe to keep certain physical registers live across basic blocks...
[oota-llvm.git] / test / CodeGen / X86 / cmp-test.ll
index 43430fdeb80e714c7e6fddf604d93b1eb94aa9cf..91c8a87ea5419114f9f0e736095009aafc80f0d3 100644 (file)
@@ -1,28 +1,27 @@
-; RUN: llvm-as < %s | llc -march=x86 &&
-; RUN: llvm-as < %s | llc -march=x86 | grep cmp  | wc -l | grep 1 &&
-; RUN: llvm-as < %s | llc -march=x86 | grep test | wc -l | grep 1
+; RUN: llvm-as < %s | llc -march=x86 | grep cmp | count 1
+; RUN: llvm-as < %s | llc -march=x86 | grep test | count 1
 
-int %f1(int %X, int* %y) {
-       %tmp = load int* %y
-       %tmp = seteq int %tmp, 0
-       br bool %tmp, label %ReturnBlock, label %cond_true
+define i32 @f1(i32 %X, i32* %y) {
+       %tmp = load i32* %y             ; <i32> [#uses=1]
+       %tmp.upgrd.1 = icmp eq i32 %tmp, 0              ; <i1> [#uses=1]
+       br i1 %tmp.upgrd.1, label %ReturnBlock, label %cond_true
 
-cond_true:
-       ret int 1
+cond_true:             ; preds = %0
+       ret i32 1
 
-ReturnBlock:
-       ret int 0
+ReturnBlock:           ; preds = %0
+       ret i32 0
 }
 
-int %f2(int %X, int* %y) {
-       %tmp = load int* %y
-        %tmp1 = shl int %tmp, ubyte 3
-       %tmp1 = seteq int %tmp1, 0
-       br bool %tmp1, label %ReturnBlock, label %cond_true
+define i32 @f2(i32 %X, i32* %y) {
+       %tmp = load i32* %y             ; <i32> [#uses=1]
+       %tmp1 = shl i32 %tmp, 3         ; <i32> [#uses=1]
+       %tmp1.upgrd.2 = icmp eq i32 %tmp1, 0            ; <i1> [#uses=1]
+       br i1 %tmp1.upgrd.2, label %ReturnBlock, label %cond_true
 
-cond_true:
-       ret int 1
+cond_true:             ; preds = %0
+       ret i32 1
 
-ReturnBlock:
-       ret int 0
+ReturnBlock:           ; preds = %0
+       ret i32 0
 }