From 0a26f9c1bd68a0bb7c993436218bdc04b5c4b6e8 Mon Sep 17 00:00:00 2001 From: Michael Maitland Date: Fri, 3 Jan 2025 09:57:03 -0800 Subject: [PATCH 1/3] [RISCV][VLOPT] Precommit test case --- llvm/test/CodeGen/RISCV/rvv/vl-opt.mir | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir b/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir index 3f966b036589f..5815108428b1f 100644 --- a/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir +++ b/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir @@ -110,4 +110,17 @@ body: | %y:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, 1, 3 /* e8 */, 0 %z:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, -1, 3 /* e8 */, 0 ... +--- +name: vmv_is_used_as_scalar_op +body: | + bb.0: + liveins: $x1 + ; CHECK-LABEL: name: vmv_is_used_as_scalar_op + ; CHECK: liveins: $x1 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: %x:vr = PseudoVADD_VV_MF4 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */ + ; CHECK-NEXT: %y:gpr = PseudoVMV_X_S %x, 3 /* e8 */ + %x:vr = PseudoVADD_VV_MF4 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */ + %y:gpr = PseudoVMV_X_S %x, 3 /* e8 */ +... From 8f29da7ccb0f69a97966b3484712cea423232f1d Mon Sep 17 00:00:00 2001 From: Michael Maitland Date: Fri, 3 Jan 2025 09:57:52 -0800 Subject: [PATCH 2/3] [RISCV][VLOPT] Add vmv.x.s and vfmv.f.s to isVectorOpUsedAsScalarOp --- llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp b/llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp index 85ea5a23e8f29..14b0c9d641d2d 100644 --- a/llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp +++ b/llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp @@ -840,6 +840,9 @@ static bool isVectorOpUsedAsScalarOp(MachineOperand &MO) { case RISCV::VFWREDOSUM_VS: case RISCV::VFWREDUSUM_VS: return MO.getOperandNo() == 3; + case RISCV::VMV_X_S: + case RISCV::VFMV_F_S: + return MO.getOperandNo() == 1; default: return false; } From 620ff27a5d620ccd79eab363d9a0ba55eea2c4a9 Mon Sep 17 00:00:00 2001 From: Michael Maitland Date: Sun, 5 Jan 2025 08:18:41 -0800 Subject: [PATCH 3/3] fixup! remove test --- llvm/test/CodeGen/RISCV/rvv/vl-opt.mir | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir b/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir index 5815108428b1f..3f966b036589f 100644 --- a/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir +++ b/llvm/test/CodeGen/RISCV/rvv/vl-opt.mir @@ -110,17 +110,4 @@ body: | %y:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, 1, 3 /* e8 */, 0 %z:vr = PseudoVADD_VV_M1 $noreg, %x, $noreg, -1, 3 /* e8 */, 0 ... ---- -name: vmv_is_used_as_scalar_op -body: | - bb.0: - liveins: $x1 - ; CHECK-LABEL: name: vmv_is_used_as_scalar_op - ; CHECK: liveins: $x1 - ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: %x:vr = PseudoVADD_VV_MF4 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */ - ; CHECK-NEXT: %y:gpr = PseudoVMV_X_S %x, 3 /* e8 */ - %x:vr = PseudoVADD_VV_MF4 $noreg, $noreg, $noreg, -1, 3 /* e8 */, 0 /* tu, mu */ - %y:gpr = PseudoVMV_X_S %x, 3 /* e8 */ -...