1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=thumb-apple-darwin | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=thumb-pc-linux-gnueabi | FileCheck -check-prefix=CHECK-EABI %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerdefine i32 @f1(i32 %a.s) { 5*9880d681SAndroid Build Coastguard Workerentry: 6*9880d681SAndroid Build Coastguard Worker %tmp = icmp eq i32 %a.s, 4 7*9880d681SAndroid Build Coastguard Worker %tmp1.s = select i1 %tmp, i32 2, i32 3 8*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1.s 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f1: 11*9880d681SAndroid Build Coastguard Worker; CHECK: beq 12*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f1: 13*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: beq 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine i32 @f2(i32 %a.s) { 16*9880d681SAndroid Build Coastguard Workerentry: 17*9880d681SAndroid Build Coastguard Worker %tmp = icmp sgt i32 %a.s, 4 18*9880d681SAndroid Build Coastguard Worker %tmp1.s = select i1 %tmp, i32 2, i32 3 19*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1.s 20*9880d681SAndroid Build Coastguard Worker} 21*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2: 22*9880d681SAndroid Build Coastguard Worker; CHECK: bgt 23*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f2: 24*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: bgt 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerdefine i32 @f3(i32 %a.s, i32 %b.s) { 27*9880d681SAndroid Build Coastguard Workerentry: 28*9880d681SAndroid Build Coastguard Worker %tmp = icmp slt i32 %a.s, %b.s 29*9880d681SAndroid Build Coastguard Worker %tmp1.s = select i1 %tmp, i32 2, i32 3 30*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1.s 31*9880d681SAndroid Build Coastguard Worker} 32*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f3: 33*9880d681SAndroid Build Coastguard Worker; CHECK: blt 34*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f3: 35*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: blt 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerdefine i32 @f4(i32 %a.s, i32 %b.s) { 38*9880d681SAndroid Build Coastguard Workerentry: 39*9880d681SAndroid Build Coastguard Worker %tmp = icmp sle i32 %a.s, %b.s 40*9880d681SAndroid Build Coastguard Worker %tmp1.s = select i1 %tmp, i32 2, i32 3 41*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1.s 42*9880d681SAndroid Build Coastguard Worker} 43*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f4: 44*9880d681SAndroid Build Coastguard Worker; CHECK: ble 45*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f4: 46*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: ble 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerdefine i32 @f5(i32 %a.u, i32 %b.u) { 49*9880d681SAndroid Build Coastguard Workerentry: 50*9880d681SAndroid Build Coastguard Worker %tmp = icmp ule i32 %a.u, %b.u 51*9880d681SAndroid Build Coastguard Worker %tmp1.s = select i1 %tmp, i32 2, i32 3 52*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1.s 53*9880d681SAndroid Build Coastguard Worker} 54*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f5: 55*9880d681SAndroid Build Coastguard Worker; CHECK: bls 56*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f5: 57*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: bls 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdefine i32 @f6(i32 %a.u, i32 %b.u) { 60*9880d681SAndroid Build Coastguard Workerentry: 61*9880d681SAndroid Build Coastguard Worker %tmp = icmp ugt i32 %a.u, %b.u 62*9880d681SAndroid Build Coastguard Worker %tmp1.s = select i1 %tmp, i32 2, i32 3 63*9880d681SAndroid Build Coastguard Worker ret i32 %tmp1.s 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f6: 66*9880d681SAndroid Build Coastguard Worker; CHECK: bhi 67*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f6: 68*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: bhi 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerdefine double @f7(double %a, double %b) { 71*9880d681SAndroid Build Coastguard Worker %tmp = fcmp olt double %a, 1.234e+00 72*9880d681SAndroid Build Coastguard Worker %tmp1 = select i1 %tmp, double -1.000e+00, double %b 73*9880d681SAndroid Build Coastguard Worker ret double %tmp1 74*9880d681SAndroid Build Coastguard Worker} 75*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f7: 76*9880d681SAndroid Build Coastguard Worker; CHECK: blt 77*9880d681SAndroid Build Coastguard Worker; CHECK: blt 78*9880d681SAndroid Build Coastguard Worker; CHECK: __ltdf2 79*9880d681SAndroid Build Coastguard Worker; CHECK-EABI-LABEL: f7: 80*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: __aeabi_dcmplt 81*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: bne 82*9880d681SAndroid Build Coastguard Worker; CHECK-EABI: bne 83