1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s --check-prefix=CHECK --check-prefix=SDAG 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -fast-isel -fast-isel-abort=1 | FileCheck %s --check-prefix=CHECK --check-prefix=FAST 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; Test all the cmp predicates that can feed an integer conditional move. 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_false_cmov(double %a, double %b, i64 %c, i64 %d) { 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_false_cmov 8*9880d681SAndroid Build Coastguard Worker; CHECK: movq %rsi, %rax 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: retq 10*9880d681SAndroid Build Coastguard Worker %1 = fcmp false double %a, %b 11*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 12*9880d681SAndroid Build Coastguard Worker ret i64 %2 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_oeq_cmov(double %a, double %b, i64 %c, i64 %d) { 16*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_oeq_cmov 17*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 18*9880d681SAndroid Build Coastguard Worker; SDAG-NEXT: cmovneq %rsi, %rdi 19*9880d681SAndroid Build Coastguard Worker; SDAG-NEXT: cmovpq %rsi, %rdi 20*9880d681SAndroid Build Coastguard Worker; SDAG-NEXT: movq %rdi, %rax 21*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: setnp %al 22*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: sete %cl 23*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: testb %al, %cl 24*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: cmoveq %rsi, %rdi 25*9880d681SAndroid Build Coastguard Worker %1 = fcmp oeq double %a, %b 26*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 27*9880d681SAndroid Build Coastguard Worker ret i64 %2 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ogt_cmov(double %a, double %b, i64 %c, i64 %d) { 31*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ogt_cmov 32*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 33*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovbeq %rsi, %rdi 34*9880d681SAndroid Build Coastguard Worker %1 = fcmp ogt double %a, %b 35*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 36*9880d681SAndroid Build Coastguard Worker ret i64 %2 37*9880d681SAndroid Build Coastguard Worker} 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_oge_cmov(double %a, double %b, i64 %c, i64 %d) { 40*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_oge_cmov 41*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 42*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovbq %rsi, %rdi 43*9880d681SAndroid Build Coastguard Worker %1 = fcmp oge double %a, %b 44*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 45*9880d681SAndroid Build Coastguard Worker ret i64 %2 46*9880d681SAndroid Build Coastguard Worker} 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_olt_cmov(double %a, double %b, i64 %c, i64 %d) { 49*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_olt_cmov 50*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm0, %xmm1 51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovbeq %rsi, %rdi 52*9880d681SAndroid Build Coastguard Worker %1 = fcmp olt double %a, %b 53*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 54*9880d681SAndroid Build Coastguard Worker ret i64 %2 55*9880d681SAndroid Build Coastguard Worker} 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ole_cmov(double %a, double %b, i64 %c, i64 %d) { 58*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ole_cmov 59*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm0, %xmm1 60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovbq %rsi, %rdi 61*9880d681SAndroid Build Coastguard Worker %1 = fcmp ole double %a, %b 62*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 63*9880d681SAndroid Build Coastguard Worker ret i64 %2 64*9880d681SAndroid Build Coastguard Worker} 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_one_cmov(double %a, double %b, i64 %c, i64 %d) { 67*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_one_cmov 68*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 69*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmoveq %rsi, %rdi 70*9880d681SAndroid Build Coastguard Worker %1 = fcmp one double %a, %b 71*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 72*9880d681SAndroid Build Coastguard Worker ret i64 %2 73*9880d681SAndroid Build Coastguard Worker} 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ord_cmov(double %a, double %b, i64 %c, i64 %d) { 76*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ord_cmov 77*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 78*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovpq %rsi, %rdi 79*9880d681SAndroid Build Coastguard Worker %1 = fcmp ord double %a, %b 80*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 81*9880d681SAndroid Build Coastguard Worker ret i64 %2 82*9880d681SAndroid Build Coastguard Worker} 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_uno_cmov(double %a, double %b, i64 %c, i64 %d) { 85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_uno_cmov 86*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 87*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovnpq %rsi, %rdi 88*9880d681SAndroid Build Coastguard Worker %1 = fcmp uno double %a, %b 89*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 90*9880d681SAndroid Build Coastguard Worker ret i64 %2 91*9880d681SAndroid Build Coastguard Worker} 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ueq_cmov(double %a, double %b, i64 %c, i64 %d) { 94*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ueq_cmov 95*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 96*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovneq %rsi, %rdi 97*9880d681SAndroid Build Coastguard Worker %1 = fcmp ueq double %a, %b 98*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 99*9880d681SAndroid Build Coastguard Worker ret i64 %2 100*9880d681SAndroid Build Coastguard Worker} 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ugt_cmov(double %a, double %b, i64 %c, i64 %d) { 103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ugt_cmov 104*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm0, %xmm1 105*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovaeq %rsi, %rdi 106*9880d681SAndroid Build Coastguard Worker %1 = fcmp ugt double %a, %b 107*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 108*9880d681SAndroid Build Coastguard Worker ret i64 %2 109*9880d681SAndroid Build Coastguard Worker} 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_uge_cmov(double %a, double %b, i64 %c, i64 %d) { 112*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_uge_cmov 113*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm0, %xmm1 114*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovaq %rsi, %rdi 115*9880d681SAndroid Build Coastguard Worker %1 = fcmp uge double %a, %b 116*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 117*9880d681SAndroid Build Coastguard Worker ret i64 %2 118*9880d681SAndroid Build Coastguard Worker} 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ult_cmov(double %a, double %b, i64 %c, i64 %d) { 121*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ult_cmov 122*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 123*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovaeq %rsi, %rdi 124*9880d681SAndroid Build Coastguard Worker %1 = fcmp ult double %a, %b 125*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 126*9880d681SAndroid Build Coastguard Worker ret i64 %2 127*9880d681SAndroid Build Coastguard Worker} 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_ule_cmov(double %a, double %b, i64 %c, i64 %d) { 130*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_ule_cmov 131*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 132*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovaq %rsi, %rdi 133*9880d681SAndroid Build Coastguard Worker %1 = fcmp ule double %a, %b 134*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 135*9880d681SAndroid Build Coastguard Worker ret i64 %2 136*9880d681SAndroid Build Coastguard Worker} 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_une_cmov(double %a, double %b, i64 %c, i64 %d) { 139*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_une_cmov 140*9880d681SAndroid Build Coastguard Worker; CHECK: ucomisd %xmm1, %xmm0 141*9880d681SAndroid Build Coastguard Worker; SDAG-NEXT: cmovneq %rdi, %rsi 142*9880d681SAndroid Build Coastguard Worker; SDAG-NEXT: cmovpq %rdi, %rsi 143*9880d681SAndroid Build Coastguard Worker; SDAG-NEXT: movq %rsi, %rax 144*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: setp %al 145*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: setne %cl 146*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: orb %al, %cl 147*9880d681SAndroid Build Coastguard Worker; FAST-NEXT: cmoveq %rsi, %rdi 148*9880d681SAndroid Build Coastguard Worker %1 = fcmp une double %a, %b 149*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 150*9880d681SAndroid Build Coastguard Worker ret i64 %2 151*9880d681SAndroid Build Coastguard Worker} 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Workerdefine i64 @select_fcmp_true_cmov(double %a, double %b, i64 %c, i64 %d) { 154*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_fcmp_true_cmov 155*9880d681SAndroid Build Coastguard Worker; CHECK: movq %rdi, %rax 156*9880d681SAndroid Build Coastguard Worker %1 = fcmp true double %a, %b 157*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 158*9880d681SAndroid Build Coastguard Worker ret i64 %2 159*9880d681SAndroid Build Coastguard Worker} 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_eq_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 162*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_eq_cmov 163*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 164*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovneq %rcx, %rdx 165*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 166*9880d681SAndroid Build Coastguard Worker %1 = icmp eq i64 %a, %b 167*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 168*9880d681SAndroid Build Coastguard Worker ret i64 %2 169*9880d681SAndroid Build Coastguard Worker} 170*9880d681SAndroid Build Coastguard Worker 171*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_ne_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 172*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_ne_cmov 173*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 174*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmoveq %rcx, %rdx 175*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 176*9880d681SAndroid Build Coastguard Worker %1 = icmp ne i64 %a, %b 177*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 178*9880d681SAndroid Build Coastguard Worker ret i64 %2 179*9880d681SAndroid Build Coastguard Worker} 180*9880d681SAndroid Build Coastguard Worker 181*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_ugt_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 182*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_ugt_cmov 183*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 184*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovbeq %rcx, %rdx 185*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 186*9880d681SAndroid Build Coastguard Worker %1 = icmp ugt i64 %a, %b 187*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 188*9880d681SAndroid Build Coastguard Worker ret i64 %2 189*9880d681SAndroid Build Coastguard Worker} 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Worker 192*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_uge_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_uge_cmov 194*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 195*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovbq %rcx, %rdx 196*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 197*9880d681SAndroid Build Coastguard Worker %1 = icmp uge i64 %a, %b 198*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 199*9880d681SAndroid Build Coastguard Worker ret i64 %2 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_ult_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_ult_cmov 204*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 205*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovaeq %rcx, %rdx 206*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 207*9880d681SAndroid Build Coastguard Worker %1 = icmp ult i64 %a, %b 208*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 209*9880d681SAndroid Build Coastguard Worker ret i64 %2 210*9880d681SAndroid Build Coastguard Worker} 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_ule_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_ule_cmov 214*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovaq %rcx, %rdx 216*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 217*9880d681SAndroid Build Coastguard Worker %1 = icmp ule i64 %a, %b 218*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 219*9880d681SAndroid Build Coastguard Worker ret i64 %2 220*9880d681SAndroid Build Coastguard Worker} 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_sgt_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_sgt_cmov 224*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 225*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovleq %rcx, %rdx 226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 227*9880d681SAndroid Build Coastguard Worker %1 = icmp sgt i64 %a, %b 228*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 229*9880d681SAndroid Build Coastguard Worker ret i64 %2 230*9880d681SAndroid Build Coastguard Worker} 231*9880d681SAndroid Build Coastguard Worker 232*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_sge_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 233*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_sge_cmov 234*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 235*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovlq %rcx, %rdx 236*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 237*9880d681SAndroid Build Coastguard Worker %1 = icmp sge i64 %a, %b 238*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 239*9880d681SAndroid Build Coastguard Worker ret i64 %2 240*9880d681SAndroid Build Coastguard Worker} 241*9880d681SAndroid Build Coastguard Worker 242*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_slt_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 243*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_slt_cmov 244*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 245*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovgeq %rcx, %rdx 246*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 247*9880d681SAndroid Build Coastguard Worker %1 = icmp slt i64 %a, %b 248*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 249*9880d681SAndroid Build Coastguard Worker ret i64 %2 250*9880d681SAndroid Build Coastguard Worker} 251*9880d681SAndroid Build Coastguard Worker 252*9880d681SAndroid Build Coastguard Workerdefine i64 @select_icmp_sle_cmov(i64 %a, i64 %b, i64 %c, i64 %d) { 253*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: select_icmp_sle_cmov 254*9880d681SAndroid Build Coastguard Worker; CHECK: cmpq %rsi, %rdi 255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: cmovgq %rcx, %rdx 256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: movq %rdx, %rax 257*9880d681SAndroid Build Coastguard Worker %1 = icmp sle i64 %a, %b 258*9880d681SAndroid Build Coastguard Worker %2 = select i1 %1, i64 %c, i64 %d 259*9880d681SAndroid Build Coastguard Worker ret i64 %2 260*9880d681SAndroid Build Coastguard Worker} 261*9880d681SAndroid Build Coastguard Worker 262