[llvm] 5f1c556 - [RISCV][test] Precommit test for #137973 simplifyInstruction support

Alex Bradbury via llvm-commits llvm-commits at lists.llvm.org
Thu May 8 04:07:19 PDT 2025


Author: Alex Bradbury
Date: 2025-05-08T12:07:08+01:00
New Revision: 5f1c55690969046676c049884d8411dde512c909

URL: https://github.com/llvm/llvm-project/commit/5f1c55690969046676c049884d8411dde512c909
DIFF: https://github.com/llvm/llvm-project/commit/5f1c55690969046676c049884d8411dde512c909.diff

LOG: [RISCV][test] Precommit test for #137973 simplifyInstruction support

Added: 
    llvm/test/CodeGen/RISCV/machine-copyprop-simplifyinstruction.mir

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/RISCV/machine-copyprop-simplifyinstruction.mir b/llvm/test/CodeGen/RISCV/machine-copyprop-simplifyinstruction.mir
new file mode 100644
index 0000000000000..a781805f83256
--- /dev/null
+++ b/llvm/test/CodeGen/RISCV/machine-copyprop-simplifyinstruction.mir
@@ -0,0 +1,746 @@
+# 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.
+
+# TODO: Not yet implemented.
+
+---
+name: add1
+body: |
+  bb.0:
+    ; CHECK-LABEL: name: add1
+    ; CHECK: renamable $x10 = ADD $x12, $x0
+    ; 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 = ADD $x0, $x12
+    ; 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 = OR $x12, $x0
+    ; 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 = OR $x0, $x12
+    ; 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 = XOR $x12, $x0
+    ; 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 = XOR $x0, $x12
+    ; 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 = XOR $x12, $x12
+    ; 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 = ADDW $x0, $x12
+    ; 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 = ADDW $x12, $x0
+    ; 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 = SUB $x12, $x0
+    ; 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 = SUBW $x12, $x0
+    ; 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 = SH1ADD $x0, $x12
+    ; 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 = SH1ADD $x12, $x0
+    ; 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 = SH1ADD_UW $x0, $x12
+    ; 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 = SH1ADD_UW $x12, $x0
+    ; 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 = SH2ADD $x0, $x12
+    ; 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 = SH2ADD $x12, $x0
+    ; 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 = SH2ADD_UW $x0, $x12
+    ; 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 = SH2ADD_UW $x12, $x0
+    ; 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 = SH3ADD $x0, $x12
+    ; 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 = SH3ADD $x12, $x0
+    ; 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 = SH3ADD_UW $x0, $x12
+    ; 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 = SH3ADD_UW $x12, $x0
+    ; 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 = ANDI $x0, 13
+    ; 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 = AND $x12, $x0
+    ; 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 = AND $x0, $x12
+    ; 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 = MUL $x12, $x0
+    ; 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 = MUL $x0, $x12
+    ; 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 = MULH $x12, $x0
+    ; 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 = MULH $x0, $x12
+    ; 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 = MULHSU $x12, $x0
+    ; 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 = MULHSU $x0, $x12
+    ; 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 = MULHU $x12, $x0
+    ; 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 = MULHU $x0, $x12
+    ; 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 = MULW $x12, $x0
+    ; 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 = MULW $x0, $x12
+    ; 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 = SLLI $x0, 13
+    ; 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 = SRLI $x0, 13
+    ; 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 = SRAI $x0, 13
+    ; 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 = SLLIW $x0, 13
+    ; 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 = SRLIW $x0, 13
+    ; 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 = SRAIW $x0, 13
+    ; 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 = SLLI_UW $x0, 13
+    ; 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 = ORI $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 = XORI $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 = SLTIU $x0, 2
+    ; 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 = SLTIU $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 = SLTU $x0, $x0
+    ; 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 = ADD_UW $x0, $x0
+    ; 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 = ADD_UW $x0, $x12
+    ; 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 = SEXT_H $x0
+    ; 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 = SEXT_B $x0
+    ; 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 = ZEXT_H_RV32 $x0
+    ; 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 = ZEXT_H_RV64 $x0
+    ; 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 = SLL $x0, $x12
+    ; 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 = SLL $x12, $x0
+    ; 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 = SRL $x0, $x12
+    ; 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 = SRL $x12, $x0
+    ; 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 = SRA $x0, $x12
+    ; 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 = SRA $x12, $x0
+    ; 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 = SLLW $x0, $x12
+    ; 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 = SRLW $x0, $x12
+    ; 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 = SRAW $x0, $x12
+    ; 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 = MIN $x12, $x12
+    ; 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 = MINU $x12, $x12
+    ; 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 = MAX $x12, $x12
+    ; 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 = MAXU $x12, $x12
+    ; CHECK-NEXT: PseudoRET implicit $x10
+    renamable $x11 = COPY $x12
+    renamable $x10 = MAXU renamable $x11, renamable $x11
+    PseudoRET implicit $x10
+...


        


More information about the llvm-commits mailing list