Lines Matching refs:MBBI

49   bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
52 MachineBasicBlock::iterator MBBI, AtomicRMWInst::BinOp,
56 MachineBasicBlock::iterator MBBI,
60 MachineBasicBlock::iterator MBBI, bool IsMasked,
97 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
98 while (MBBI != E) {
99 MachineBasicBlock::iterator NMBBI = std::next(MBBI);
100 Modified |= expandMI(MBB, MBBI, NMBBI);
101 MBBI = NMBBI;
108 MachineBasicBlock::iterator MBBI,
113 switch (MBBI->getOpcode()) {
115 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 32,
118 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 64,
121 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Xchg, true, 32,
124 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Add, true, 32, NextMBBI);
126 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Sub, true, 32, NextMBBI);
128 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, true, 32,
131 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Max, true, 32,
134 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Min, true, 32,
137 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::UMax, true, 32,
140 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::UMin, true, 32,
143 return expandAtomicCmpXchg(MBB, MBBI, false, 32, NextMBBI);
145 return expandAtomicCmpXchg(MBB, MBBI, false, 64, NextMBBI);
147 return expandAtomicCmpXchg(MBB, MBBI, true, 32, NextMBBI);
389 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
392 MachineInstr &MI = *MBBI;
439 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
446 MachineInstr &MI = *MBBI;
571 MachineBasicBlock::iterator MBBI,
577 if (MBBI == E)
579 MBBI = skipDebugInstructionsForward(MBBI, E);
583 if (MBBI == E || MBBI->getOpcode() != RISCV::AND)
585 Register ANDOp1 = MBBI->getOperand(1).getReg();
586 Register ANDOp2 = MBBI->getOperand(2).getReg();
591 DestReg = MBBI->getOperand(0).getReg();
592 ToErase.push_back(&*MBBI);
593 MBBI = skipDebugInstructionsForward(std::next(MBBI), E);
597 if (MBBI == E || MBBI->getOpcode() != RISCV::BNE)
599 Register BNEOp0 = MBBI->getOperand(0).getReg();
600 Register BNEOp1 = MBBI->getOperand(1).getReg();
607 if (BNEOp0 == DestReg && !MBBI->getOperand(0).isKill())
609 if (BNEOp1 == DestReg && !MBBI->getOperand(1).isKill())
613 ToErase.push_back(&*MBBI);
614 LoopHeadBNETarget = MBBI->getOperand(2).getMBB();
615 MBBI = skipDebugInstructionsForward(std::next(MBBI), E);
616 if (MBBI != E)
626 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, bool IsMasked,
628 MachineInstr &MI = *MBBI;
643 tryToFoldBNEOnCmpXchgResult(MBB, std::next(MBBI), DestReg, CmpValReg, MaskReg,