@@ -640,51 +640,6 @@ bool SystemZInstrInfo::foldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
640
640
Register Reg,
641
641
MachineRegisterInfo *MRI) const {
642
642
unsigned DefOpc = DefMI.getOpcode();
643
-
644
- if (DefOpc == SystemZ::VGBM) {
645
- int64_t ImmVal = DefMI.getOperand(1).getImm();
646
- if (ImmVal != 0) // TODO: Handle other values
647
- return false;
648
-
649
- // Fold gr128 = COPY (vr128 VGBM imm)
650
- //
651
- // %tmp:gr64 = LGHI 0
652
- // to gr128 = REG_SEQUENCE %tmp, %tmp
653
- assert(DefMI.getOperand(0).getReg() == Reg);
654
-
655
- if (!UseMI.isCopy())
656
- return false;
657
-
658
- Register CopyDstReg = UseMI.getOperand(0).getReg();
659
- if (CopyDstReg.isVirtual() &&
660
- MRI->getRegClass(CopyDstReg) == &SystemZ::GR128BitRegClass &&
661
- MRI->hasOneNonDBGUse(Reg)) {
662
- // TODO: Handle physical registers
663
- // TODO: Handle gr64 uses with subregister indexes
664
- // TODO: Should this multi-use cases?
665
- Register TmpReg = MRI->createVirtualRegister(&SystemZ::GR64BitRegClass);
666
- MachineBasicBlock &MBB = *UseMI.getParent();
667
-
668
- // FIXME: probably should be DefMI's DebugLoc but this matches
669
- // loadImmediate's guessing
670
- const DebugLoc &DL = UseMI.getDebugLoc();
671
-
672
- loadImmediate(MBB, UseMI.getIterator(), TmpReg, ImmVal);
673
-
674
- BuildMI(MBB, UseMI.getIterator(), DL, get(SystemZ::REG_SEQUENCE),
675
- CopyDstReg)
676
- .addReg(TmpReg)
677
- .addImm(SystemZ::subreg_h64)
678
- .addReg(TmpReg)
679
- .addImm(SystemZ::subreg_l64);
680
-
681
- UseMI.eraseFromParent();
682
- return true;
683
- }
684
-
685
- return false;
686
- }
687
-
688
643
if (DefOpc != SystemZ::LHIMux && DefOpc != SystemZ::LHI &&
689
644
DefOpc != SystemZ::LGHI)
690
645
return false;
@@ -2282,16 +2237,3 @@ areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
2282
2237
2283
2238
return false;
2284
2239
}
2285
-
2286
- bool SystemZInstrInfo::getConstValDefinedInReg(const MachineInstr &MI,
2287
- const Register Reg,
2288
- int64_t &ImmVal) const {
2289
-
2290
- if (MI.getOpcode() == SystemZ::VGBM && Reg == MI.getOperand(0).getReg()) {
2291
- ImmVal = MI.getOperand(1).getImm();
2292
- // TODO: Handle non-0 values
2293
- return ImmVal == 0;
2294
- }
2295
-
2296
- return false;
2297
- }
0 commit comments