LLVM API Documentation
Define some predicates that are used for node matching. More...
Functions | |
Predicate | InvertPredicate (Predicate Opcode) |
Invert the specified predicate. != -> ==, < -> >=. More... | |
Predicate | getSwappedPredicate (Predicate Opcode) |
bool | isVPKUHUMShuffleMask (ShuffleVectorSDNode *N, bool isUnary) |
bool | isVPKUWUMShuffleMask (ShuffleVectorSDNode *N, bool isUnary) |
bool | isVMRGLShuffleMask (ShuffleVectorSDNode *N, unsigned UnitSize, bool isUnary) |
bool | isVMRGHShuffleMask (ShuffleVectorSDNode *N, unsigned UnitSize, bool isUnary) |
int | isVSLDOIShuffleMask (SDNode *N, bool isUnary) |
bool | isSplatShuffleMask (ShuffleVectorSDNode *N, unsigned EltSize) |
bool | isAllNegativeZeroVector (SDNode *N) |
unsigned | getVSPLTImmediate (SDNode *N, unsigned EltSize) |
SDValue | get_VSPLTI_elt (SDNode *N, unsigned ByteSize, SelectionDAG &DAG) |
FastISel * | createFastISel (FunctionLoweringInfo &FuncInfo, const TargetLibraryInfo *LibInfo) |
Define some predicates that are used for node matching.
anonymous enum |
Enumerator | |
---|---|
DIR_NONE | |
DIR_32 | |
DIR_440 | |
DIR_601 | |
DIR_602 | |
DIR_603 | |
DIR_7400 | |
DIR_750 | |
DIR_970 | |
DIR_A2 | |
DIR_E500mc | |
DIR_E5500 | |
DIR_PWR3 | |
DIR_PWR4 | |
DIR_PWR5 | |
DIR_PWR5X | |
DIR_PWR6 | |
DIR_PWR6X | |
DIR_PWR7 | |
DIR_64 |
Definition at line 33 of file PPCSubtarget.h.
enum llvm::PPC::Fixups |
Definition at line 19 of file PPCFixupKinds.h.
enum llvm::PPC::Predicate |
Predicate - These are "(BI << 5) | BO" for various predicates.
Definition at line 27 of file PPCPredicates.h.
Enumerator | |
---|---|
reloc_vanilla | |
reloc_pcrel_bx | |
reloc_pcrel_bcx | |
reloc_absolute_high | |
reloc_absolute_low | |
reloc_absolute_low_ix |
Definition at line 27 of file PPCRelocations.h.
FastISel * llvm::PPC::createFastISel | ( | FunctionLoweringInfo & | FuncInfo, |
const TargetLibraryInfo * | LibInfo | ||
) |
Definition at line 2225 of file PPCFastISel.cpp.
References llvm::TargetMachine::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::PPCSubtarget::isPPC64(), llvm::PPCSubtarget::isSVR4ABI(), llvm::FunctionLoweringInfo::MF, and llvm::SystemZISD::TM.
Referenced by llvm::PPCTargetLowering::createFastISel().
SDValue llvm::PPC::get_VSPLTI_elt | ( | SDNode * | N, |
unsigned | ByteSize, | ||
SelectionDAG & | DAG | ||
) |
get_VSPLTI_elt - If this is a build_vector of constants which can be formed by using a vspltis[bhw] instruction of the specified element size, return the constant being splatted. The ByteSize field indicates the number of bytes of each element [124] -> [bhw].
Definition at line 885 of file PPCISelLowering.cpp.
References llvm::MVT::f32, llvm::FloatToBits(), llvm::SDValue::getNode(), llvm::SDNode::getNumOperands(), llvm::SDValue::getOpcode(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getTargetConstant(), llvm::MVT::i32, llvm::SignExtend32(), and llvm::ISD::UNDEF.
Assume the condition register is set by MI(a,b), return the predicate if we modify the instructions such that condition register is set by MI(b,a).
Referenced by llvm::PPCInstrInfo::optimizeCompareInstr(), and llvm::ICmpInst::swapOperands().
getVSPLTImmediate - Return the appropriate VSPLT* immediate to splat the specified isSplatShuffleMask VECTOR_SHUFFLE mask.
Definition at line 875 of file PPCISelLowering.cpp.
References llvm::ShuffleVectorSDNode::getMaskElt(), isSplatShuffleMask(), and N.
Invert the specified predicate. != -> ==, < -> >=.
Referenced by llvm::PPCInstrInfo::ReverseBranchCondition().
isAllNegativeZeroVector - Returns true if all elements of build_vector are -0.0.
Definition at line 859 of file PPCISelLowering.cpp.
References llvm::SDNode::getOperand(), llvm::BuildVectorSDNode::isConstantSplat(), and N.
bool llvm::PPC::isSplatShuffleMask | ( | ShuffleVectorSDNode * | N, |
unsigned | EltSize | ||
) |
isSplatShuffleMask - Return true if the specified VECTOR_SHUFFLE operand specifies a splat of a single element that is suitable for input to VSPLTB/VSPLTH/VSPLTW.
Definition at line 830 of file PPCISelLowering.cpp.
References llvm::ShuffleVectorSDNode::getMaskElt(), llvm::SDNode::getValueType(), and llvm::MVT::v16i8.
Referenced by getVSPLTImmediate().
bool llvm::PPC::isVMRGHShuffleMask | ( | ShuffleVectorSDNode * | N, |
unsigned | UnitSize, | ||
bool | isUnary | ||
) |
isVMRGHShuffleMask - Return true if this is a shuffle mask suitable for a VRGH* instruction with the specified unit size (1,2 or 4 bytes).
Definition at line 784 of file PPCISelLowering.cpp.
References isVMerge().
bool llvm::PPC::isVMRGLShuffleMask | ( | ShuffleVectorSDNode * | N, |
unsigned | UnitSize, | ||
bool | isUnary | ||
) |
isVMRGLShuffleMask - Return true if this is a shuffle mask suitable for a VRGL* instruction with the specified unit size (1,2 or 4 bytes).
Definition at line 775 of file PPCISelLowering.cpp.
References isVMerge().
bool llvm::PPC::isVPKUHUMShuffleMask | ( | ShuffleVectorSDNode * | N, |
bool | isUnary | ||
) |
isVPKUHUMShuffleMask - Return true if this is the shuffle mask for a VPKUHUM instruction.
Definition at line 720 of file PPCISelLowering.cpp.
References llvm::ShuffleVectorSDNode::getMaskElt(), and isConstantOrUndef().
bool llvm::PPC::isVPKUWUMShuffleMask | ( | ShuffleVectorSDNode * | N, |
bool | isUnary | ||
) |
isVPKUWUMShuffleMask - Return true if this is the shuffle mask for a VPKUWUM instruction.
Definition at line 736 of file PPCISelLowering.cpp.
References llvm::ShuffleVectorSDNode::getMaskElt(), and isConstantOrUndef().
isVSLDOIShuffleMask - If this is a vsldoi shuffle mask, return the shift amount, otherwise return -1.
Definition at line 794 of file PPCISelLowering.cpp.
References llvm::ShuffleVectorSDNode::getMaskElt(), llvm::SDNode::getValueType(), isConstantOrUndef(), N, and llvm::MVT::v16i8.