Lines Matching defs:VReg

295 std::optional<APInt> llvm::getIConstantVRegVal(Register VReg,
298 VReg, MRI, /*LookThroughInstrs*/ false);
299 assert((!ValAndVReg || ValAndVReg->VReg == VReg) &&
307 llvm::getIConstantVRegSExtVal(Register VReg, const MachineRegisterInfo &MRI) {
308 std::optional<APInt> Val = getIConstantVRegVal(VReg, MRI);
329 getConstantVRegValWithLookThrough(Register VReg, const MachineRegisterInfo &MRI,
335 while ((MI = MRI.getVRegDef(VReg)) && !IsConstantOpcode(MI) &&
348 VReg = MI->getOperand(1).getReg();
351 VReg = MI->getOperand(1).getReg();
352 if (VReg.isPhysical())
356 VReg = MI->getOperand(1).getReg();
383 return ValueAndVReg{std::move(Val), VReg};
427 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs) {
429 VReg, MRI, LookThroughInstrs);
433 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs,
437 VReg, MRI, LookThroughInstrs, LookThroughAnyExt);
441 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs) {
444 VReg, MRI, LookThroughInstrs);
447 return FPValueAndVReg{getConstantFPVRegVal(Reg->VReg, MRI)->getValueAPF(),
448 Reg->VReg};
452 llvm::getConstantFPVRegVal(Register VReg, const MachineRegisterInfo &MRI) {
453 MachineInstr *MI = MRI.getVRegDef(VReg);
1335 std::optional<ValueAndVReg> getAnyConstantSplat(Register VReg,
1338 MachineInstr *MI = getDefIgnoringCopies(VReg, MRI);
1381 return mi_match(SplatValAndReg->VReg, MRI, m_SpecificICst(SplatValue));
1397 getIConstantVRegValWithLookThrough(SplatValAndReg->VReg, MRI))
1415 return getIConstantVRegSExtVal(SplatValAndReg->VReg, MRI);
1426 llvm::getFConstantSplat(Register VReg, const MachineRegisterInfo &MRI,
1428 if (auto SplatValAndReg = getAnyConstantSplat(VReg, MRI, AllowUndef))
1429 return getFConstantVRegValWithLookThrough(SplatValAndReg->VReg, MRI);