1*ea21fa3aSElena Lepilkina; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*ea21fa3aSElena Lepilkina; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ 3*ea21fa3aSElena Lepilkina; RUN: | FileCheck %s 4*ea21fa3aSElena Lepilkina 5*ea21fa3aSElena Lepilkinadefine void @foo(i16 %finder_idx) { 6*ea21fa3aSElena Lepilkina; CHECK-LABEL: foo: 7*ea21fa3aSElena Lepilkina; CHECK: # %bb.0: # %entry 8*ea21fa3aSElena Lepilkina; CHECK-NEXT: .LBB0_1: # %for.body 9*ea21fa3aSElena Lepilkina; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 10*ea21fa3aSElena Lepilkina; CHECK-NEXT: slli a0, a0, 48 11*ea21fa3aSElena Lepilkina; CHECK-NEXT: bltz a0, .LBB0_4 12*ea21fa3aSElena Lepilkina; CHECK-NEXT: # %bb.2: # %while.cond.preheader.i 13*ea21fa3aSElena Lepilkina; CHECK-NEXT: # in Loop: Header=BB0_1 Depth=1 14*ea21fa3aSElena Lepilkina; CHECK-NEXT: li a0, 0 15*ea21fa3aSElena Lepilkina; CHECK-NEXT: bnez zero, .LBB0_1 16*ea21fa3aSElena Lepilkina; CHECK-NEXT: # %bb.3: # %while.body 17*ea21fa3aSElena Lepilkina; CHECK-NEXT: .LBB0_4: # %while.cond1.preheader.i 18*ea21fa3aSElena Lepilkinaentry: 19*ea21fa3aSElena Lepilkina br label %for.body 20*ea21fa3aSElena Lepilkina 21*ea21fa3aSElena Lepilkinafor.body: 22*ea21fa3aSElena Lepilkina %info = phi i16 [ 0, %if.then ], [ %finder_idx, %entry ] 23*ea21fa3aSElena Lepilkina %cmp.i = icmp sgt i16 %info, -1 24*ea21fa3aSElena Lepilkina %tobool = icmp eq ptr poison, null 25*ea21fa3aSElena Lepilkina br i1 %cmp.i, label %while.cond.preheader.i, label %while.cond1.preheader.i 26*ea21fa3aSElena Lepilkina 27*ea21fa3aSElena Lepilkinawhile.cond1.preheader.i: 28*ea21fa3aSElena Lepilkina unreachable 29*ea21fa3aSElena Lepilkina 30*ea21fa3aSElena Lepilkinawhile.cond.preheader.i: 31*ea21fa3aSElena Lepilkina br label %exit 32*ea21fa3aSElena Lepilkina 33*ea21fa3aSElena Lepilkinaexit: 34*ea21fa3aSElena Lepilkina br i1 %tobool, label %exit1, label %while.body 35*ea21fa3aSElena Lepilkina 36*ea21fa3aSElena Lepilkinawhile.body: 37*ea21fa3aSElena Lepilkina unreachable 38*ea21fa3aSElena Lepilkina 39*ea21fa3aSElena Lepilkinaexit1: 40*ea21fa3aSElena Lepilkina br label %if.then 41*ea21fa3aSElena Lepilkina 42*ea21fa3aSElena Lepilkinaif.then: 43*ea21fa3aSElena Lepilkina br label %for.body 44*ea21fa3aSElena Lepilkina} 45*ea21fa3aSElena Lepilkina 46*ea21fa3aSElena Lepilkinadefine void @bar(i16 %finder_idx) { 47*ea21fa3aSElena Lepilkina; CHECK-LABEL: bar: 48*ea21fa3aSElena Lepilkina; CHECK: # %bb.0: # %entry 49*ea21fa3aSElena Lepilkina; CHECK-NEXT: .LBB1_1: # %for.body 50*ea21fa3aSElena Lepilkina; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 51*ea21fa3aSElena Lepilkina; CHECK-NEXT: slli a0, a0, 48 52*ea21fa3aSElena Lepilkina; CHECK-NEXT: bgez a0, .LBB1_4 53*ea21fa3aSElena Lepilkina; CHECK-NEXT: # %bb.2: # %while.cond.preheader.i 54*ea21fa3aSElena Lepilkina; CHECK-NEXT: # in Loop: Header=BB1_1 Depth=1 55*ea21fa3aSElena Lepilkina; CHECK-NEXT: li a0, 0 56*ea21fa3aSElena Lepilkina; CHECK-NEXT: bnez zero, .LBB1_1 57*ea21fa3aSElena Lepilkina; CHECK-NEXT: # %bb.3: # %while.body 58*ea21fa3aSElena Lepilkina; CHECK-NEXT: .LBB1_4: # %while.cond1.preheader.i 59*ea21fa3aSElena Lepilkinaentry: 60*ea21fa3aSElena Lepilkina br label %for.body 61*ea21fa3aSElena Lepilkina 62*ea21fa3aSElena Lepilkinafor.body: 63*ea21fa3aSElena Lepilkina %info = phi i16 [ 0, %if.then ], [ %finder_idx, %entry ] 64*ea21fa3aSElena Lepilkina %cmp.i = icmp sle i16 %info, -1 65*ea21fa3aSElena Lepilkina %tobool = icmp eq ptr poison, null 66*ea21fa3aSElena Lepilkina br i1 %cmp.i, label %while.cond.preheader.i, label %while.cond1.preheader.i 67*ea21fa3aSElena Lepilkina 68*ea21fa3aSElena Lepilkinawhile.cond1.preheader.i: 69*ea21fa3aSElena Lepilkina unreachable 70*ea21fa3aSElena Lepilkina 71*ea21fa3aSElena Lepilkinawhile.cond.preheader.i: 72*ea21fa3aSElena Lepilkina br label %exit 73*ea21fa3aSElena Lepilkina 74*ea21fa3aSElena Lepilkinaexit: 75*ea21fa3aSElena Lepilkina br i1 %tobool, label %exit1, label %while.body 76*ea21fa3aSElena Lepilkina 77*ea21fa3aSElena Lepilkinawhile.body: 78*ea21fa3aSElena Lepilkina unreachable 79*ea21fa3aSElena Lepilkina 80*ea21fa3aSElena Lepilkinaexit1: 81*ea21fa3aSElena Lepilkina br label %if.then 82*ea21fa3aSElena Lepilkina 83*ea21fa3aSElena Lepilkinaif.then: 84*ea21fa3aSElena Lepilkina br label %for.body 85*ea21fa3aSElena Lepilkina} 86