| ; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mattr=+thumb2 | FileCheck %s | 
 | ; If-conversion defeats the purpose of this test, which is to check conditional | 
 | ; branch generation, so use memory barrier instruction to make sure it doesn't | 
 | ; happen and we get actual branches. | 
 |  | 
 | define i32 @f1(i32 %a, i32 %b, i32* %v) { | 
 | entry: | 
 | ; CHECK: f1: | 
 | ; CHECK: bne LBB | 
 |         %tmp = icmp eq i32 %a, %b               ; <i1> [#uses=1] | 
 |         br i1 %tmp, label %cond_true, label %return | 
 |  | 
 | cond_true:              ; preds = %entry | 
 |         fence seq_cst | 
 |         store i32 0, i32* %v | 
 |         ret i32 0 | 
 |  | 
 | return:         ; preds = %entry | 
 |         fence seq_cst | 
 |         ret i32 1 | 
 | } | 
 |  | 
 | define i32 @f2(i32 %a, i32 %b, i32* %v) { | 
 | entry: | 
 | ; CHECK: f2: | 
 | ; CHECK: bge LBB | 
 |         %tmp = icmp slt i32 %a, %b              ; <i1> [#uses=1] | 
 |         br i1 %tmp, label %cond_true, label %return | 
 |  | 
 | cond_true:              ; preds = %entry | 
 |         fence seq_cst | 
 |         store i32 0, i32* %v | 
 |         ret i32 0 | 
 |  | 
 | return:         ; preds = %entry | 
 |         fence seq_cst | 
 |         ret i32 1 | 
 | } | 
 |  | 
 | define i32 @f3(i32 %a, i32 %b, i32* %v) { | 
 | entry: | 
 | ; CHECK: f3: | 
 | ; CHECK: bhs LBB | 
 |         %tmp = icmp ult i32 %a, %b              ; <i1> [#uses=1] | 
 |         br i1 %tmp, label %cond_true, label %return | 
 |  | 
 | cond_true:              ; preds = %entry | 
 |         fence seq_cst | 
 |         store i32 0, i32* %v | 
 |         ret i32 0 | 
 |  | 
 | return:         ; preds = %entry | 
 |         fence seq_cst | 
 |         ret i32 1 | 
 | } | 
 |  | 
 | define i32 @f4(i32 %a, i32 %b, i32* %v) { | 
 | entry: | 
 | ; CHECK: f4: | 
 | ; CHECK: blo LBB | 
 |         %tmp = icmp ult i32 %a, %b              ; <i1> [#uses=1] | 
 |         br i1 %tmp, label %return, label %cond_true | 
 |  | 
 | cond_true:              ; preds = %entry | 
 |         fence seq_cst | 
 |         store i32 0, i32* %v | 
 |         ret i32 0 | 
 |  | 
 | return:         ; preds = %entry | 
 |         fence seq_cst | 
 |         ret i32 1 | 
 | } |