Skip to content

Commit b6e80d4

Browse files
committed
move CV_SHUFFLE_SCI_B expansion from RISCVExpandPseudoInsts.cpp to RISCVISelLowering.cpp
1 parent 29b9988 commit b6e80d4

File tree

3 files changed

+5
-24
lines changed

3 files changed

+5
-24
lines changed

llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ class RISCVExpandPseudo : public MachineFunctionPass {
5656
MachineBasicBlock::iterator MBBI);
5757
bool expandRV32ZdinxLoad(MachineBasicBlock &MBB,
5858
MachineBasicBlock::iterator MBBI);
59-
bool expandVendorXcvsimdShuffle(MachineBasicBlock &MBB,
60-
MachineBasicBlock::iterator MBBI);
6159
#ifndef NDEBUG
6260
unsigned getInstSizeInBytes(const MachineFunction &MF) const {
6361
unsigned Size = 0;
@@ -166,8 +164,6 @@ bool RISCVExpandPseudo::expandMI(MachineBasicBlock &MBB,
166164
case RISCV::PseudoVMSET_M_B64:
167165
// vmset.m vd => vmxnor.mm vd, vd, vd
168166
return expandVMSET_VMCLR(MBB, MBBI, RISCV::VMXNOR_MM);
169-
case RISCV::CV_SHUFFLE_SCI_B_PSEUDO:
170-
return expandVendorXcvsimdShuffle(MBB, MBBI);
171167
}
172168

173169
return false;
@@ -419,23 +415,6 @@ bool RISCVExpandPseudo::expandRV32ZdinxLoad(MachineBasicBlock &MBB,
419415
return true;
420416
}
421417

422-
bool RISCVExpandPseudo::expandVendorXcvsimdShuffle(
423-
MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI) {
424-
DebugLoc DL = MBBI->getDebugLoc();
425-
Register DstReg = MBBI->getOperand(0).getReg();
426-
Register SrcReg = MBBI->getOperand(1).getReg();
427-
uint8_t Imm = MBBI->getOperand(2).getImm();
428-
const unsigned Opcodes[] = {
429-
RISCV::CV_SHUFFLEI0_SCI_B, RISCV::CV_SHUFFLEI1_SCI_B,
430-
RISCV::CV_SHUFFLEI2_SCI_B, RISCV::CV_SHUFFLEI3_SCI_B};
431-
const MCInstrDesc &Desc = TII->get(Opcodes[Imm >> 6]);
432-
BuildMI(MBB, MBBI, DL, Desc, DstReg)
433-
.addReg(SrcReg)
434-
.addImm(APInt(6, Imm, true).getSExtValue());
435-
MBBI->eraseFromParent();
436-
return true;
437-
}
438-
439418
class RISCVPreRAExpandPseudo : public MachineFunctionPass {
440419
public:
441420
const RISCVSubtarget *STI;

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20393,6 +20393,8 @@ RISCVTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
2039320393
return emitFROUND(MI, BB, Subtarget);
2039420394
case RISCV::PROBED_STACKALLOC_DYN:
2039520395
return emitDynamicProbedAlloc(MI, BB);
20396+
case RISCV::PseudoCV_SHUFFLE_SCI_B:
20397+
return emitCV_SHUFFLE_SCI_B(MI, BB, Subtarget);
2039620398
case TargetOpcode::STATEPOINT:
2039720399
// STATEPOINT is a pseudo instruction which has no implicit defs/uses
2039820400
// while jal call instruction (where statepoint will be lowered at the end)

llvm/lib/Target/RISCV/RISCVInstrInfoXCV.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,9 +1052,9 @@ let Predicates = [HasVendorXCVsimd] in {
10521052

10531053
defm SHUFFLE : PatCorevGprGprHB<"shuffle">;
10541054
def : PatCorevGprTImm<"shuffle_sci_h", "SHUFFLE_SCI_H">;
1055-
1056-
def CV_SHUFFLE_SCI_B_PSEUDO : Pseudo<(outs GPR:$rd), (ins GPR:$rs, cv_imm8:$imm), []>;
1057-
def : PatGprImm<int_riscv_cv_simd_shuffle_sci_b, CV_SHUFFLE_SCI_B_PSEUDO, cv_imm8>;
1055+
let usesCustomInserter = 1 in
1056+
def PseudoCV_SHUFFLE_SCI_B : Pseudo<(outs GPR:$rd), (ins GPR:$rs, cv_imm8:$imm), []>;
1057+
def : PatGprImm<int_riscv_cv_simd_shuffle_sci_b, PseudoCV_SHUFFLE_SCI_B, cv_imm8>;
10581058

10591059
def : Pat<(int_riscv_cv_simd_shuffle2_h GPR:$rs1, GPR:$rs2, GPR:$rd),
10601060
(CV_SHUFFLE2_H GPR:$rd, GPR:$rs1, GPR:$rs2)>;

0 commit comments

Comments
 (0)