1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=nvptx -mcpu=sm_20 -O2 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; ************************************* 4*9880d681SAndroid Build Coastguard Worker; * Cases with no min/max 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_eq_i32(i32 %a, i32 %b) { 7*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_slt_i32 8*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: min 9*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: max 10*9880d681SAndroid Build Coastguard Worker %cmp = icmp eq i32 %a, %b 11*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 12*9880d681SAndroid Build Coastguard Worker ret i32 %sel 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_ne_i64(i64 %a, i64 %b) { 16*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ne_i64 17*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: min 18*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: max 19*9880d681SAndroid Build Coastguard Worker %cmp = icmp ne i64 %a, %b 20*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 21*9880d681SAndroid Build Coastguard Worker ret i64 %sel 22*9880d681SAndroid Build Coastguard Worker} 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; PTX does have e.g. max.s16, but at least as of Kepler (sm_3x) that 25*9880d681SAndroid Build Coastguard Worker; gets compiled to SASS that converts the 16 bit parameters to 32 bit 26*9880d681SAndroid Build Coastguard Worker; before using a 32 bit instruction. That is probably not a win and 27*9880d681SAndroid Build Coastguard Worker; NVCC 7.5 does not emit 16 bit min/max either, presumably for that 28*9880d681SAndroid Build Coastguard Worker; reason. 29*9880d681SAndroid Build Coastguard Workerdefine i16 @ab_ugt_i16(i16 %a, i16 %b) { 30*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ugt_i16 31*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: min 32*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: max 33*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i16 %a, %b 34*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i16 %a, i16 %b 35*9880d681SAndroid Build Coastguard Worker ret i16 %sel 36*9880d681SAndroid Build Coastguard Worker} 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker; ************************************* 40*9880d681SAndroid Build Coastguard Worker; * All variations with i32 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker; *** ab, unsigned, i32 43*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_ugt_i32(i32 %a, i32 %b) { 44*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ugt_i32 45*9880d681SAndroid Build Coastguard Worker; CHECK: max.u32 46*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i32 %a, %b 47*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 48*9880d681SAndroid Build Coastguard Worker ret i32 %sel 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_uge_i32(i32 %a, i32 %b) { 52*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_uge_i32 53*9880d681SAndroid Build Coastguard Worker; CHECK: max.u32 54*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge i32 %a, %b 55*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 56*9880d681SAndroid Build Coastguard Worker ret i32 %sel 57*9880d681SAndroid Build Coastguard Worker} 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_ult_i32(i32 %a, i32 %b) { 60*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ult_i32 61*9880d681SAndroid Build Coastguard Worker; CHECK: min.u32 62*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult i32 %a, %b 63*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 64*9880d681SAndroid Build Coastguard Worker ret i32 %sel 65*9880d681SAndroid Build Coastguard Worker} 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_ule_i32(i32 %a, i32 %b) { 68*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ule_i32 69*9880d681SAndroid Build Coastguard Worker; CHECK: min.u32 70*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule i32 %a, %b 71*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 72*9880d681SAndroid Build Coastguard Worker ret i32 %sel 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Worker; *** ab, signed, i32 76*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_sgt_i32(i32 %a, i32 %b) { 77*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ugt_i32 78*9880d681SAndroid Build Coastguard Worker; CHECK: max.s32 79*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt i32 %a, %b 80*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 81*9880d681SAndroid Build Coastguard Worker ret i32 %sel 82*9880d681SAndroid Build Coastguard Worker} 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_sge_i32(i32 %a, i32 %b) { 85*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_sge_i32 86*9880d681SAndroid Build Coastguard Worker; CHECK: max.s32 87*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge i32 %a, %b 88*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 89*9880d681SAndroid Build Coastguard Worker ret i32 %sel 90*9880d681SAndroid Build Coastguard Worker} 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_slt_i32(i32 %a, i32 %b) { 93*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_slt_i32 94*9880d681SAndroid Build Coastguard Worker; CHECK: min.s32 95*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt i32 %a, %b 96*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 97*9880d681SAndroid Build Coastguard Worker ret i32 %sel 98*9880d681SAndroid Build Coastguard Worker} 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Workerdefine i32 @ab_sle_i32(i32 %a, i32 %b) { 101*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_sle_i32 102*9880d681SAndroid Build Coastguard Worker; CHECK: min.s32 103*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle i32 %a, %b 104*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %a, i32 %b 105*9880d681SAndroid Build Coastguard Worker ret i32 %sel 106*9880d681SAndroid Build Coastguard Worker} 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Worker; *** ba, unsigned, i32 109*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_ugt_i32(i32 %a, i32 %b) { 110*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_ugt_i32 111*9880d681SAndroid Build Coastguard Worker; CHECK: min.u32 112*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i32 %a, %b 113*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 114*9880d681SAndroid Build Coastguard Worker ret i32 %sel 115*9880d681SAndroid Build Coastguard Worker} 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_uge_i32(i32 %a, i32 %b) { 118*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_uge_i32 119*9880d681SAndroid Build Coastguard Worker; CHECK: min.u32 120*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge i32 %a, %b 121*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 122*9880d681SAndroid Build Coastguard Worker ret i32 %sel 123*9880d681SAndroid Build Coastguard Worker} 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_ult_i32(i32 %a, i32 %b) { 126*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_ult_i32 127*9880d681SAndroid Build Coastguard Worker; CHECK: max.u32 128*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult i32 %a, %b 129*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 130*9880d681SAndroid Build Coastguard Worker ret i32 %sel 131*9880d681SAndroid Build Coastguard Worker} 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_ule_i32(i32 %a, i32 %b) { 134*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_ule_i32 135*9880d681SAndroid Build Coastguard Worker; CHECK: max.u32 136*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule i32 %a, %b 137*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 138*9880d681SAndroid Build Coastguard Worker ret i32 %sel 139*9880d681SAndroid Build Coastguard Worker} 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker; *** ba, signed, i32 142*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_sgt_i32(i32 %a, i32 %b) { 143*9880d681SAndroid Build Coastguard Worker; LBAEL: @ba_ugt_i32 144*9880d681SAndroid Build Coastguard Worker; CHECK: min.s32 145*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt i32 %a, %b 146*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 147*9880d681SAndroid Build Coastguard Worker ret i32 %sel 148*9880d681SAndroid Build Coastguard Worker} 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_sge_i32(i32 %a, i32 %b) { 151*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_sge_i32 152*9880d681SAndroid Build Coastguard Worker; CHECK: min.s32 153*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge i32 %a, %b 154*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 155*9880d681SAndroid Build Coastguard Worker ret i32 %sel 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_slt_i32(i32 %a, i32 %b) { 159*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_slt_i32 160*9880d681SAndroid Build Coastguard Worker; CHECK: max.s32 161*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt i32 %a, %b 162*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 163*9880d681SAndroid Build Coastguard Worker ret i32 %sel 164*9880d681SAndroid Build Coastguard Worker} 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdefine i32 @ba_sle_i32(i32 %a, i32 %b) { 167*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_sle_i32 168*9880d681SAndroid Build Coastguard Worker; CHECK: max.s32 169*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle i32 %a, %b 170*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i32 %b, i32 %a 171*9880d681SAndroid Build Coastguard Worker ret i32 %sel 172*9880d681SAndroid Build Coastguard Worker} 173*9880d681SAndroid Build Coastguard Worker 174*9880d681SAndroid Build Coastguard Worker; ************************************* 175*9880d681SAndroid Build Coastguard Worker; * All variations with i64 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker; *** ab, unsigned, i64 178*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_ugt_i64(i64 %a, i64 %b) { 179*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ugt_i64 180*9880d681SAndroid Build Coastguard Worker; CHECK: max.u64 181*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i64 %a, %b 182*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 183*9880d681SAndroid Build Coastguard Worker ret i64 %sel 184*9880d681SAndroid Build Coastguard Worker} 185*9880d681SAndroid Build Coastguard Worker 186*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_uge_i64(i64 %a, i64 %b) { 187*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_uge_i64 188*9880d681SAndroid Build Coastguard Worker; CHECK: max.u64 189*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge i64 %a, %b 190*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 191*9880d681SAndroid Build Coastguard Worker ret i64 %sel 192*9880d681SAndroid Build Coastguard Worker} 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_ult_i64(i64 %a, i64 %b) { 195*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ult_i64 196*9880d681SAndroid Build Coastguard Worker; CHECK: min.u64 197*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult i64 %a, %b 198*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 199*9880d681SAndroid Build Coastguard Worker ret i64 %sel 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_ule_i64(i64 %a, i64 %b) { 203*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ule_i64 204*9880d681SAndroid Build Coastguard Worker; CHECK: min.u64 205*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule i64 %a, %b 206*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 207*9880d681SAndroid Build Coastguard Worker ret i64 %sel 208*9880d681SAndroid Build Coastguard Worker} 209*9880d681SAndroid Build Coastguard Worker 210*9880d681SAndroid Build Coastguard Worker; *** ab, signed, i64 211*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_sgt_i64(i64 %a, i64 %b) { 212*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_ugt_i64 213*9880d681SAndroid Build Coastguard Worker; CHECK: max.s64 214*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt i64 %a, %b 215*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 216*9880d681SAndroid Build Coastguard Worker ret i64 %sel 217*9880d681SAndroid Build Coastguard Worker} 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_sge_i64(i64 %a, i64 %b) { 220*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_sge_i64 221*9880d681SAndroid Build Coastguard Worker; CHECK: max.s64 222*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge i64 %a, %b 223*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 224*9880d681SAndroid Build Coastguard Worker ret i64 %sel 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_slt_i64(i64 %a, i64 %b) { 228*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_slt_i64 229*9880d681SAndroid Build Coastguard Worker; CHECK: min.s64 230*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt i64 %a, %b 231*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 232*9880d681SAndroid Build Coastguard Worker ret i64 %sel 233*9880d681SAndroid Build Coastguard Worker} 234*9880d681SAndroid Build Coastguard Worker 235*9880d681SAndroid Build Coastguard Workerdefine i64 @ab_sle_i64(i64 %a, i64 %b) { 236*9880d681SAndroid Build Coastguard Worker; LABEL: @ab_sle_i64 237*9880d681SAndroid Build Coastguard Worker; CHECK: min.s64 238*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle i64 %a, %b 239*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %a, i64 %b 240*9880d681SAndroid Build Coastguard Worker ret i64 %sel 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Worker; *** ba, unsigned, i64 244*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_ugt_i64(i64 %a, i64 %b) { 245*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_ugt_i64 246*9880d681SAndroid Build Coastguard Worker; CHECK: min.u64 247*9880d681SAndroid Build Coastguard Worker %cmp = icmp ugt i64 %a, %b 248*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 249*9880d681SAndroid Build Coastguard Worker ret i64 %sel 250*9880d681SAndroid Build Coastguard Worker} 251*9880d681SAndroid Build Coastguard Worker 252*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_uge_i64(i64 %a, i64 %b) { 253*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_uge_i64 254*9880d681SAndroid Build Coastguard Worker; CHECK: min.u64 255*9880d681SAndroid Build Coastguard Worker %cmp = icmp uge i64 %a, %b 256*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 257*9880d681SAndroid Build Coastguard Worker ret i64 %sel 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_ult_i64(i64 %a, i64 %b) { 261*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_ult_i64 262*9880d681SAndroid Build Coastguard Worker; CHECK: max.u64 263*9880d681SAndroid Build Coastguard Worker %cmp = icmp ult i64 %a, %b 264*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 265*9880d681SAndroid Build Coastguard Worker ret i64 %sel 266*9880d681SAndroid Build Coastguard Worker} 267*9880d681SAndroid Build Coastguard Worker 268*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_ule_i64(i64 %a, i64 %b) { 269*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_ule_i64 270*9880d681SAndroid Build Coastguard Worker; CHECK: max.u64 271*9880d681SAndroid Build Coastguard Worker %cmp = icmp ule i64 %a, %b 272*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 273*9880d681SAndroid Build Coastguard Worker ret i64 %sel 274*9880d681SAndroid Build Coastguard Worker} 275*9880d681SAndroid Build Coastguard Worker 276*9880d681SAndroid Build Coastguard Worker; *** ba, signed, i64 277*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_sgt_i64(i64 %a, i64 %b) { 278*9880d681SAndroid Build Coastguard Worker; LBAEL: @ba_ugt_i64 279*9880d681SAndroid Build Coastguard Worker; CHECK: min.s64 280*9880d681SAndroid Build Coastguard Worker %cmp = icmp sgt i64 %a, %b 281*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 282*9880d681SAndroid Build Coastguard Worker ret i64 %sel 283*9880d681SAndroid Build Coastguard Worker} 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_sge_i64(i64 %a, i64 %b) { 286*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_sge_i64 287*9880d681SAndroid Build Coastguard Worker; CHECK: min.s64 288*9880d681SAndroid Build Coastguard Worker %cmp = icmp sge i64 %a, %b 289*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 290*9880d681SAndroid Build Coastguard Worker ret i64 %sel 291*9880d681SAndroid Build Coastguard Worker} 292*9880d681SAndroid Build Coastguard Worker 293*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_slt_i64(i64 %a, i64 %b) { 294*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_slt_i64 295*9880d681SAndroid Build Coastguard Worker; CHECK: max.s64 296*9880d681SAndroid Build Coastguard Worker %cmp = icmp slt i64 %a, %b 297*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 298*9880d681SAndroid Build Coastguard Worker ret i64 %sel 299*9880d681SAndroid Build Coastguard Worker} 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Workerdefine i64 @ba_sle_i64(i64 %a, i64 %b) { 302*9880d681SAndroid Build Coastguard Worker; LABEL: @ba_sle_i64 303*9880d681SAndroid Build Coastguard Worker; CHECK: max.s64 304*9880d681SAndroid Build Coastguard Worker %cmp = icmp sle i64 %a, %b 305*9880d681SAndroid Build Coastguard Worker %sel = select i1 %cmp, i64 %b, i64 %a 306*9880d681SAndroid Build Coastguard Worker ret i64 %sel 307*9880d681SAndroid Build Coastguard Worker} 308