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