Lines Matching defs:VCMP
39 /// VPT, VCMP, VPNOT and VCTP won't overwrite VPR.P0 when they update it in a
1579 assert(TheVCMP && "Replacing a removed or non-existent VCMP");
1580 // Replace the VCMP with a VPT
1591 LLVM_DEBUG(dbgs() << "ARM Loops: Combining with VCMP to VPT: " << *MIB);
1631 MachineInstr *VCMP =
1636 // would actually use it. A VCMP following a VPST can be
1637 // merged into a VPT so do that instead if the VCMP exists.
1638 if (!VCMP) {
1649 // directly after the VCMP
1650 ReplaceVCMPWithVPT(VCMP, VCMP);
1668 // preceeding un-merged VCMP into a VPT. This VCMP comes from a VPT
1678 MachineInstr *VCMP = VprDef;
1679 // The VCMP and VPST can only be merged if the VCMP's operands will have
1681 // If any of the instructions between the VCMP and VPST are predicated
1682 // then a different code path is expected to have merged the VCMP and
1684 if (std::none_of(++MachineBasicBlock::iterator(VCMP),
1686 RDA->hasSameReachingDef(VCMP, VPST, VCMP->getOperand(1).getReg()) &&
1687 RDA->hasSameReachingDef(VCMP, VPST, VCMP->getOperand(2).getReg())) {
1688 ReplaceVCMPWithVPT(VCMP, VPST);