Try again to revert the bad patch. The tree was reverted for some unknown reason
[oota-llvm.git] / test / CodeGen / Thumb2 / thumb2-ifcvt1.ll
index 617d0b1882965458f09470c9f974a2b1e6e3d45d..af8fcc64124706ad448cc5b59180f03faa9546e4 100644 (file)
@@ -1,10 +1,11 @@
 ; RUN: llc < %s -mtriple=thumbv7-apple-darwin | FileCheck %s
-; XFAIL: *
 
-define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) {
+define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) nounwind {
 ; CHECK: t1:
-; CHECK: it ne
+; CHECK: ittt ne
 ; CHECK: cmpne
+; CHECK: addne
+; CHECK: bxne lr
        switch i32 %c, label %cond_next [
                 i32 1, label %cond_true
                 i32 7, label %cond_true
@@ -20,13 +21,13 @@ cond_next:
        ret i32 %tmp15
 }
 
-; FIXME: Check for # of unconditional branch after adding branch folding post ifcvt.
-define i32 @t2(i32 %a, i32 %b) {
+define i32 @t2(i32 %a, i32 %b) nounwind {
 entry:
+; Do not if-convert when branches go to the different loops.
 ; CHECK: t2:
-; CHECK: ite le
-; CHECK: suble
-; CHECK: subgt
+; CHECK-NOT: ite gt
+; CHECK-NOT: subgt
+; CHECK-NOT: suble
        %tmp1434 = icmp eq i32 %a, %b           ; <i1> [#uses=1]
        br i1 %tmp1434, label %bb17, label %bb.outer
 
@@ -61,23 +62,24 @@ bb17:               ; preds = %cond_false, %cond_true, %entry
 
 @x = external global i32*              ; <i32**> [#uses=1]
 
-define void @foo(i32 %a) {
+define void @foo(i32 %a) nounwind {
 entry:
        %tmp = load i32** @x            ; <i32*> [#uses=1]
        store i32 %a, i32* %tmp
        ret void
 }
 
-define void @t3(i32 %a, i32 %b) {
+define void @t3(i32 %a, i32 %b) nounwind {
 entry:
 ; CHECK: t3:
-; CHECK: it lt
-; CHECK: poplt {r7, pc}
+; CHECK: itt ge
+; CHECK: movge r0, r1
+; CHECK: blge  _foo
        %tmp1 = icmp sgt i32 %a, 10             ; <i1> [#uses=1]
        br i1 %tmp1, label %cond_true, label %UnifiedReturnBlock
 
 cond_true:             ; preds = %entry
-       tail call void @foo( i32 %b )
+       call void @foo( i32 %b )
        ret void
 
 UnifiedReturnBlock:            ; preds = %entry