1; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mattr=+thumb2 -arm-atomic-cfg-tidy=0 | FileCheck %s 2; If-conversion defeats the purpose of this test, which is to check 3; conditional branch generation, so a call to make sure it doesn't 4; happen and we get actual branches. 5 6declare void @foo() 7 8define i32 @f1(i32 %a, i32 %b, i32* %v) { 9entry: 10; CHECK-LABEL: f1: 11; CHECK: bne LBB 12 %tmp = icmp eq i32 %a, %b ; <i1> [#uses=1] 13 br i1 %tmp, label %cond_true, label %return 14 15cond_true: ; preds = %entry 16 call void @foo() 17 store i32 0, i32* %v 18 ret i32 0 19 20return: ; preds = %entry 21 call void @foo() 22 ret i32 1 23} 24 25define i32 @f2(i32 %a, i32 %b, i32* %v) { 26entry: 27; CHECK-LABEL: f2: 28; CHECK: bge LBB 29 %tmp = icmp slt i32 %a, %b ; <i1> [#uses=1] 30 br i1 %tmp, label %cond_true, label %return 31 32cond_true: ; preds = %entry 33 call void @foo() 34 store i32 0, i32* %v 35 ret i32 0 36 37return: ; preds = %entry 38 call void @foo() 39 ret i32 1 40} 41 42define i32 @f3(i32 %a, i32 %b, i32* %v) { 43entry: 44; CHECK-LABEL: f3: 45; CHECK: bhs LBB 46 %tmp = icmp ult i32 %a, %b ; <i1> [#uses=1] 47 br i1 %tmp, label %cond_true, label %return 48 49cond_true: ; preds = %entry 50 call void @foo() 51 store i32 0, i32* %v 52 ret i32 0 53 54return: ; preds = %entry 55 call void @foo() 56 ret i32 1 57} 58 59define i32 @f4(i32 %a, i32 %b, i32* %v) { 60entry: 61; CHECK-LABEL: f4: 62; CHECK: blo LBB 63 %tmp = icmp uge i32 %a, %b ; <i1> [#uses=1] 64 br i1 %tmp, label %cond_true, label %return 65 66cond_true: ; preds = %entry 67 call void @foo() 68 store i32 0, i32* %v 69 ret i32 0 70 71return: ; preds = %entry 72 call void @foo() 73 ret i32 1 74} 75