1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) { 4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t1: 5*9880d681SAndroid Build Coastguard Worker; CHECK: bxlt lr 6*9880d681SAndroid Build Coastguard Worker %tmp2 = icmp sgt i32 %c, 10 7*9880d681SAndroid Build Coastguard Worker %tmp5 = icmp slt i32 %d, 4 8*9880d681SAndroid Build Coastguard Worker %tmp8 = or i1 %tmp5, %tmp2 9*9880d681SAndroid Build Coastguard Worker %tmp13 = add i32 %b, %a 10*9880d681SAndroid Build Coastguard Worker br i1 %tmp8, label %cond_true, label %UnifiedReturnBlock 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workercond_true: 13*9880d681SAndroid Build Coastguard Worker %tmp15 = add i32 %tmp13, %c 14*9880d681SAndroid Build Coastguard Worker %tmp1821 = sub i32 %tmp15, %d 15*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1821 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard WorkerUnifiedReturnBlock: 18*9880d681SAndroid Build Coastguard Worker ret i32 %tmp13 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine i32 @t2(i32 %a, i32 %b, i32 %c, i32 %d) { 22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: t2: 23*9880d681SAndroid Build Coastguard Worker; CHECK: bxgt lr 24*9880d681SAndroid Build Coastguard Worker; CHECK: cmp 25*9880d681SAndroid Build Coastguard Worker; CHECK: addge 26*9880d681SAndroid Build Coastguard Worker; CHECK: subge 27*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: bxge lr 28*9880d681SAndroid Build Coastguard Worker; CHECK: bx lr 29*9880d681SAndroid Build Coastguard Worker %tmp2 = icmp sgt i32 %c, 10 30*9880d681SAndroid Build Coastguard Worker %tmp5 = icmp slt i32 %d, 4 31*9880d681SAndroid Build Coastguard Worker %tmp8 = and i1 %tmp5, %tmp2 32*9880d681SAndroid Build Coastguard Worker %tmp13 = add i32 %b, %a 33*9880d681SAndroid Build Coastguard Worker br i1 %tmp8, label %cond_true, label %UnifiedReturnBlock 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workercond_true: 36*9880d681SAndroid Build Coastguard Worker %tmp15 = add i32 %tmp13, %c 37*9880d681SAndroid Build Coastguard Worker %tmp1821 = sub i32 %tmp15, %d 38*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1821 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard WorkerUnifiedReturnBlock: 41*9880d681SAndroid Build Coastguard Worker ret i32 %tmp13 42*9880d681SAndroid Build Coastguard Worker} 43