LLVM
15.0.0git
|
Classes | |
struct | CvtF32UByteMatchInfo |
struct | FMinFMaxLegacyInfo |
Public Member Functions | |
AMDGPUPostLegalizerCombinerHelper (MachineIRBuilder &B, AMDGPUCombinerHelper &Helper) | |
bool | matchFMinFMaxLegacy (MachineInstr &MI, FMinFMaxLegacyInfo &Info) |
void | applySelectFCmpToFMinToFMaxLegacy (MachineInstr &MI, const FMinFMaxLegacyInfo &Info) |
bool | matchUCharToFloat (MachineInstr &MI) |
void | applyUCharToFloat (MachineInstr &MI) |
bool | matchRcpSqrtToRsq (MachineInstr &MI, std::function< void(MachineIRBuilder &)> &MatchInfo) |
bool | matchCvtF32UByteN (MachineInstr &MI, CvtF32UByteMatchInfo &MatchInfo) |
void | applyCvtF32UByteN (MachineInstr &MI, const CvtF32UByteMatchInfo &MatchInfo) |
bool | matchRemoveFcanonicalize (MachineInstr &MI, Register &Reg) |
Protected Attributes | |
MachineIRBuilder & | B |
MachineFunction & | MF |
MachineRegisterInfo & | MRI |
AMDGPUCombinerHelper & | Helper |
Definition at line 34 of file AMDGPUPostLegalizerCombiner.cpp.
|
inline |
Definition at line 42 of file AMDGPUPostLegalizerCombiner.cpp.
void AMDGPUPostLegalizerCombinerHelper::applyCvtF32UByteN | ( | MachineInstr & | MI, |
const CvtF32UByteMatchInfo & | MatchInfo | ||
) |
Definition at line 280 of file AMDGPUPostLegalizerCombiner.cpp.
References assert(), B, AMDGPUPostLegalizerCombinerHelper::CvtF32UByteMatchInfo::CvtVal, llvm::LLT::getSizeInBits(), llvm::MachineRegisterInfo::getType(), llvm::LLT::isScalar(), MI, MRI, llvm::LLT::scalar(), and AMDGPUPostLegalizerCombinerHelper::CvtF32UByteMatchInfo::ShiftOffset.
void AMDGPUPostLegalizerCombinerHelper::applySelectFCmpToFMinToFMaxLegacy | ( | MachineInstr & | MI, |
const FMinFMaxLegacyInfo & | Info | ||
) |
Definition at line 118 of file AMDGPUPostLegalizerCombiner.cpp.
References B, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, Info, llvm_unreachable, MI, X, and Y.
void AMDGPUPostLegalizerCombinerHelper::applyUCharToFloat | ( | MachineInstr & | MI | ) |
Definition at line 186 of file AMDGPUPostLegalizerCombiner.cpp.
References B, llvm::MachineRegisterInfo::getType(), MI, MRI, and llvm::LLT::scalar().
bool AMDGPUPostLegalizerCombinerHelper::matchCvtF32UByteN | ( | MachineInstr & | MI, |
CvtF32UByteMatchInfo & | MatchInfo | ||
) |
Definition at line 252 of file AMDGPUPostLegalizerCombiner.cpp.
References AMDGPUPostLegalizerCombinerHelper::CvtF32UByteMatchInfo::CvtVal, llvm::MIPatternMatch::m_GLShr(), llvm::MIPatternMatch::m_GShl(), llvm::MIPatternMatch::m_GZExt(), llvm::MIPatternMatch::m_ICst(), llvm::MIPatternMatch::m_Reg(), MI, llvm::MIPatternMatch::mi_match(), MRI, and AMDGPUPostLegalizerCombinerHelper::CvtF32UByteMatchInfo::ShiftOffset.
bool AMDGPUPostLegalizerCombinerHelper::matchFMinFMaxLegacy | ( | MachineInstr & | MI, |
FMinFMaxLegacyInfo & | Info | ||
) |
Definition at line 79 of file AMDGPUPostLegalizerCombiner.cpp.
References Cond, llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::MachineFunction::getSubtarget(), llvm::MachineRegisterInfo::getType(), llvm::AMDGPUSubtarget::hasFminFmaxLegacy(), llvm::MachineRegisterInfo::hasOneNonDBGUse(), Info, llvm::MIPatternMatch::m_GFCmp(), llvm::MIPatternMatch::m_Pred(), llvm::MIPatternMatch::m_Reg(), MI, llvm::MIPatternMatch::mi_match(), MRI, and llvm::LLT::scalar().
bool AMDGPUPostLegalizerCombinerHelper::matchRcpSqrtToRsq | ( | MachineInstr & | MI, |
std::function< void(MachineIRBuilder &)> & | MatchInfo | ||
) |
Definition at line 210 of file AMDGPUPostLegalizerCombiner.cpp.
References B, llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MIPatternMatch::m_GFSqrt(), llvm::MIPatternMatch::m_MInstr(), MI, llvm::MIPatternMatch::mi_match(), and MRI.
bool AMDGPUPostLegalizerCombinerHelper::matchRemoveFcanonicalize | ( | MachineInstr & | MI, |
Register & | Reg | ||
) |
Definition at line 298 of file AMDGPUPostLegalizerCombiner.cpp.
References llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::SITargetLowering::isCanonicalized(), and MI.
bool AMDGPUPostLegalizerCombinerHelper::matchUCharToFloat | ( | MachineInstr & | MI | ) |
Definition at line 167 of file AMDGPUPostLegalizerCombiner.cpp.
References assert(), llvm::APInt::getHighBitsSet(), llvm::CombinerHelper::getKnownBits(), llvm::LLT::getSizeInBits(), llvm::MachineRegisterInfo::getType(), llvm::BitmaskEnumDetail::Mask(), llvm::GISelKnownBits::maskedValueIsZero(), MI, MRI, and llvm::LLT::scalar().
|
protected |
Definition at line 36 of file AMDGPUPostLegalizerCombiner.cpp.
|
protected |
Definition at line 39 of file AMDGPUPostLegalizerCombiner.cpp.
|
protected |
Definition at line 37 of file AMDGPUPostLegalizerCombiner.cpp.
|
protected |
Definition at line 38 of file AMDGPUPostLegalizerCombiner.cpp.