[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