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