Lines Matching defs:VReg
294 std::optional<APInt> llvm::getIConstantVRegVal(Register VReg,
297 VReg, MRI, /*LookThroughInstrs*/ false);
298 assert((!ValAndVReg || ValAndVReg->VReg == VReg) &&
314 llvm::getIConstantVRegSExtVal(Register VReg, const MachineRegisterInfo &MRI) {
315 std::optional<APInt> Val = getIConstantVRegVal(VReg, MRI);
336 getConstantVRegValWithLookThrough(Register VReg, const MachineRegisterInfo &MRI,
342 while ((MI = MRI.getVRegDef(VReg)) && !IsConstantOpcode(MI) &&
355 VReg = MI->getOperand(1).getReg();
358 VReg = MI->getOperand(1).getReg();
359 if (VReg.isPhysical())
363 VReg = MI->getOperand(1).getReg();
390 return ValueAndVReg{std::move(Val), VReg};
434 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs) {
436 VReg, MRI, LookThroughInstrs);
440 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs,
444 VReg, MRI, LookThroughInstrs, LookThroughAnyExt);
448 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs) {
451 VReg, MRI, LookThroughInstrs);
454 return FPValueAndVReg{getConstantFPVRegVal(Reg->VReg, MRI)->getValueAPF(),
455 Reg->VReg};
459 llvm::getConstantFPVRegVal(Register VReg, const MachineRegisterInfo &MRI) {
460 MachineInstr *MI = MRI.getVRegDef(VReg);
1342 std::optional<ValueAndVReg> getAnyConstantSplat(Register VReg,
1345 MachineInstr *MI = getDefIgnoringCopies(VReg, MRI);
1388 return mi_match(SplatValAndReg->VReg, MRI, m_SpecificICst(SplatValue));
1404 getIConstantVRegValWithLookThrough(SplatValAndReg->VReg, MRI))
1422 return getIConstantVRegSExtVal(SplatValAndReg->VReg, MRI);
1433 llvm::getFConstantSplat(Register VReg, const MachineRegisterInfo &MRI,
1435 if (auto SplatValAndReg = getAnyConstantSplat(VReg, MRI, AllowUndef))
1436 return getFConstantVRegValWithLookThrough(SplatValAndReg->VReg, MRI);