# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc -o - %s -mtriple=riscv64 -run-pass=machine-cp -mcp-use-is-copy-instr | FileCheck %s

# Check that instruction simplifications expected to be performed after
# machine copy propagation are done.

---
name: add1
body: |
  bb.0:
    ; CHECK-LABEL: name: add1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = ADD renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: add2
body: |
  bb.0:
    ; CHECK-LABEL: name: add2
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = ADD $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: or1
body: |
  bb.0:
    ; CHECK-LABEL: name: or1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = OR renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: or2
body: |
  bb.0:
    ; CHECK-LABEL: name: or2
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = OR $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: xor1
body: |
  bb.0:
    ; CHECK-LABEL: name: xor1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = XOR renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: xor2
body: |
  bb.0:
    ; CHECK-LABEL: name: xor2
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = XOR $x0, renamable $x11
    PseudoRET implicit $x10
...
---
---
name: xor3
body: |
  bb.0:
    ; CHECK-LABEL: name: xor3
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = XOR renamable $x11, renamable $x11
    PseudoRET implicit $x10
...
---
name: addw1
body: |
  bb.0:
    ; CHECK-LABEL: name: addw1
    ; CHECK: renamable $x10 = ADDIW $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ADDW renamable $x11, $x12
    PseudoRET implicit $x10
...
---
name: addw2
body: |
  bb.0:
    ; CHECK-LABEL: name: addw2
    ; CHECK: renamable $x10 = ADDIW $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ADDW $x12, renamable $x11
    PseudoRET implicit $x10
...
---
name: sub
body: |
  bb.0:
    ; CHECK-LABEL: name: sub
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SUB renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: subw
body: |
  bb.0:
    ; CHECK-LABEL: name: subw
    ; CHECK: renamable $x10 = ADDIW $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SUBW renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sh1add1
body: |
  bb.0:
    ; CHECK-LABEL: name: sh1add1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH1ADD $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sh1add2
body: |
  bb.0:
    ; CHECK-LABEL: name: sh1add2
    ; CHECK: renamable $x10 = SLLI $x12, 1
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH1ADD renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sh1add.uw1
body: |
  bb.0:
    ; CHECK-LABEL: name: sh1add.uw1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH1ADD_UW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sh1add.uw2
body: |
  bb.0:
    ; CHECK-LABEL: name: sh1add.uw2
    ; CHECK: renamable $x10 = SLLI_UW $x12, 1
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH1ADD_UW renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sh2add1
body: |
  bb.0:
    ; CHECK-LABEL: name: sh2add1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH2ADD $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sh2add2
body: |
  bb.0:
    ; CHECK-LABEL: name: sh2add2
    ; CHECK: renamable $x10 = SLLI $x12, 2
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH2ADD renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sh2add.uw1
body: |
  bb.0:
    ; CHECK-LABEL: name: sh2add.uw1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH2ADD_UW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sh2add.uw2
body: |
  bb.0:
    ; CHECK-LABEL: name: sh2add.uw2
    ; CHECK: renamable $x10 = SLLI_UW $x12, 2
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH2ADD_UW renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sh3add1
body: |
  bb.0:
    ; CHECK-LABEL: name: sh3add1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH3ADD $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sh3add2
body: |
  bb.0:
    ; CHECK-LABEL: name: sh3add2
    ; CHECK: renamable $x10 = SLLI $x12, 3
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH3ADD renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sh3add.uw1
body: |
  bb.0:
    ; CHECK-LABEL: name: sh3add.uw1
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH3ADD_UW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sh3add.uw2
body: |
  bb.0:
    ; CHECK-LABEL: name: sh3add.uw2
    ; CHECK: renamable $x10 = SLLI_UW $x12, 3
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SH3ADD_UW renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: andi
body: |
  bb.0:
    ; CHECK-LABEL: name: andi
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ANDI renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: and1
body: |
  bb.0:
    ; CHECK-LABEL: name: and1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = AND renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: and2
body: |
  bb.0:
    ; CHECK-LABEL: name: and2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = AND $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: mul1
body: |
  bb.0:
    ; CHECK-LABEL: name: mul1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MUL renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: mul2
body: |
  bb.0:
    ; CHECK-LABEL: name: mul2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MUL $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: mulh1
body: |
  bb.0:
    ; CHECK-LABEL: name: mulh1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULH renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: mulh2
body: |
  bb.0:
    ; CHECK-LABEL: name: mulh2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULH $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: mulhsu1
body: |
  bb.0:
    ; CHECK-LABEL: name: mulhsu1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULHSU renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: mulhsu2
body: |
  bb.0:
    ; CHECK-LABEL: name: mulhsu2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULHSU $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: mulhu1
body: |
  bb.0:
    ; CHECK-LABEL: name: mulhu1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULHU renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: mulhu2
body: |
  bb.0:
    ; CHECK-LABEL: name: mulhu2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULHU $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: mulw1
body: |
  bb.0:
    ; CHECK-LABEL: name: mulw1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULW renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: mulw2
body: |
  bb.0:
    ; CHECK-LABEL: name: mulw2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MULW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: slli
body: |
  bb.0:
    ; CHECK-LABEL: name: slli
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SLLI renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: srli
body: |
  bb.0:
    ; CHECK-LABEL: name: srli
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SRLI renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: srai
body: |
  bb.0:
    ; CHECK-LABEL: name: srai
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SRAI renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: slliw
body: |
  bb.0:
    ; CHECK-LABEL: name: slliw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SLLIW renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: srliw
body: |
  bb.0:
    ; CHECK-LABEL: name: srliw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SRLIW renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: sraiw
body: |
  bb.0:
    ; CHECK-LABEL: name: sraiw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SRAIW renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: slli_uw
body: |
  bb.0:
    ; CHECK-LABEL: name: slli_uw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SLLI_UW renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: ori
body: |
  bb.0:
    ; CHECK-LABEL: name: ori
    ; CHECK: renamable $x10 = ADDI $x0, 13
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ORI renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: xori
body: |
  bb.0:
    ; CHECK-LABEL: name: xori
    ; CHECK: renamable $x10 = ADDI $x0, 13
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = XORI renamable $x11, 13
    PseudoRET implicit $x10
...
---
name: sltiu1
body: |
  bb.0:
    ; CHECK-LABEL: name: sltiu1
    ; CHECK: renamable $x10 = ADDI $x0, 1
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SLTIU renamable $x11, 2
    PseudoRET implicit $x10
...
---
name: sltiu2
body: |
  bb.0:
    ; CHECK-LABEL: name: sltiu2
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SLTIU renamable $x11, 0
    PseudoRET implicit $x10
...
---
name: sltu
body: |
  bb.0:
    ; CHECK-LABEL: name: sltu
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SLTU renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: add.uw1
body: |
  bb.0:
    ; CHECK-LABEL: name: add.uw1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ADD_UW renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: add.uw2
body: |
  bb.0:
    ; CHECK-LABEL: name: add.uw2
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = ADD_UW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sext.h
body: |
  bb.0:
    ; CHECK-LABEL: name: sext.h
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SEXT_H renamable $x11
    PseudoRET implicit $x10
...
---
name: sext.b
body: |
  bb.0:
    ; CHECK-LABEL: name: sext.b
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = SEXT_B renamable $x11
    PseudoRET implicit $x10
...
---
name: zext.h.rv32
body: |
  bb.0:
    ; CHECK-LABEL: name: zext.h.rv32
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ZEXT_H_RV32 renamable $x11
    PseudoRET implicit $x10
...
---
name: zext.h.rv64
body: |
  bb.0:
    ; CHECK-LABEL: name: zext.h.rv64
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x0
    renamable $x10 = ZEXT_H_RV64 renamable $x11
    PseudoRET implicit $x10
...
---
name: sll1
body: |
  bb.0:
    ; CHECK-LABEL: name: sll1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SLL $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sll2
body: |
  bb.0:
    ; CHECK-LABEL: name: sll2
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SLL renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sr11
body: |
  bb.0:
    ; CHECK-LABEL: name: sr11
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SRL $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sr12
body: |
  bb.0:
    ; CHECK-LABEL: name: sr12
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SRL renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sra1
body: |
  bb.0:
    ; CHECK-LABEL: name: sra1
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SRA $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sra2
body: |
  bb.0:
    ; CHECK-LABEL: name: sra2
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SRA renamable $x11, $x0
    PseudoRET implicit $x10
...
---
name: sllw
body: |
  bb.0:
    ; CHECK-LABEL: name: sllw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SLLW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: srlw
body: |
  bb.0:
    ; CHECK-LABEL: name: srlw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SRLW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: sraw
body: |
  bb.0:
    ; CHECK-LABEL: name: sraw
    ; CHECK: renamable $x10 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = SRAW $x0, renamable $x11
    PseudoRET implicit $x10
...
---
name: min
body: |
  bb.0:
    ; CHECK-LABEL: name: min
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MIN renamable $x11, renamable $x11
    PseudoRET implicit $x10
...
---
name: minu
body: |
  bb.0:
    ; CHECK-LABEL: name: minu
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MINU renamable $x11, renamable $x11
    PseudoRET implicit $x10
...
---
name: max
body: |
  bb.0:
    ; CHECK-LABEL: name: max
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MAX renamable $x11, renamable $x11
    PseudoRET implicit $x10
...
---
name: maxu
body: |
  bb.0:
    ; CHECK-LABEL: name: maxu
    ; CHECK: renamable $x10 = ADDI $x12, 0
    ; CHECK-NEXT: PseudoRET implicit $x10
    renamable $x11 = COPY $x12
    renamable $x10 = MAXU renamable $x11, renamable $x11
    PseudoRET implicit $x10
...
---
name: multipass
body: |
  bb.0:
    ; CHECK-LABEL: name: multipass
    ; CHECK: renamable $x9 = ADDI $x0, 0
    ; CHECK-NEXT: PseudoRET implicit $x9
    renamable $x11 = COPY $x0
    renamable $x10 = SLLI renamable $x11, 13
    renamable $x9 = SRLI renamable $x10, 13
    PseudoRET implicit $x9
...
---
name: beq
body: |
  ; CHECK-LABEL: name: beq
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x11 = COPY $x12
  ; CHECK-NEXT:   BEQ $x12, $x0, %bb.1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   PseudoRET
  bb.0:
    renamable $x11 = COPY $x12
    BEQ $x0, renamable $x11, %bb.1
  bb.1:
    PseudoRET
...
---
name: bne
body: |
  ; CHECK-LABEL: name: bne
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x11 = COPY $x12
  ; CHECK-NEXT:   BNE $x12, $x0, %bb.1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   PseudoRET
  bb.0:
    renamable $x11 = COPY $x12
    BNE $x0, renamable $x11, %bb.1
  bb.1:
    PseudoRET
...
---
name: bltu
body: |
  ; CHECK-LABEL: name: bltu
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x11 = COPY $x12
  ; CHECK-NEXT:   BNE $x12, $x0, %bb.1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   PseudoRET
  bb.0:
    renamable $x11 = COPY $x12
    BLTU $x0, renamable $x11, %bb.1
  bb.1:
    PseudoRET
...
---
name: bgeu
body: |
  ; CHECK-LABEL: name: bgeu
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   renamable $x11 = COPY $x12
  ; CHECK-NEXT:   BEQ $x12, $x0, %bb.1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   PseudoRET
  bb.0:
    renamable $x11 = COPY $x12
    BGEU $x0, renamable $x11, %bb.1
  bb.1:
    PseudoRET
...
