|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | 
|  | ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ | 
|  | ; RUN:   | FileCheck -check-prefixes=RV32 %s | 
|  | ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \ | 
|  | ; RUN:   | FileCheck -check-prefixes=RV64 %s | 
|  |  | 
|  | define signext i16 @func(ptr %a, ptr %b) { | 
|  | ; RV32-LABEL: func: | 
|  | ; RV32:       # %bb.0: # %entry | 
|  | ; RV32-NEXT:    lh a0, 0(a0) | 
|  | ; RV32-NEXT:    bltz a0, .LBB0_3 | 
|  | ; RV32-NEXT:  # %bb.1: # %.LBB0_1 | 
|  | ; RV32-NEXT:    beqz a1, .LBB0_3 | 
|  | ; RV32-NEXT:  # %bb.2: # %.LBB0_2 | 
|  | ; RV32-NEXT:    ret | 
|  | ; RV32-NEXT:  .LBB0_3: # %return | 
|  | ; RV32-NEXT:    li a0, 0 | 
|  | ; RV32-NEXT:    ret | 
|  | ; | 
|  | ; RV64-LABEL: func: | 
|  | ; RV64:       # %bb.0: # %entry | 
|  | ; RV64-NEXT:    lh a0, 0(a0) | 
|  | ; RV64-NEXT:    bltz a0, .LBB0_3 | 
|  | ; RV64-NEXT:  # %bb.1: # %.LBB0_1 | 
|  | ; RV64-NEXT:    beqz a1, .LBB0_3 | 
|  | ; RV64-NEXT:  # %bb.2: # %.LBB0_2 | 
|  | ; RV64-NEXT:    ret | 
|  | ; RV64-NEXT:  .LBB0_3: # %return | 
|  | ; RV64-NEXT:    li a0, 0 | 
|  | ; RV64-NEXT:    ret | 
|  | entry: | 
|  | %0 = load i16, ptr %a | 
|  | %cmp = icmp sgt i16 %0, -1 | 
|  | %tobool.not = icmp eq ptr %b, null | 
|  | br i1 %cmp, label %.LBB0_1, label %return | 
|  |  | 
|  | .LBB0_1: | 
|  | br i1 %tobool.not, label %return, label %.LBB0_2 | 
|  |  | 
|  | .LBB0_2: | 
|  | ret i16 %0 | 
|  |  | 
|  | return: | 
|  | ret i16 0 | 
|  | } |