1*4e94e25cSMarkus Lavin# RUN: llc -mtriple=riscv32 %s -run-pass=machine-sink -o - | FileCheck %s 2*4e94e25cSMarkus Lavin 3*4e94e25cSMarkus Lavin# Verify that sinking of '%20:gpr = LUI 1, implicit $x0' is not inhibited by 4*4e94e25cSMarkus Lavin# the implicit use of '$x0'. 5*4e94e25cSMarkus Lavin# Register '$x0' is a 'MRI->isConstantPhysReg()' on RISCV and such uses should 6*4e94e25cSMarkus Lavin# not inhibit sinking transformation even though they are livein to the block 7*4e94e25cSMarkus Lavin# they are to be sunk into (inhibit under such conditions should only happen 8*4e94e25cSMarkus Lavin# for defines). 9*4e94e25cSMarkus Lavin 10*4e94e25cSMarkus Lavin--- 11*4e94e25cSMarkus Lavinname: f 12*4e94e25cSMarkus LavintracksRegLiveness: true 13*4e94e25cSMarkus Lavinbody: | 14*4e94e25cSMarkus Lavin ; CHECK-LABEL: bb.1: 15*4e94e25cSMarkus Lavin ; CHECK-NEXT: successors: %bb.3(0x80000000) 16*4e94e25cSMarkus Lavin ; CHECK-NEXT: liveins: $x0 17*4e94e25cSMarkus Lavin ; CHECK-NEXT: {{ $}} 18*4e94e25cSMarkus Lavin ; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 1, implicit $x0 19*4e94e25cSMarkus Lavin bb.0: 20*4e94e25cSMarkus Lavin liveins: $x10 21*4e94e25cSMarkus Lavin %10:gpr = COPY $x10 22*4e94e25cSMarkus Lavin %20:gpr = LUI 1, implicit $x0 23*4e94e25cSMarkus Lavin BEQ %10, %10, %bb.2 24*4e94e25cSMarkus Lavin PseudoBR %bb.1 25*4e94e25cSMarkus Lavin bb.1: 26*4e94e25cSMarkus Lavin liveins: $x0 27*4e94e25cSMarkus Lavin %30:gpr = ADDI %20, 5 28*4e94e25cSMarkus Lavin PseudoBR %bb.3 29*4e94e25cSMarkus Lavin bb.2: 30*4e94e25cSMarkus Lavin PseudoBR %bb.3 31*4e94e25cSMarkus Lavin bb.3: 32*4e94e25cSMarkus Lavin PseudoRET 33*4e94e25cSMarkus Lavin... 34