Lines Matching defs:VCTP
18 /// In addition to this, we also look for the presence of the VCTP instruction,
39 /// VPT, VCMP, VPNOT and VCTP won't overwrite VPR.P0 when they update it in a
255 // Return whether the given instruction is predicated upon a VCTP.
260 // We do not know how to convert an else predicate of a VCTP.
266 // Is the VPST, controlling the block entry, predicated upon a VCTP.
336 // We don't know how to convert a block with just a VPT;VCTP into
337 // anything valid once we remove the VCTP. For now just bail out.
416 // Given that MI is a VCTP, check that is equivalent to any other VCTPs
460 dbgs() << "ARM Loops: Found VCTP(s):\n";
604 dbgs() << "ARM Loops: Didn't find a VCTP instruction.\n";
609 assert(!VCTPs.empty() && "VCTP instruction expected but is not set");
632 MachineInstr *VCTP = VCTPs.back();
639 TPNumElements = VCTP->getOperand(1);
645 if (RDA.hasLocalDefBefore(VCTP, NumElements)) {
646 LLVM_DEBUG(dbgs() << "ARM Loops: VCTP operand is defined in the loop.\n");
733 // need to compute an output size that is smaller than the VCTP mask operates
735 // size it extends into, so any VCTP VecSize <= is valid.
736 unsigned VCTPVecSize = getVecSize(*VCTP);
740 LLVM_DEBUG(dbgs() << "ARM Loops: Double width result larger than VCTP "
754 MachineBasicBlock *MBB = VCTP->getParent();
760 &MBB->back(), VCTP->getOperand(1).getReg().asMCReg())) {
763 unsigned ExpectedVectorWidth = getTailPredVectorWidth(VCTP->getOpcode());
797 !RDA.hasLocalDefBefore(VCTP, VCTP->getOperand(1).getReg())) {
799 &Preheader->back(), VCTP->getOperand(1).getReg().asMCReg())) {
1037 // any VPT predicated instruction is predicated upon VCTP. Any live-out
1108 LLVM_DEBUG(dbgs() << "ARM Loops: Adding VCTP: " << *MI);
1114 // If we find another VCTP, check whether it uses the same value as the main VCTP.
1119 LLVM_DEBUG(dbgs() << "ARM Loops: Found VCTP with a different reaching "
1120 "definition from the main VCTP");
1489 // operand of the VCTP instruction in the vector body, see getCount(), which is