1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=mips16 -relocation-model=pic -O3 < %s | FileCheck %s -check-prefix=16 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker@t = global i32 10, align 4 4*9880d681SAndroid Build Coastguard Worker@f = global i32 199, align 4 5*9880d681SAndroid Build Coastguard Worker@a = global i32 1, align 4 6*9880d681SAndroid Build Coastguard Worker@b = global i32 10, align 4 7*9880d681SAndroid Build Coastguard Worker@c = global i32 1, align 4 8*9880d681SAndroid Build Coastguard Worker@z1 = common global i32 0, align 4 9*9880d681SAndroid Build Coastguard Worker@z2 = common global i32 0, align 4 10*9880d681SAndroid Build Coastguard Worker@z3 = common global i32 0, align 4 11*9880d681SAndroid Build Coastguard Worker@z4 = common global i32 0, align 4 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine void @calc_seleq() nounwind { 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 16*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 17*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i32 %0, %1 18*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 19*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @t, align 4 20*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 21*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 22*9880d681SAndroid Build Coastguard Worker; 16: cmp ${{[0-9]+}}, ${{[0-9]+}} 23*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 24*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 25*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z2, align 4 26*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 27*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp eq i32 %4, %0 28*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %3, i32 %2 29*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 30*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z4, align 4 31*9880d681SAndroid Build Coastguard Worker ret void 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine void @calc_seleqk() nounwind { 36*9880d681SAndroid Build Coastguard Workerentry: 37*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 38*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i32 %0, 1 39*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @t, align 4 40*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 41*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %1, i32 %2 42*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 43*9880d681SAndroid Build Coastguard Worker; 16: cmpi ${{[0-9]+}}, 1 44*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 45*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 46*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp eq i32 %0, 10 47*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %2, i32 %1 48*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 49*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @b, align 4 50*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp eq i32 %3, 3 51*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %1 52*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 53*9880d681SAndroid Build Coastguard Worker; 16: cmpi ${{[0-9]+}}, 10 54*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 55*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 56*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp eq i32 %3, 10 57*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %1, i32 %2 58*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 59*9880d681SAndroid Build Coastguard Worker ret void 60*9880d681SAndroid Build Coastguard Worker} 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerdefine void @calc_seleqz() nounwind { 63*9880d681SAndroid Build Coastguard Workerentry: 64*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 65*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i32 %0, 0 66*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @t, align 4 67*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 68*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %1, i32 %2 69*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 70*9880d681SAndroid Build Coastguard Worker; 16: beqz ${{[0-9]+}}, $BB{{[0-9]+}}_{{[0-9]}} 71*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 72*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @b, align 4 73*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp eq i32 %3, 0 74*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %2, i32 %1 75*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 76*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 77*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp eq i32 %4, 0 78*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %1, i32 %2 79*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 80*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z4, align 4 81*9880d681SAndroid Build Coastguard Worker ret void 82*9880d681SAndroid Build Coastguard Worker} 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerdefine void @calc_selge() nounwind { 85*9880d681SAndroid Build Coastguard Workerentry: 86*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 87*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 88*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge i32 %0, %1 89*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 90*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @t, align 4 91*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 92*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 93*9880d681SAndroid Build Coastguard Worker; 16: slt ${{[0-9]+}}, ${{[0-9]+}} 94*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 95*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 96*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp sge i32 %1, %0 97*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %3, i32 %2 98*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 99*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 100*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp sge i32 %4, %0 101*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %3, i32 %2 102*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 103*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp sge i32 %0, %4 104*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %3, i32 %2 105*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 106*9880d681SAndroid Build Coastguard Worker ret void 107*9880d681SAndroid Build Coastguard Worker} 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workerdefine i32 @calc_selgt() nounwind { 110*9880d681SAndroid Build Coastguard Workerentry: 111*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 112*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 113*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt i32 %0, %1 114*9880d681SAndroid Build Coastguard Worker; 16: slt ${{[0-9]+}}, ${{[0-9]+}} 115*9880d681SAndroid Build Coastguard Worker; 16: btnez $BB{{[0-9]+}}_{{[0-9]}} 116*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 117*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 118*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @t, align 4 119*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 120*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 121*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp sgt i32 %1, %0 122*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %3, i32 %2 123*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 124*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 125*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp sgt i32 %4, %0 126*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %3 127*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 128*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp sgt i32 %0, %4 129*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %2, i32 %3 130*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 131*9880d681SAndroid Build Coastguard Worker ret i32 undef 132*9880d681SAndroid Build Coastguard Worker} 133*9880d681SAndroid Build Coastguard Worker 134*9880d681SAndroid Build Coastguard Workerdefine void @calc_selle() nounwind { 135*9880d681SAndroid Build Coastguard Workerentry: 136*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 137*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 138*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle i32 %0, %1 139*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @t, align 4 140*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @f, align 4 141*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 142*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 143*9880d681SAndroid Build Coastguard Worker; 16: slt ${{[0-9]+}}, ${{[0-9]+}} 144*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 145*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 146*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp sle i32 %1, %0 147*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %3, i32 %2 148*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 149*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 150*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp sle i32 %4, %0 151*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %3 152*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 153*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp sle i32 %0, %4 154*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %2, i32 %3 155*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 156*9880d681SAndroid Build Coastguard Worker ret void 157*9880d681SAndroid Build Coastguard Worker} 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Workerdefine void @calc_selltk() nounwind { 160*9880d681SAndroid Build Coastguard Workerentry: 161*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 162*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt i32 %0, 10 163*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @t, align 4 164*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 165*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %1, i32 %2 166*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 167*9880d681SAndroid Build Coastguard Worker; 16: slti ${{[0-9]+}}, {{[0-9]+}} 168*9880d681SAndroid Build Coastguard Worker; 16: btnez $BB{{[0-9]+}}_{{[0-9]}} 169*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 170*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @b, align 4 171*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp slt i32 %3, 2 172*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %2, i32 %1 173*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 174*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 175*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp sgt i32 %4, 2 176*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %1 177*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 178*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp sgt i32 %0, 2 179*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %2, i32 %1 180*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 181*9880d681SAndroid Build Coastguard Worker ret void 182*9880d681SAndroid Build Coastguard Worker} 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Workerdefine void @calc_selne() nounwind { 186*9880d681SAndroid Build Coastguard Workerentry: 187*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 188*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 189*9880d681SAndroid Build Coastguard Worker %cmp = icmp ne i32 %0, %1 190*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @t, align 4 191*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @f, align 4 192*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 193*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 194*9880d681SAndroid Build Coastguard Worker; 16: cmp ${{[0-9]+}}, ${{[0-9]+}} 195*9880d681SAndroid Build Coastguard Worker; 16: btnez $BB{{[0-9]+}}_{{[0-9]}} 196*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 197*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z2, align 4 198*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 199*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp ne i32 %4, %0 200*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %3, i32 %2 201*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 202*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z4, align 4 203*9880d681SAndroid Build Coastguard Worker ret void 204*9880d681SAndroid Build Coastguard Worker} 205*9880d681SAndroid Build Coastguard Worker 206*9880d681SAndroid Build Coastguard Workerdefine void @calc_selnek() nounwind { 207*9880d681SAndroid Build Coastguard Workerentry: 208*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 209*9880d681SAndroid Build Coastguard Worker %cmp = icmp ne i32 %0, 1 210*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @f, align 4 211*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @t, align 4 212*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %1, i32 %2 213*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 214*9880d681SAndroid Build Coastguard Worker; 16: cmpi ${{[0-9]+}}, 1 215*9880d681SAndroid Build Coastguard Worker; 16: btnez $BB{{[0-9]+}}_{{[0-9]}} 216*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 217*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp ne i32 %0, 10 218*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %2, i32 %1 219*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 220*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @b, align 4 221*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp ne i32 %3, 3 222*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %1 223*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 224*9880d681SAndroid Build Coastguard Worker; 16: cmpi ${{[0-9]+}}, 10 225*9880d681SAndroid Build Coastguard Worker; 16: btnez $BB{{[0-9]+}}_{{[0-9]}} 226*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 227*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp ne i32 %3, 10 228*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %1, i32 %2 229*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 230*9880d681SAndroid Build Coastguard Worker ret void 231*9880d681SAndroid Build Coastguard Worker} 232*9880d681SAndroid Build Coastguard Worker 233*9880d681SAndroid Build Coastguard Workerdefine void @calc_selnez() nounwind { 234*9880d681SAndroid Build Coastguard Workerentry: 235*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 236*9880d681SAndroid Build Coastguard Worker %cmp = icmp ne i32 %0, 0 237*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @f, align 4 238*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @t, align 4 239*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %1, i32 %2 240*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 241*9880d681SAndroid Build Coastguard Worker; 16: bnez ${{[0-9]+}}, $BB{{[0-9]+}}_{{[0-9]}} 242*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 243*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @b, align 4 244*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp ne i32 %3, 0 245*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %2, i32 %1 246*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 247*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 248*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp ne i32 %4, 0 249*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %1, i32 %2 250*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 251*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z4, align 4 252*9880d681SAndroid Build Coastguard Worker ret void 253*9880d681SAndroid Build Coastguard Worker} 254*9880d681SAndroid Build Coastguard Worker 255*9880d681SAndroid Build Coastguard Workerdefine void @calc_selnez2() nounwind { 256*9880d681SAndroid Build Coastguard Workerentry: 257*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 258*9880d681SAndroid Build Coastguard Worker %tobool = icmp ne i32 %0, 0 259*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @f, align 4 260*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @t, align 4 261*9880d681SAndroid Build Coastguard Worker %cond = select i1 %tobool, i32 %1, i32 %2 262*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 263*9880d681SAndroid Build Coastguard Worker; 16: bnez ${{[0-9]+}}, $BB{{[0-9]+}}_{{[0-9]}} 264*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 265*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @b, align 4 266*9880d681SAndroid Build Coastguard Worker %tobool1 = icmp ne i32 %3, 0 267*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %tobool1, i32 %2, i32 %1 268*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 269*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 270*9880d681SAndroid Build Coastguard Worker %tobool6 = icmp ne i32 %4, 0 271*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %tobool6, i32 %1, i32 %2 272*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 273*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z4, align 4 274*9880d681SAndroid Build Coastguard Worker ret void 275*9880d681SAndroid Build Coastguard Worker} 276*9880d681SAndroid Build Coastguard Worker 277*9880d681SAndroid Build Coastguard Workerdefine void @calc_seluge() nounwind { 278*9880d681SAndroid Build Coastguard Workerentry: 279*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 280*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 281*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge i32 %0, %1 282*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 283*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @t, align 4 284*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 285*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 286*9880d681SAndroid Build Coastguard Worker; 16: sltu ${{[0-9]+}}, ${{[0-9]+}} 287*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 288*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 289*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp uge i32 %1, %0 290*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %3, i32 %2 291*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 292*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 293*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp uge i32 %4, %0 294*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %3, i32 %2 295*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 296*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp uge i32 %0, %4 297*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %3, i32 %2 298*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 299*9880d681SAndroid Build Coastguard Worker ret void 300*9880d681SAndroid Build Coastguard Worker} 301*9880d681SAndroid Build Coastguard Worker 302*9880d681SAndroid Build Coastguard Workerdefine void @calc_selugt() nounwind { 303*9880d681SAndroid Build Coastguard Workerentry: 304*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 305*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 306*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i32 %0, %1 307*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @f, align 4 308*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @t, align 4 309*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 310*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 311*9880d681SAndroid Build Coastguard Worker; 16: sltu ${{[0-9]+}}, ${{[0-9]+}} 312*9880d681SAndroid Build Coastguard Worker; 16: btnez $BB{{[0-9]+}}_{{[0-9]}} 313*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 314*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp ugt i32 %1, %0 315*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %3, i32 %2 316*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 317*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 318*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp ugt i32 %4, %0 319*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %3 320*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 321*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp ugt i32 %0, %4 322*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %2, i32 %3 323*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 324*9880d681SAndroid Build Coastguard Worker ret void 325*9880d681SAndroid Build Coastguard Worker} 326*9880d681SAndroid Build Coastguard Worker 327*9880d681SAndroid Build Coastguard Workerdefine void @calc_selule() nounwind { 328*9880d681SAndroid Build Coastguard Workerentry: 329*9880d681SAndroid Build Coastguard Worker %0 = load i32, i32* @a, align 4 330*9880d681SAndroid Build Coastguard Worker %1 = load i32, i32* @b, align 4 331*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule i32 %0, %1 332*9880d681SAndroid Build Coastguard Worker %2 = load i32, i32* @t, align 4 333*9880d681SAndroid Build Coastguard Worker %3 = load i32, i32* @f, align 4 334*9880d681SAndroid Build Coastguard Worker %cond = select i1 %cmp, i32 %2, i32 %3 335*9880d681SAndroid Build Coastguard Worker store i32 %cond, i32* @z1, align 4 336*9880d681SAndroid Build Coastguard Worker; 16: sltu ${{[0-9]+}}, ${{[0-9]+}} 337*9880d681SAndroid Build Coastguard Worker; 16: bteqz $BB{{[0-9]+}}_{{[0-9]}} 338*9880d681SAndroid Build Coastguard Worker; 16: move ${{[0-9]+}}, ${{[0-9]+}} 339*9880d681SAndroid Build Coastguard Worker %cmp1 = icmp ule i32 %1, %0 340*9880d681SAndroid Build Coastguard Worker %cond5 = select i1 %cmp1, i32 %3, i32 %2 341*9880d681SAndroid Build Coastguard Worker store i32 %cond5, i32* @z2, align 4 342*9880d681SAndroid Build Coastguard Worker %4 = load i32, i32* @c, align 4 343*9880d681SAndroid Build Coastguard Worker %cmp6 = icmp ule i32 %4, %0 344*9880d681SAndroid Build Coastguard Worker %cond10 = select i1 %cmp6, i32 %2, i32 %3 345*9880d681SAndroid Build Coastguard Worker store i32 %cond10, i32* @z3, align 4 346*9880d681SAndroid Build Coastguard Worker %cmp11 = icmp ule i32 %0, %4 347*9880d681SAndroid Build Coastguard Worker %cond15 = select i1 %cmp11, i32 %2, i32 %3 348*9880d681SAndroid Build Coastguard Worker store i32 %cond15, i32* @z4, align 4 349*9880d681SAndroid Build Coastguard Worker ret void 350*9880d681SAndroid Build Coastguard Worker} 351