@@ -167,7 +167,9 @@ MachineOperand *GCNDPPCombine::getOldOpndValue(MachineOperand &OldOpnd) const {
167
167
return nullptr ;
168
168
case AMDGPU::COPY:
169
169
case AMDGPU::V_MOV_B32_e32:
170
- case AMDGPU::V_MOV_B64_PSEUDO: {
170
+ case AMDGPU::V_MOV_B64_PSEUDO:
171
+ case AMDGPU::V_MOV_B64_e32:
172
+ case AMDGPU::V_MOV_B64_e64: {
171
173
auto &Op1 = Def->getOperand (1 );
172
174
if (Op1.isImm ())
173
175
return &Op1;
@@ -183,6 +185,7 @@ MachineInstr *GCNDPPCombine::createDPPInst(MachineInstr &OrigMI,
183
185
bool CombBCZ,
184
186
bool IsShrinkable) const {
185
187
assert (MovMI.getOpcode () == AMDGPU::V_MOV_B32_dpp ||
188
+ MovMI.getOpcode () == AMDGPU::V_MOV_B64_dpp ||
186
189
MovMI.getOpcode () == AMDGPU::V_MOV_B64_DPP_PSEUDO);
187
190
188
191
auto OrigOp = OrigMI.getOpcode ();
@@ -383,6 +386,7 @@ bool GCNDPPCombine::hasNoImmOrEqual(MachineInstr &MI, unsigned OpndName,
383
386
384
387
bool GCNDPPCombine::combineDPPMov (MachineInstr &MovMI) const {
385
388
assert (MovMI.getOpcode () == AMDGPU::V_MOV_B32_dpp ||
389
+ MovMI.getOpcode () == AMDGPU::V_MOV_B64_dpp ||
386
390
MovMI.getOpcode () == AMDGPU::V_MOV_B64_DPP_PSEUDO);
387
391
LLVM_DEBUG (dbgs () << " \n DPP combine: " << MovMI);
388
392
@@ -399,7 +403,8 @@ bool GCNDPPCombine::combineDPPMov(MachineInstr &MovMI) const {
399
403
return false ;
400
404
}
401
405
402
- if (MovMI.getOpcode () == AMDGPU::V_MOV_B64_DPP_PSEUDO) {
406
+ if (MovMI.getOpcode () == AMDGPU::V_MOV_B64_DPP_PSEUDO ||
407
+ MovMI.getOpcode () == AMDGPU::V_MOV_B64_dpp) {
403
408
auto *DppCtrl = TII->getNamedOperand (MovMI, AMDGPU::OpName::dpp_ctrl);
404
409
assert (DppCtrl && DppCtrl->isImm ());
405
410
if (!AMDGPU::isLegal64BitDPPControl (DppCtrl->getImm ())) {
@@ -616,7 +621,8 @@ bool GCNDPPCombine::runOnMachineFunction(MachineFunction &MF) {
616
621
if (MI.getOpcode () == AMDGPU::V_MOV_B32_dpp && combineDPPMov (MI)) {
617
622
Changed = true ;
618
623
++NumDPPMovsCombined;
619
- } else if (MI.getOpcode () == AMDGPU::V_MOV_B64_DPP_PSEUDO) {
624
+ } else if (MI.getOpcode () == AMDGPU::V_MOV_B64_DPP_PSEUDO ||
625
+ MI.getOpcode () == AMDGPU::V_MOV_B64_dpp) {
620
626
if (ST->has64BitDPP () && combineDPPMov (MI)) {
621
627
Changed = true ;
622
628
++NumDPPMovsCombined;
0 commit comments