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