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.