1*9880d681SAndroid Build Coastguard Worker; Test conditional sibling calls. 2*9880d681SAndroid Build Coastguard Worker; 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdeclare void @fun_a() 6*9880d681SAndroid Build Coastguard Workerdeclare void @fun_b() 7*9880d681SAndroid Build Coastguard Workerdeclare void @fun_c(i32) 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker@var = global i32 1; 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call. 12*9880d681SAndroid Build Coastguard Workerdefine void @f1(i32 %val1, i32 %val2) { 13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f1: 14*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 15*9880d681SAndroid Build Coastguard Worker; CHECK: jgl fun_a@PLT 16*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 17*9880d681SAndroid Build Coastguard Worker %cond = icmp slt i32 %val1, %val2; 18*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workera: 21*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 22*9880d681SAndroid Build Coastguard Worker ret void 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerb: 25*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 26*9880d681SAndroid Build Coastguard Worker ret void 27*9880d681SAndroid Build Coastguard Worker} 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call when there are two possibilities. 30*9880d681SAndroid Build Coastguard Workerdefine void @f2(i32 %val1, i32 %val2) { 31*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f2: 32*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 33*9880d681SAndroid Build Coastguard Worker; CHECK: jghe fun_b@PLT 34*9880d681SAndroid Build Coastguard Worker; CHECK: jg fun_a@PLT 35*9880d681SAndroid Build Coastguard Worker %cond = icmp slt i32 %val1, %val2; 36*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Workera: 39*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 40*9880d681SAndroid Build Coastguard Worker ret void 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Workerb: 43*9880d681SAndroid Build Coastguard Worker tail call void @fun_b() 44*9880d681SAndroid Build Coastguard Worker ret void 45*9880d681SAndroid Build Coastguard Worker} 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call with an argument - not supported. 48*9880d681SAndroid Build Coastguard Workerdefine void @f3(i32 %val1, i32 %val2) { 49*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f3: 50*9880d681SAndroid Build Coastguard Worker; CHECK: crjhe %r2, %r3 51*9880d681SAndroid Build Coastguard Worker; CHECK: jg fun_c@PLT 52*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 53*9880d681SAndroid Build Coastguard Worker %cond = icmp slt i32 %val1, %val2; 54*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workera: 57*9880d681SAndroid Build Coastguard Worker tail call void @fun_c(i32 1) 58*9880d681SAndroid Build Coastguard Worker ret void 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workerb: 61*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 62*9880d681SAndroid Build Coastguard Worker ret void 63*9880d681SAndroid Build Coastguard Worker} 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - unsigned compare. 66*9880d681SAndroid Build Coastguard Workerdefine void @f4(i32 %val1, i32 %val2) { 67*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f4: 68*9880d681SAndroid Build Coastguard Worker; CHECK: clr %r2, %r3 69*9880d681SAndroid Build Coastguard Worker; CHECK: jgl fun_a@PLT 70*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 71*9880d681SAndroid Build Coastguard Worker %cond = icmp ult i32 %val1, %val2; 72*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workera: 75*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 76*9880d681SAndroid Build Coastguard Worker ret void 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workerb: 79*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 80*9880d681SAndroid Build Coastguard Worker ret void 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - 64-bit compare. 84*9880d681SAndroid Build Coastguard Workerdefine void @f5(i64 %val1, i64 %val2) { 85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f5: 86*9880d681SAndroid Build Coastguard Worker; CHECK: cgr %r2, %r3 87*9880d681SAndroid Build Coastguard Worker; CHECK: jgl fun_a@PLT 88*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 89*9880d681SAndroid Build Coastguard Worker %cond = icmp slt i64 %val1, %val2; 90*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Workera: 93*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 94*9880d681SAndroid Build Coastguard Worker ret void 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Workerb: 97*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 98*9880d681SAndroid Build Coastguard Worker ret void 99*9880d681SAndroid Build Coastguard Worker} 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - unsigned 64-bit compare. 102*9880d681SAndroid Build Coastguard Workerdefine void @f6(i64 %val1, i64 %val2) { 103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f6: 104*9880d681SAndroid Build Coastguard Worker; CHECK: clgr %r2, %r3 105*9880d681SAndroid Build Coastguard Worker; CHECK: jgl fun_a@PLT 106*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 107*9880d681SAndroid Build Coastguard Worker %cond = icmp ult i64 %val1, %val2; 108*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Workera: 111*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 112*9880d681SAndroid Build Coastguard Worker ret void 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerb: 115*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 116*9880d681SAndroid Build Coastguard Worker ret void 117*9880d681SAndroid Build Coastguard Worker} 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - less-equal compare. 120*9880d681SAndroid Build Coastguard Workerdefine void @f7(i32 %val1, i32 %val2) { 121*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f7: 122*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 123*9880d681SAndroid Build Coastguard Worker; CHECK: jgle fun_a@PLT 124*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 125*9880d681SAndroid Build Coastguard Worker %cond = icmp sle i32 %val1, %val2; 126*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Workera: 129*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 130*9880d681SAndroid Build Coastguard Worker ret void 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Workerb: 133*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 134*9880d681SAndroid Build Coastguard Worker ret void 135*9880d681SAndroid Build Coastguard Worker} 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - high compare. 138*9880d681SAndroid Build Coastguard Workerdefine void @f8(i32 %val1, i32 %val2) { 139*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f8: 140*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 141*9880d681SAndroid Build Coastguard Worker; CHECK: jgh fun_a@PLT 142*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 143*9880d681SAndroid Build Coastguard Worker %cond = icmp sgt i32 %val1, %val2; 144*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workera: 147*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 148*9880d681SAndroid Build Coastguard Worker ret void 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Workerb: 151*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 152*9880d681SAndroid Build Coastguard Worker ret void 153*9880d681SAndroid Build Coastguard Worker} 154*9880d681SAndroid Build Coastguard Worker 155*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - high-equal compare. 156*9880d681SAndroid Build Coastguard Workerdefine void @f9(i32 %val1, i32 %val2) { 157*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f9: 158*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 159*9880d681SAndroid Build Coastguard Worker; CHECK: jghe fun_a@PLT 160*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 161*9880d681SAndroid Build Coastguard Worker %cond = icmp sge i32 %val1, %val2; 162*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard Workera: 165*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 166*9880d681SAndroid Build Coastguard Worker ret void 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerb: 169*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 170*9880d681SAndroid Build Coastguard Worker ret void 171*9880d681SAndroid Build Coastguard Worker} 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - equal compare. 174*9880d681SAndroid Build Coastguard Workerdefine void @f10(i32 %val1, i32 %val2) { 175*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f10: 176*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 177*9880d681SAndroid Build Coastguard Worker; CHECK: jge fun_a@PLT 178*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 179*9880d681SAndroid Build Coastguard Worker %cond = icmp eq i32 %val1, %val2; 180*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Workera: 183*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 184*9880d681SAndroid Build Coastguard Worker ret void 185*9880d681SAndroid Build Coastguard Worker 186*9880d681SAndroid Build Coastguard Workerb: 187*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 188*9880d681SAndroid Build Coastguard Worker ret void 189*9880d681SAndroid Build Coastguard Worker} 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - unequal compare. 192*9880d681SAndroid Build Coastguard Workerdefine void @f11(i32 %val1, i32 %val2) { 193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f11: 194*9880d681SAndroid Build Coastguard Worker; CHECK: cr %r2, %r3 195*9880d681SAndroid Build Coastguard Worker; CHECK: jglh fun_a@PLT 196*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 197*9880d681SAndroid Build Coastguard Worker %cond = icmp ne i32 %val1, %val2; 198*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Workera: 201*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 202*9880d681SAndroid Build Coastguard Worker ret void 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Workerb: 205*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 206*9880d681SAndroid Build Coastguard Worker ret void 207*9880d681SAndroid Build Coastguard Worker} 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate slt. 210*9880d681SAndroid Build Coastguard Workerdefine void @f12(i32 %val1) { 211*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f12: 212*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 4 213*9880d681SAndroid Build Coastguard Worker; CHECK: jgle fun_a@PLT 214*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 215*9880d681SAndroid Build Coastguard Worker %cond = icmp slt i32 %val1, 5; 216*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 217*9880d681SAndroid Build Coastguard Worker 218*9880d681SAndroid Build Coastguard Workera: 219*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 220*9880d681SAndroid Build Coastguard Worker ret void 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workerb: 223*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 224*9880d681SAndroid Build Coastguard Worker ret void 225*9880d681SAndroid Build Coastguard Worker} 226*9880d681SAndroid Build Coastguard Worker 227*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate sle. 228*9880d681SAndroid Build Coastguard Workerdefine void @f13(i32 %val1) { 229*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f13: 230*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 5 231*9880d681SAndroid Build Coastguard Worker; CHECK: jgle fun_a@PLT 232*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 233*9880d681SAndroid Build Coastguard Worker %cond = icmp sle i32 %val1, 5; 234*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 235*9880d681SAndroid Build Coastguard Worker 236*9880d681SAndroid Build Coastguard Workera: 237*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 238*9880d681SAndroid Build Coastguard Worker ret void 239*9880d681SAndroid Build Coastguard Worker 240*9880d681SAndroid Build Coastguard Workerb: 241*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 242*9880d681SAndroid Build Coastguard Worker ret void 243*9880d681SAndroid Build Coastguard Worker} 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate sgt. 246*9880d681SAndroid Build Coastguard Workerdefine void @f14(i32 %val1) { 247*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f14: 248*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 6 249*9880d681SAndroid Build Coastguard Worker; CHECK: jghe fun_a@PLT 250*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 251*9880d681SAndroid Build Coastguard Worker %cond = icmp sgt i32 %val1, 5; 252*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 253*9880d681SAndroid Build Coastguard Worker 254*9880d681SAndroid Build Coastguard Workera: 255*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 256*9880d681SAndroid Build Coastguard Worker ret void 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Workerb: 259*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 260*9880d681SAndroid Build Coastguard Worker ret void 261*9880d681SAndroid Build Coastguard Worker} 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate sge. 264*9880d681SAndroid Build Coastguard Workerdefine void @f15(i32 %val1) { 265*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f15: 266*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 5 267*9880d681SAndroid Build Coastguard Worker; CHECK: jghe fun_a@PLT 268*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 269*9880d681SAndroid Build Coastguard Worker %cond = icmp sge i32 %val1, 5; 270*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 271*9880d681SAndroid Build Coastguard Worker 272*9880d681SAndroid Build Coastguard Workera: 273*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 274*9880d681SAndroid Build Coastguard Worker ret void 275*9880d681SAndroid Build Coastguard Worker 276*9880d681SAndroid Build Coastguard Workerb: 277*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 278*9880d681SAndroid Build Coastguard Worker ret void 279*9880d681SAndroid Build Coastguard Worker} 280*9880d681SAndroid Build Coastguard Worker 281*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate eq. 282*9880d681SAndroid Build Coastguard Workerdefine void @f16(i32 %val1) { 283*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f16: 284*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 5 285*9880d681SAndroid Build Coastguard Worker; CHECK: jge fun_a@PLT 286*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 287*9880d681SAndroid Build Coastguard Worker %cond = icmp eq i32 %val1, 5; 288*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Workera: 291*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 292*9880d681SAndroid Build Coastguard Worker ret void 293*9880d681SAndroid Build Coastguard Worker 294*9880d681SAndroid Build Coastguard Workerb: 295*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 296*9880d681SAndroid Build Coastguard Worker ret void 297*9880d681SAndroid Build Coastguard Worker} 298*9880d681SAndroid Build Coastguard Worker 299*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate ne. 300*9880d681SAndroid Build Coastguard Workerdefine void @f17(i32 %val1) { 301*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f17: 302*9880d681SAndroid Build Coastguard Worker; CHECK: chi %r2, 5 303*9880d681SAndroid Build Coastguard Worker; CHECK: jglh fun_a@PLT 304*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 305*9880d681SAndroid Build Coastguard Worker %cond = icmp ne i32 %val1, 5; 306*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 307*9880d681SAndroid Build Coastguard Worker 308*9880d681SAndroid Build Coastguard Workera: 309*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 310*9880d681SAndroid Build Coastguard Worker ret void 311*9880d681SAndroid Build Coastguard Worker 312*9880d681SAndroid Build Coastguard Workerb: 313*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 314*9880d681SAndroid Build Coastguard Worker ret void 315*9880d681SAndroid Build Coastguard Worker} 316*9880d681SAndroid Build Coastguard Worker 317*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate ult. 318*9880d681SAndroid Build Coastguard Workerdefine void @f18(i32 %val1) { 319*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f18: 320*9880d681SAndroid Build Coastguard Worker; CHECK: clfi %r2, 4 321*9880d681SAndroid Build Coastguard Worker; CHECK: jgle fun_a@PLT 322*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 323*9880d681SAndroid Build Coastguard Worker %cond = icmp ult i32 %val1, 5; 324*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 325*9880d681SAndroid Build Coastguard Worker 326*9880d681SAndroid Build Coastguard Workera: 327*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 328*9880d681SAndroid Build Coastguard Worker ret void 329*9880d681SAndroid Build Coastguard Worker 330*9880d681SAndroid Build Coastguard Workerb: 331*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 332*9880d681SAndroid Build Coastguard Worker ret void 333*9880d681SAndroid Build Coastguard Worker} 334*9880d681SAndroid Build Coastguard Worker 335*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate 64-bit slt. 336*9880d681SAndroid Build Coastguard Workerdefine void @f19(i64 %val1) { 337*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f19: 338*9880d681SAndroid Build Coastguard Worker; CHECK: cghi %r2, 4 339*9880d681SAndroid Build Coastguard Worker; CHECK: jgle fun_a@PLT 340*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 341*9880d681SAndroid Build Coastguard Worker %cond = icmp slt i64 %val1, 5; 342*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 343*9880d681SAndroid Build Coastguard Worker 344*9880d681SAndroid Build Coastguard Workera: 345*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 346*9880d681SAndroid Build Coastguard Worker ret void 347*9880d681SAndroid Build Coastguard Worker 348*9880d681SAndroid Build Coastguard Workerb: 349*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 350*9880d681SAndroid Build Coastguard Worker ret void 351*9880d681SAndroid Build Coastguard Worker} 352*9880d681SAndroid Build Coastguard Worker 353*9880d681SAndroid Build Coastguard Worker; Check a conditional sibling call - immediate 64-bit ult. 354*9880d681SAndroid Build Coastguard Workerdefine void @f20(i64 %val1) { 355*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: f20: 356*9880d681SAndroid Build Coastguard Worker; CHECK: clgfi %r2, 4 357*9880d681SAndroid Build Coastguard Worker; CHECK: jgle fun_a@PLT 358*9880d681SAndroid Build Coastguard Worker; CHECK: br %r14 359*9880d681SAndroid Build Coastguard Worker %cond = icmp ult i64 %val1, 5; 360*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %a, label %b; 361*9880d681SAndroid Build Coastguard Worker 362*9880d681SAndroid Build Coastguard Workera: 363*9880d681SAndroid Build Coastguard Worker tail call void @fun_a() 364*9880d681SAndroid Build Coastguard Worker ret void 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Workerb: 367*9880d681SAndroid Build Coastguard Worker store i32 1, i32 *@var; 368*9880d681SAndroid Build Coastguard Worker ret void 369*9880d681SAndroid Build Coastguard Worker} 370