|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | 
|  | ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ | 
|  | ; RUN:   | FileCheck %s | 
|  |  | 
|  | define void @foo(i16 %finder_idx) { | 
|  | ; CHECK-LABEL: foo: | 
|  | ; CHECK:       # %bb.0: # %entry | 
|  | ; CHECK-NEXT:  .LBB0_1: # %for.body | 
|  | ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1 | 
|  | ; CHECK-NEXT:    slli a0, a0, 48 | 
|  | ; CHECK-NEXT:    bltz a0, .LBB0_4 | 
|  | ; CHECK-NEXT:  # %bb.2: # %while.cond.preheader.i | 
|  | ; CHECK-NEXT:    # in Loop: Header=BB0_1 Depth=1 | 
|  | ; CHECK-NEXT:    li a0, 0 | 
|  | ; CHECK-NEXT:    bnez zero, .LBB0_1 | 
|  | ; CHECK-NEXT:  # %bb.3: # %while.body | 
|  | ; CHECK-NEXT:  .LBB0_4: # %while.cond1.preheader.i | 
|  | entry: | 
|  | br label %for.body | 
|  |  | 
|  | for.body: | 
|  | %info = phi i16 [ 0, %if.then ], [ %finder_idx, %entry ] | 
|  | %cmp.i = icmp sgt i16 %info, -1 | 
|  | %tobool = icmp eq ptr poison, null | 
|  | br i1 %cmp.i, label %while.cond.preheader.i, label %while.cond1.preheader.i | 
|  |  | 
|  | while.cond1.preheader.i: | 
|  | unreachable | 
|  |  | 
|  | while.cond.preheader.i: | 
|  | br label %exit | 
|  |  | 
|  | exit: | 
|  | br i1 %tobool, label %exit1, label %while.body | 
|  |  | 
|  | while.body: | 
|  | unreachable | 
|  |  | 
|  | exit1: | 
|  | br label %if.then | 
|  |  | 
|  | if.then: | 
|  | br label %for.body | 
|  | } | 
|  |  | 
|  | define void @bar(i16 %finder_idx) { | 
|  | ; CHECK-LABEL: bar: | 
|  | ; CHECK:       # %bb.0: # %entry | 
|  | ; CHECK-NEXT:  .LBB1_1: # %for.body | 
|  | ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1 | 
|  | ; CHECK-NEXT:    slli a0, a0, 48 | 
|  | ; CHECK-NEXT:    bgez a0, .LBB1_4 | 
|  | ; CHECK-NEXT:  # %bb.2: # %while.cond.preheader.i | 
|  | ; CHECK-NEXT:    # in Loop: Header=BB1_1 Depth=1 | 
|  | ; CHECK-NEXT:    li a0, 0 | 
|  | ; CHECK-NEXT:    bnez zero, .LBB1_1 | 
|  | ; CHECK-NEXT:  # %bb.3: # %while.body | 
|  | ; CHECK-NEXT:  .LBB1_4: # %while.cond1.preheader.i | 
|  | entry: | 
|  | br label %for.body | 
|  |  | 
|  | for.body: | 
|  | %info = phi i16 [ 0, %if.then ], [ %finder_idx, %entry ] | 
|  | %cmp.i = icmp sle i16 %info, -1 | 
|  | %tobool = icmp eq ptr poison, null | 
|  | br i1 %cmp.i, label %while.cond.preheader.i, label %while.cond1.preheader.i | 
|  |  | 
|  | while.cond1.preheader.i: | 
|  | unreachable | 
|  |  | 
|  | while.cond.preheader.i: | 
|  | br label %exit | 
|  |  | 
|  | exit: | 
|  | br i1 %tobool, label %exit1, label %while.body | 
|  |  | 
|  | while.body: | 
|  | unreachable | 
|  |  | 
|  | exit1: | 
|  | br label %if.then | 
|  |  | 
|  | if.then: | 
|  | br label %for.body | 
|  | } |