[llvm] [AMDGPU] Shrink S_MOV_B64 to S_MOV_B32 during rematerialization (PR #184333)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 13 09:54:08 PDT 2026
================
@@ -2609,14 +2609,50 @@ bool SIInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
void SIInstrInfo::reMaterialize(MachineBasicBlock &MBB,
MachineBasicBlock::iterator I, Register DestReg,
- unsigned SubIdx,
- const MachineInstr &Orig) const {
+ unsigned SubIdx, const MachineInstr &Orig,
+ LaneBitmask UsedLanes) const {
// Try shrinking the instruction to remat only the part needed for current
// context.
// TODO: Handle more cases.
unsigned Opcode = Orig.getOpcode();
switch (Opcode) {
+ case AMDGPU::S_MOV_B64:
+ case AMDGPU::S_MOV_B64_IMM_PSEUDO: {
+ if (SubIdx != 0)
+ break;
+
+ if (!Orig.getOperand(1).isImm())
----------------
arsenm wrote:
It should be possible to split other pseudo constants and relocations, but that's best left for later and less likely to be useful
https://github.com/llvm/llvm-project/pull/184333
More information about the llvm-commits
mailing list