|
LLVM 24.0.0git
|
#include "llvm/CodeGenTypes/LowLevelType.h"
Public Types | |
| enum class | Kind : uint8_t { INVALID , ANY_SCALAR , INTEGER , FLOAT , POINTER , VECTOR_ANY , VECTOR_INTEGER , VECTOR_FLOAT , VECTOR_POINTER } |
| using | FpSemantics = APFloat::Semantics |
Public Member Functions | |
| constexpr | LLT (Kind Info, ElementCount EC, uint64_t SizeInBits) |
| constexpr | LLT (Kind Info, ElementCount EC, uint64_t SizeInBits, unsigned AddressSpace) |
| constexpr | LLT (Kind Info, ElementCount EC, uint64_t SizeInBits, FpSemantics Sem) |
| LLVM_ABI | LLT (MVT VT) |
| constexpr | LLT () |
| constexpr bool | isToken () const |
| constexpr bool | isValid () const |
| constexpr bool | isAnyScalar () const |
| constexpr bool | isInteger () const |
| constexpr bool | isFloat () const |
| constexpr bool | isPointer () const |
| constexpr bool | isAnyVector () const |
| constexpr bool | isIntegerVector () const |
| constexpr bool | isFloatVector () const |
| constexpr bool | isPointerVector () const |
| constexpr bool | isPointerOrPointerVector () const |
| constexpr bool | isFloatOrFloatVector () const |
| constexpr bool | isScalar () const |
| constexpr bool | isScalar (unsigned Size) const |
| constexpr bool | isVector () const |
| constexpr bool | isInteger (unsigned Size) const |
| constexpr bool | isFloat (unsigned Size) const |
| constexpr bool | isFloat (FpSemantics Sem) const |
| constexpr bool | isFloatIEEE () const |
| bool | isFloat16 () const |
| bool | isFloat32 () const |
| bool | isFloat64 () const |
| bool | isFloat128 () const |
| bool | isBFloat16 () const |
| bool | isX86FP80 () const |
| bool | isPPCF128 () const |
| constexpr uint16_t | getNumElements () const |
| Returns the number of elements in a vector LLT. | |
| constexpr bool | isScalable () const |
| Returns true if the LLT is a scalable vector. | |
| constexpr bool | isFixedVector () const |
| Returns true if the LLT is a fixed vector. | |
| constexpr bool | isFixedVector (unsigned NumElements, unsigned ScalarSize) const |
| constexpr bool | isScalableVector () const |
| Returns true if the LLT is a scalable vector. | |
| constexpr ElementCount | getElementCount () const |
| constexpr TypeSize | getSizeInBits () const |
| Returns the total size of the type. Must only be called on sized types. | |
| constexpr TypeSize | getSizeInBytes () const |
| Returns the total size of the type in bytes, i.e. | |
| LLT | getScalarType () const |
| constexpr FpSemantics | getFpSemantics () const |
| constexpr Kind | getKind () const |
| constexpr LLT | changeVectorElementType (LLT NewEltTy) const |
| Returns a vector with the same number of elements but the new element type. | |
| constexpr LLT | changeElementType (LLT NewEltTy) const |
| If this type is a vector, return a vector with the same number of elements but the new element type. | |
| LLT | changeElementSize (unsigned NewEltSize) const |
| If this type is a vector, return a vector with the same number of elements but the new element size. | |
| LLT | changeVectorElementCount (ElementCount EC) const |
| Return a vector with the same element type and the new element count. | |
| LLT | changeElementCount (ElementCount EC) const |
| Return a vector or scalar with the same element type and the new element count. | |
| LLT | changeElementCount (unsigned NumElements) const |
| LLT | divide (int Factor) const |
Return a type that is Factor times smaller. | |
| LLT | multiplyElements (int Factor) const |
Produce a vector type that is Factor times bigger, preserving the element type. | |
| constexpr bool | isByteSized () const |
| constexpr unsigned | getScalarSizeInBits () const |
| constexpr unsigned | getAddressSpace () const |
| LLT | getElementType () const |
| Returns the vector's element type. Only valid for vector types. | |
| LLT | changeToInteger () const |
| LLVM_ABI void | print (raw_ostream &OS) const |
| LLVM_DUMP_METHOD void | dump () const |
| bool | operator== (const LLT &RHS) const |
| bool | operator!= (const LLT &RHS) const |
| constexpr uint64_t | getUniqueRAWLLTData () const |
Static Public Member Functions | |
| static constexpr Kind | toVector (Kind Ty) |
| static constexpr Kind | toScalar (Kind Ty) |
| static constexpr LLT | scalar (unsigned SizeInBits) |
| Get a low-level scalar or aggregate "bag of bits". | |
| static LLT | integer (unsigned SizeInBits) |
| static LLT | floatingPoint (const FpSemantics &Sem) |
| static constexpr LLT | token () |
| Get a low-level token; just a scalar with zero bits (or no size). | |
| static constexpr LLT | pointer (unsigned AddressSpace, unsigned SizeInBits) |
| Get a low-level pointer in the given address space. | |
| static constexpr LLT | vector (ElementCount EC, unsigned ScalarSizeInBits) |
| Get a low-level vector of some number of elements and element width. | |
| static constexpr LLT | vector (ElementCount EC, LLT ScalarTy) |
| Get a low-level vector of some number of elements and element type. | |
| static LLT | floatIEEE (unsigned SizeInBits) |
| static constexpr LLT | bfloat16 () |
| static constexpr LLT | float16 () |
| Get a 16-bit IEEE half value. | |
| static constexpr LLT | float32 () |
| Get a 32-bit IEEE float value. | |
| static constexpr LLT | float64 () |
| Get a 64-bit IEEE double value. | |
| static constexpr LLT | x86fp80 () |
| Get a 80-bit X86 floating point value. | |
| static constexpr LLT | float128 () |
| Get a 128-bit IEEE quad value. | |
| static constexpr LLT | ppcf128 () |
| Get a 128-bit PowerPC double double value. | |
| static constexpr LLT | fixed_vector (unsigned NumElements, unsigned ScalarSizeInBits) |
| Get a low-level fixed-width vector of some number of elements and element width. | |
| static constexpr LLT | fixed_vector (unsigned NumElements, LLT ScalarTy) |
| Get a low-level fixed-width vector of some number of elements and element type. | |
| static constexpr LLT | scalable_vector (unsigned MinNumElements, unsigned ScalarSizeInBits) |
| Get a low-level scalable vector of some number of elements and element width. | |
| static constexpr LLT | scalable_vector (unsigned MinNumElements, LLT ScalarTy) |
| Get a low-level scalable vector of some number of elements and element type. | |
| static constexpr LLT | scalarOrVector (ElementCount EC, LLT ScalarTy) |
| static constexpr LLT | scalarOrVector (ElementCount EC, uint64_t ScalarSize) |
| static bool | getUseExtended () |
| static void | setUseExtended (bool Enable) |
Friends | |
| struct | DenseMapInfo< LLT > |
| class | GISelInstProfileBuilder |
Definition at line 46 of file LowLevelType.h.
Definition at line 48 of file LowLevelType.h.
|
strong |
| Enumerator | |
|---|---|
| INVALID | |
| ANY_SCALAR | |
| INTEGER | |
| FLOAT | |
| POINTER | |
| VECTOR_ANY | |
| VECTOR_INTEGER | |
| VECTOR_FLOAT | |
| VECTOR_POINTER | |
Definition at line 50 of file LowLevelType.h.
|
inlineexplicitconstexpr |
Definition at line 240 of file LowLevelType.h.
References LLT(), and uint64_t.
Referenced by bfloat16(), changeElementCount(), changeElementCount(), changeElementSize(), changeElementType(), changeToInteger(), changeVectorElementCount(), changeVectorElementType(), DenseMapInfo< LLT >, divide(), fixed_vector(), fixed_vector(), float128(), float16(), float32(), float64(), floatIEEE(), floatingPoint(), getElementType(), getScalarType(), integer(), LLT(), LLT(), LLT(), multiplyElements(), operator==(), pointer(), ppcf128(), scalable_vector(), scalable_vector(), scalar(), scalarOrVector(), scalarOrVector(), token(), vector(), vector(), and x86fp80().
|
inlineexplicitconstexpr |
Definition at line 245 of file LowLevelType.h.
|
inlineexplicitconstexpr |
Definition at line 251 of file LowLevelType.h.
|
explicit |
Definition at line 42 of file LowLevelType.cpp.
References ANY_SCALAR, FLOAT, llvm::ElementCount::getFixed(), getFpSemanticsForMVT(), llvm::MVT::getSizeInBits(), getUseExtended(), llvm::MVT::getVectorElementCount(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorMinNumElements(), INTEGER, INVALID, llvm::MVT::isFloatingPoint(), llvm::MVT::isScalableTargetExtVT(), llvm::MVT::isScalableVector(), llvm::MVT::isValid(), llvm::MVT::isVector(), VECTOR_ANY, VECTOR_FLOAT, and VECTOR_INTEGER.
|
inlineexplicitconstexpr |
Definition at line 258 of file LowLevelType.h.
|
inlinestaticconstexpr |
Definition at line 164 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::getLLTForType(), llvm::LegalizerHelper::lowerFPTRUNC_F32_TO_BF16(), and llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_BF16().
|
inline |
Return a vector or scalar with the same element type and the new element count.
Definition at line 454 of file LowLevelType.h.
References getScalarType(), LLT(), and scalarOrVector().
Referenced by llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::CallLowering::buildCopyFromRegs(), changeElementCount(), llvm::LegalizeMutations::changeElementCountTo(), llvm::LegalizeMutations::changeElementCountTo(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), getNarrowTypeBreakDown(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), llvm::LegalizerHelper::lowerEXT(), llvm::LegalizerHelper::lowerTRUNC(), makeDstOps(), llvm::LegalizerHelper::moreElementsVector(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), and widenToNextPowerOf2().
Definition at line 458 of file LowLevelType.h.
References changeElementCount(), llvm::ElementCount::getFixed(), and LLT().
If this type is a vector, return a vector with the same number of elements but the new element size.
Otherwise, return the new element type. Invalid for pointer types. For these, use changeElementType.
Definition at line 428 of file LowLevelType.h.
References assert(), changeElementSize(), floatIEEE(), getElementCount(), getElementType(), integer(), isFloatIEEE(), isInteger(), isPointerOrPointerVector(), isVector(), LLT(), scalar(), and vector().
Referenced by llvm::CombinerHelper::applyCombineShiftToUnmerge(), changeElementSize(), llvm::LegalizeMutations::changeElementSizeTo(), llvm::LegalizeMutations::changeElementSizeTo(), generateAssignInstrs(), getMidVTForTruncRightShiftCombine(), llvm::SITargetLowering::getPreferredShiftAmountTy(), llvm::LegalizerHelper::getVectorElementPointer(), llvm::LegalizerHelper::lowerAddSubSatToAddoSubo(), llvm::LegalizerHelper::lowerEXT(), loweri64tof16ITOFP(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerMulfix(), llvm::LegalizerHelper::lowerShlSat(), llvm::LegalizerHelper::lowerSMULH_UMULH(), llvm::LegalizerHelper::lowerThreewayCompare(), llvm::LegalizerHelper::lowerTRUNC(), llvm::CombinerHelper::matchSDivOrSRemByConst(), llvm::CombinerHelper::matchUDivOrURemByConst(), llvm::LegalizerHelper::narrowScalarShift(), widenToNextPowerOf2(), and llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize().
If this type is a vector, return a vector with the same number of elements but the new element type.
Otherwise, return the new element type.
Definition at line 421 of file LowLevelType.h.
References changeVectorElementType(), isVector(), and LLT().
Referenced by llvm::CombinerHelper::applyUseVectorTruncate(), llvm::LegalizerHelper::bitcastShuffleVector(), llvm::CallLowering::buildCopyFromRegs(), llvm::LegalizeMutations::changeElementTo(), llvm::LegalizeMutations::changeElementTo(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerFAbs(), llvm::LegalizerHelper::lowerFCopySign(), llvm::LegalizerHelper::lowerFFloor(), llvm::LegalizerHelper::lowerFMinimumMaximum(), llvm::LegalizerHelper::lowerFMODF(), llvm::LegalizerHelper::lowerFPEXT_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F32_TO_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_BF16(), llvm::LegalizerHelper::lowerIntrinsicRound(), llvm::LegalizerHelper::lowerISFPCLASS(), llvm::LegalizerHelper::lowerMinMax(), llvm::LegalizerHelper::lowerRoundInexactToOdd(), llvm::LegalizerHelper::lowerSelect(), llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(), llvm::CombinerHelper::matchUseVectorTruncate(), mergeVectorRegsToResultRegs(), llvm::LegalizerHelper::moreElementsVector(), llvm::LegalizerHelper::narrowScalar(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 524 of file LowLevelType.h.
References getElementCount(), getScalarSizeInBits(), getSizeInBits(), integer(), isPointer(), isPointerVector(), isVector(), LLT(), and vector().
|
inline |
Return a vector with the same element type and the new element count.
Must be called on vector types.
Definition at line 446 of file LowLevelType.h.
References assert(), getElementType(), isVector(), LLT(), and vector().
Referenced by llvm::LegalizerHelper::equalizeVectorShuffleLengths(), llvm::LegalizerHelper::fewerElementsBitcast(), llvm::LegalizerHelper::lowerBitcast(), and llvm::LegalizerHelper::lowerLoad().
Returns a vector with the same number of elements but the new element type.
Must only be called on vector types.
Definition at line 415 of file LowLevelType.h.
References getElementCount(), LLT(), and vector().
Referenced by changeElementType(), llvm::LegalizerHelper::moreElementsVector(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Return a type that is Factor times smaller.
Reduces the number of elements if this is a vector, or the bitwidth for scalar/pointers. Does not attempt to handle cases that aren't evenly divisible.
Definition at line 465 of file LowLevelType.h.
References assert(), getElementCount(), getElementType(), getScalarSizeInBits(), integer(), isFloat(), isInteger(), isScalar(), isVector(), LLT(), scalar(), and scalarOrVector().
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingLoad().
| LLVM_DUMP_METHOD void LLT::dump | ( | ) | const |
Definition at line 107 of file LowLevelType.cpp.
References llvm::dbgs(), LLVM_DUMP_METHOD, and print().
Get a low-level fixed-width vector of some number of elements and element type.
Definition at line 212 of file LowLevelType.h.
References llvm::ElementCount::getFixed(), LLT(), and vector().
|
inlinestaticconstexpr |
Get a low-level fixed-width vector of some number of elements and element width.
Definition at line 204 of file LowLevelType.h.
References llvm::ElementCount::getFixed(), LLT(), scalar(), and vector().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::AArch64TargetLowering::allowsMisalignedMemoryAccesses(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::CombinerHelper::applyCombineBuildVectorOfBitcast(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::CallLowering::buildCopyFromRegs(), llvm::LegalizeRuleSet::clampMinNumElements(), convertImageAddrToPacked(), llvm::extractParts(), llvm::extractVectorParts(), llvm::generateBuiltinVar(), llvm::generateGroupInst(), llvm::generateImageSizeQueryInst(), llvm::genWorkgroupQuery(), getBitcastRegisterType(), getBufferRsrcRegisterType(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::AArch64TargetLowering::getOptimalMemOpLLT(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), getReadAnyLaneSplitTy(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPURegisterBankInfo::handleD16VData(), llvm::AMDGPUCallLowering::handleImplicitCallArguments(), isExtractHiElt(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBVHDualOrBVH8IntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), LLTToBId(), LLTToId(), llvm::LegalizerHelper::lowerBitreverse(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), matchUniformityAndLLT(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), moreElementsToNextExistingRegClass(), llvm::LegalizeMutations::moreElementsToNextPow2(), moreEltsToNext32Bit(), multiplyElements(), oneMoreElement(), packImage16bitOpsToDwords(), llvm::PPCLegalizerInfo::PPCLegalizerInfo(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), widen96To128(), llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
|
inlinestaticconstexpr |
Get a 128-bit IEEE quad value.
Definition at line 191 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), floatIEEE(), and llvm::getLLTForType().
|
inlinestaticconstexpr |
Get a 16-bit IEEE half value.
Definition at line 169 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPUCombinerHelper::applyExpandPromotedF16FMed3(), floatIEEE(), llvm::getLLTForType(), isFPExtFromF16OrConst(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(), and llvm::AMDGPUCombinerHelper::matchExpandPromotedF16FMed3().
|
inlinestaticconstexpr |
Get a 32-bit IEEE float value.
Definition at line 174 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), floatIEEE(), llvm::getLLTForType(), llvm::LegalizerHelper::lowerFPEXT_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F32_TO_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(), and llvm::AMDGPUCombinerHelper::matchExpandPromotedF16FMed3().
|
inlinestaticconstexpr |
Get a 64-bit IEEE double value.
Definition at line 179 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), floatIEEE(), llvm::getLLTForType(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), and llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp().
Definition at line 145 of file LowLevelType.h.
References float128(), float16(), float32(), float64(), getUseExtended(), LLT(), llvm_unreachable, and scalar().
Referenced by changeElementSize(), llvm::AArch64TargetLowering::getOptimalMemOpLLT(), loweri64tof16ITOFP(), and llvm::WebAssemblyLegalizerInfo::WebAssemblyLegalizerInfo().
|
inlinestatic |
Definition at line 100 of file LowLevelType.h.
References llvm::APFloatBase::EnumToSemantics(), FLOAT, llvm::ElementCount::getFixed(), llvm::APFloatBase::getSizeInBits(), getUseExtended(), LLT(), and scalar().
Referenced by getElementType().
|
inlineconstexpr |
Definition at line 503 of file LowLevelType.h.
References assert(), and isPointerOrPointerVector().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::LegalizerHelper::createMemLibcall(), getElementType(), llvm::SIInstrInfo::getGenericValueUniformity(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::AMDGPURegisterBankInfo::getInstrMappingForLoad(), llvm::AMDGPURegisterBankInfo::getValueMappingForPtr(), llvm::CallLowering::handleAssignments(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::AMDGPULegalizerInfo::legalizeLoad(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), llvm::LegalizerHelper::lowerInsert(), print(), and vector().
|
inlineconstexpr |
Definition at line 381 of file LowLevelType.h.
References assert(), llvm::ElementCount::get(), isScalable(), and isVector().
Referenced by llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastInsertSubvector(), llvm::LegalizerHelper::bitcastShuffleVector(), llvm::CallLowering::buildCopyFromRegs(), llvm::CallLowering::buildCopyToRegs(), llvm::MachineIRBuilder::buildInstr(), canCreateUndefOrPoison(), llvm::LegalizeMutations::changeElementCountTo(), changeElementSize(), changeToInteger(), changeVectorElementType(), llvm::GISelValueTracking::computeKnownBitsImpl(), divide(), llvm::LegalizerHelper::fewerElementsVector(), generateAssignInstrs(), llvm::getCoverTy(), llvm::getLCMType(), getMaskTypeFor(), getNumElements(), getSizeInBits(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), llvm::LegalizerHelper::lowerEXT(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::LegalizerHelper::moreElementsVector(), multiplyElements(), mutationIsSane(), operator==(), print(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateTruncExt(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Returns the vector's element type. Only valid for vector types.
Definition at line 510 of file LowLevelType.h.
References assert(), floatingPoint(), getAddressSpace(), getFpSemantics(), getScalarSizeInBits(), integer(), isFloatVector(), isIntegerVector(), isPointerVector(), isVector(), LLT(), pointer(), and scalar().
Referenced by llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertSubvector(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::MachineIRBuilder::buildBuildVectorConstant(), llvm::CallLowering::buildCopyFromRegs(), llvm::CallLowering::buildCopyToRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::MachineIRBuilder::buildStepVector(), changeElementSize(), changeVectorElementCount(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizeRuleSet::clampNumElements(), divide(), llvm::LegalityPredicates::elementTypeIs(), elementTypeIsLegal(), llvm::LegalizerHelper::equalizeVectorShuffleLengths(), llvm::extractParts(), llvm::extractVectorParts(), llvm::LegalizerHelper::fewerElementsBitcast(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), fewerEltsToSize64Vector(), llvm::getCoverTy(), llvm::getGCDType(), llvm::getLCMType(), getLMUL1Ty(), getReadAnyLaneSplitTy(), getScalarType(), llvm::LegalizerHelper::getVectorElementPointer(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPURegisterBankInfo::handleD16VData(), hasBufferRsrcWorkaround(), llvm::CombinerHelper::isConstantLegalOrBeforeLegalizer(), isFPIntrinsic(), isRegisterType(), isSmallOddVector(), llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), legalizeLoad(), legalizeSpvConstComposite(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), legalizeStore(), llvm::LegalizerHelper::lowerBitcast(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::LegalizeMutations::moreElementsToNextPow2(), llvm::LegalizerHelper::moreElementsVector(), moreEltsToNext32Bit(), multiplyElements(), oneMoreElement(), operator==(), print(), registerSpirvTypeForNewInstructions(), llvm::LegalizerHelper::scalarizeVectorBooleanStore(), splitUnequalType(), widen96To128(), llvm::LegalizerHelper::widenScalar(), and llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize().
|
inlineconstexpr |
Definition at line 405 of file LowLevelType.h.
References assert(), isFloat(), and isFloatVector().
Referenced by getElementType(), isFloat(), and vector().
|
inlineconstexpr |
Definition at line 411 of file LowLevelType.h.
|
inlineconstexpr |
Returns the number of elements in a vector LLT.
Must only be called on vector types.
Definition at line 351 of file LowLevelType.h.
References getElementCount(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), isScalable(), and llvm::reportFatalInternalError().
Referenced by llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::CombinerHelper::applyUseVectorTruncate(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::CallLowering::buildCopyFromRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegalizeRuleSet::clampNumElements(), clampVectorIndex(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::GISelValueTracking::computeNumSignBits(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), llvm::extractParts(), llvm::extractVectorParts(), llvm::LegalizerHelper::fewerElementsVector(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), generateAssignInstrs(), getPow2VectorType(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPURegisterBankInfo::handleD16VData(), hasSameNumEltsOnAllVectorOperands(), isFixedVector(), llvm::GISelValueTracking::isKnownNeverZero(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), legalizeLoad(), legalizeSpvConstComposite(), legalizeStore(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerTRUNC(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineShuffleConcat(), llvm::CombinerHelper::matchExtractAllEltsFromBuildVector(), llvm::CombinerHelper::matchExtractVectorElement(), llvm::CombinerHelper::matchExtractVectorElementWithShuffleVector(), llvm::CombinerHelper::matchInsertExtractVecEltOutOfBounds(), llvm::CombinerHelper::matchInsertVectorElementOOB(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), llvm::CombinerHelper::matchUseVectorTruncate(), moreElementsToNextExistingRegClass(), llvm::LegalizeMutations::moreElementsToNextPow2(), llvm::LegalizerHelper::moreElementsVector(), llvm::LegalizerHelper::moreElementsVectorShuffle(), numElementsNotEven(), llvm::LegalityPredicates::numElementsNotPow2(), registerSpirvTypeForNewInstructions(), llvm::LegalizerHelper::scalarizeVectorBooleanStore(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::LegalityPredicates::vectorElementCountIsGreaterThan(), llvm::LegalityPredicates::vectorElementCountIsLessThanOrEqualTo(), and llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize().
|
inlineconstexpr |
Definition at line 497 of file LowLevelType.h.
References isPointerOrPointerVector().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::CombinerHelper::applyCombineMulToShl(), llvm::CombinerHelper::applyFunnelShiftConstantModulo(), llvm::CombinerHelper::applyLshrOfTruncOfLshr(), llvm::CombinerHelper::applyUMulHToLShr(), llvm::LegalizerHelper::bitcastShuffleVector(), llvm::MachineIRBuilder::buildConstant(), llvm::CallLowering::buildCopyFromRegs(), llvm::CallLowering::buildCopyToRegs(), llvm::CallLowering::IncomingValueHandler::buildExtensionHint(), llvm::CSEMIRBuilder::buildInstr(), llvm::CombinerHelper::buildSDivOrSRemUsingMul(), llvm::CombinerHelper::buildUDivOrURemUsingMul(), llvm::LegalizerHelper::buildVariableShiftPart(), llvm::MachineIRBuilder::buildZExtInReg(), llvm::LegalizeMutations::changeElementSizeTo(), llvm::LegalizeMutations::changeElementSizeTo(), changeToInteger(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::GISelValueTracking::computeNumSignBits(), llvm::AArch64TargetLowering::computeNumSignBitsForTargetInstr(), llvm::ConstantFoldCastOp(), llvm::ConstantFoldUnaryIntOp(), divide(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::extractParts(), generateAssignInstrs(), llvm::AMDGPU::getBaseWithConstantOffset(), llvm::getCoverTy(), getElementType(), getMidVTForTruncRightShiftCombine(), getNarrowTypeBreakDown(), getSizeInBits(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), llvm::CallLowering::handleAssignments(), llvm::isConstantOrConstantSplatVector(), isFixedVector(), isFloat(), llvm::SITargetLowering::isFPExtFoldable(), isInteger(), isScalar(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerAbsToAddXor(), llvm::LegalizerHelper::lowerEXT(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::LegalizerHelper::lowerFunnelShiftAsShifts(), llvm::LegalizerHelper::lowerFunnelShiftWithInverse(), llvm::LegalizerHelper::lowerLoad(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerRoundInexactToOdd(), llvm::LegalizerHelper::lowerShlSat(), llvm::LegalizerHelper::lowerSMULH_UMULH(), llvm::LegalizerHelper::lowerTRUNC(), llvm::CombinerHelper::matchCastOfInteger(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineTruncOfShift(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchLshrOfTruncOfLshr(), llvm::CombinerHelper::matchSDivOrSRemByConst(), llvm::CombinerHelper::matchSextOfTrunc(), llvm::CombinerHelper::matchShiftsTooBig(), llvm::CombinerHelper::matchTruncateOfExt(), llvm::CombinerHelper::matchTruncSSatS(), llvm::CombinerHelper::matchTruncSSatU(), llvm::CombinerHelper::matchTruncUSatU(), llvm::CombinerHelper::matchUDivOrURemByConst(), llvm::CombinerHelper::matchZextOfTrunc(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarFLDEXP(), llvm::LegalizerHelper::narrowScalarFPTOI(), llvm::LegalizerHelper::narrowScalarShift(), llvm::LegalizerHelper::narrowScalarShiftByConstantMultiway(), llvm::LegalizerHelper::narrowScalarShiftMultiway(), operator==(), opMustUseVOP3Encoding(), print(), propagateSPIRVType(), llvm::LegalityPredicates::scalarOrEltNarrowerThan(), llvm::LegalityPredicates::scalarOrEltSizeNotPow2(), llvm::LegalityPredicates::scalarOrEltWiderThan(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::LegalizerHelper::widenScalar(), and widenScalarType().
|
inline |
Definition at line 403 of file LowLevelType.h.
References getElementType(), isVector(), and LLT().
Referenced by llvm::CombinerHelper::applyCombineInsertVecElts(), llvm::CombinerHelper::applyUseVectorTruncate(), llvm::LegalizerHelper::bitcastConcatVector(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastShuffleVector(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildFConstant(), llvm::CombinerHelper::buildSDivOrSRemUsingMul(), llvm::MachineIRBuilder::buildShuffleVector(), llvm::CombinerHelper::buildUDivOrURemUsingMul(), changeElementCount(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::GISelValueTracking::computeNumSignBits(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorUnmergeValues(), llvm::getGCDType(), getMemsetValue(), isCopyCompatibleType(), llvm::GISelValueTracking::isKnownNeverLogicalZero(), isWideVec16(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerRoundInexactToOdd(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::CombinerHelper::matchCastOfBuildVector(), llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(), llvm::CombinerHelper::matchUseVectorTruncate(), mergeVectorRegsToResultRegs(), llvm::LegalizerHelper::moreElementsVector(), mutationIsSane(), llvm::LegalizerHelper::narrowScalarShift(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::tryCombineMergeLike(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), and llvm::LegalizerHelper::widenScalar().
|
inlineconstexpr |
Returns the total size of the type. Must only be called on sized types.
Definition at line 388 of file LowLevelType.h.
References getElementCount(), llvm::TypeSize::getFixed(), getScalarSizeInBits(), isPointer(), and isScalar().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::CombinerHelper::applyCombineExtendingLoads(), llvm::CombinerHelper::applyCombineUnmergeZExtToZExt(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::CombinerHelper::applyExtractVecEltBuildVec(), llvm::CombinerHelper::applyFunnelShiftConstantModulo(), llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::LegalizerHelper::bitcast(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertSubvector(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::AMDGPULegalizerInfo::buildAbsGlobalAddress(), buildBitFieldInsert(), llvm::CallLowering::buildCopyFromRegs(), llvm::CallLowering::buildCopyToRegs(), llvm::MachineIRBuilder::buildExtract(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildLoadFromOffset(), llvm::MachineIRBuilder::buildMaskLowPtrBits(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), llvm::AMDGPULegalizerInfo::buildPCRelGlobalAddress(), llvm::MachineIRBuilder::buildStepVector(), llvm::MachineIRBuilder::buildUnmerge(), llvm::LegalizationArtifactCombiner::canFoldMergeOpcode(), changeToInteger(), clampVectorIndex(), llvm::CallLowering::ValueHandler::copyArgumentMemory(), llvm::LegalizerHelper::createAtomicLibcall(), llvm::LegalizerHelper::createMemLibcall(), elementTypeIsLegal(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::CallLowering::ValueHandler::extendRegister(), llvm::extractParts(), llvm::LegalizerHelper::fewerElementsBitcast(), llvm::LegalizerHelper::fewerElementsVector(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorUnmergeValues(), findGISelOptimalMemOpLowering(), foldTruncOfI32Constant(), getBitcastWiderVectorElementOffset(), llvm::LegalizerHelper::getDynStackAllocTargetPtr(), llvm::getGCDType(), llvm::AMDGPULegalizerInfo::getImplicitArgPtr(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::PPCRegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMappingForLoad(), llvm::getLCMType(), getLMUL1Ty(), getNarrowTypeBreakDown(), getReadAnyLaneSplitTy(), llvm::MipsTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::TargetRegisterInfo::getRegSizeInBits(), getSizeInBytes(), getTestBitReg(), llvm::AMDGPURegisterBankInfo::getValueMappingForPtr(), llvm::LegalizerHelper::getVectorElementPointer(), llvm::AMDGPULegalizerInfo::handleD16VData(), isByteSized(), isCopyCompatibleType(), isExtractHiElt(), isFloat128(), isFloat16(), isFloat32(), isFloat64(), isFPIntrinsic(), isLshrHalf(), isRegisterType(), isRegisterVectorElementType(), isSameBitWidth(), isShlHalf(), isSmallOddVector(), isTruncHalf(), isWideVec16(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeCTLZ_CTTZ(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeExtract(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsert(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::AMDGPULegalizerInfo::legalizeIntrinsic(), llvm::RISCVLegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizePointerAsRsrcIntrin(), llvm::LegalizerHelper::libcall(), llvm::LegalizerHelper::lower(), llvm::AArch64CallLowering::lowerCall(), llvm::LegalizerHelper::lowerEXT(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerUnmergeValues(), llvm::LegalizerHelper::lowerVAArg(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::LegalizerHelper::lowerVectorReduction(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineUnmergeConstant(), llvm::CombinerHelper::matchCombineUnmergeMergeToPlainValues(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchConstantLargerBitWidth(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), matchUniformityAndLLT(), llvm::LegalizeRuleSet::maxScalarIf(), mergeVectorRegsToResultRegs(), llvm::LegalizeRuleSet::minScalarIf(), moreEltsToNext32Bit(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarCTLS(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTPOP(), llvm::LegalizerHelper::narrowScalarCTTZ(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarInsert(), llvm::LegalizerHelper::narrowScalarMul(), llvm::LegalizerHelper::narrowScalarShift(), llvm::LegalizerHelper::narrowScalarShiftByConstant(), llvm::LegalizerHelper::reduceLoadStoreWidth(), registerSpirvTypeForNewInstructions(), llvm::LegalizerHelper::scalarizeVectorBooleanStore(), llvm::LegalityPredicates::scalarNarrowerThan(), llvm::LegalityPredicates::scalarWiderThan(), selectMergeValues(), selectUnmergeValues(), setRegsToType(), shouldBitcastLoadStoreType(), shouldWidenLoad(), sizeIsMultipleOf32(), llvm::LegalityPredicates::sizeNotMultipleOf(), llvm::LegalityPredicates::sizeNotPow2(), llvm::AMDGPURegisterBankInfo::split64BitValueForMapping(), splitUnequalType(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineExtract(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::tryCombineMergeLike(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::tryCombineUnmergeDefs(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateTruncExt(), vector(), vectorSmallerThan(), vectorWiderThan(), widen96To128(), llvm::LegalizerHelper::widenScalar(), and llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize().
|
inlineconstexpr |
Returns the total size of the type in bytes, i.e.
number of whole bytes needed to represent the size in bits. Must only be called on sized types.
Definition at line 398 of file LowLevelType.h.
References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), getSizeInBits(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable().
Referenced by llvm::buildAPFixedPointInst(), findGISelOptimalMemOpLowering(), llvm::generateAFPInst(), getOutlineAtomicLibcall(), llvm::CallLowering::handleAssignments(), legalizeLoad(), legalizeStore(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerFPExtAndTruncMem(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerStore(), and llvm::LegalityPredicates::memSizeNotByteSizePow2().
|
inlineconstexpr |
Definition at line 703 of file LowLevelType.h.
References uint64_t.
|
inlinestatic |
Definition at line 707 of file LowLevelType.h.
Referenced by floatIEEE(), floatingPoint(), llvm::getLLTForType(), integer(), isBFloat16(), isFloat128(), isFloat16(), isFloat32(), isFloat64(), isPPCF128(), isX86FP80(), and LLT().
Definition at line 93 of file LowLevelType.h.
References llvm::ElementCount::getFixed(), getUseExtended(), INTEGER, LLT(), and scalar().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::CombinerHelper::applySDivByPow2(), bitcastToVectorElement32(), llvm::AMDGPULegalizerInfo::buildAbsGlobalAddress(), buildAnyextOrCopy(), llvm::CallLowering::buildCopyFromRegs(), llvm::CallLowering::buildCopyToRegs(), llvm::AMDGPULegalizerInfo::buildLoadInputValue(), llvm::MachineIRBuilder::buildMaskLowPtrBits(), llvm::AMDGPULegalizerInfo::buildMultiply(), llvm::MachineIRBuilder::buildShuffleSplat(), llvm::CombinerHelper::buildUDivOrURemUsingMul(), castBufferRsrcFromV4I32(), castBufferRsrcToV4I32(), changeElementSize(), changeToInteger(), llvm::LegalizerHelper::coerceToInteger(), convertImageAddrToPacked(), llvm::CallLowering::ValueHandler::copyArgumentMemory(), llvm::RegisterBankInfo::OperandsMapper::createVRegs(), divide(), emitReciprocalU64(), extractF64Exponent(), llvm::extractParts(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), findGISelOptimalMemOpLowering(), llvm::AMDGPULegalizerInfo::fixStoreSourceType(), getBitcastRegisterType(), getBufferRsrcRegisterType(), llvm::LegalizerHelper::getDynStackAllocTargetPtr(), getElementType(), llvm::getGCDType(), llvm::AMDGPULegalizerInfo::getImplicitArgPtr(), llvm::AMDGPULegalizerInfo::getKernargParameterPtr(), llvm::getLLTForType(), getNarrowTypeBreakDown(), llvm::AArch64TargetLowering::getOptimalMemOpLLT(), getReadAnyLaneSplitTy(), getScalarTypeFromMemDesc(), llvm::AMDGPULegalizerInfo::getSegmentAperture(), llvm::TargetLoweringBase::getVectorIdxLLT(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeBufferAtomic(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeBufferStore(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AMDGPULegalizerInfo::legalizeBVHDualOrBVH8IntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeBVHIntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeCTLS(), llvm::AMDGPULegalizerInfo::legalizeCTLZ_ZERO_POISON(), llvm::AMDGPULegalizerInfo::legalizeExtract(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeFDIV16(), llvm::AMDGPULegalizerInfo::legalizeFDIV64(), llvm::AMDGPULegalizerInfo::legalizeFExp(), llvm::AMDGPULegalizerInfo::legalizeFEXPF64(), llvm::AMDGPULegalizerInfo::legalizeFFREXP(), llvm::AMDGPULegalizerInfo::legalizeFlogCommon(), llvm::AMDGPULegalizerInfo::legalizeFPTOI(), llvm::AMDGPULegalizerInfo::legalizeFSQRTF32(), llvm::AMDGPULegalizerInfo::legalizeFSQRTF64(), llvm::AMDGPULegalizerInfo::legalizeGetFPEnv(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeInsert(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIntrinsicTrunc(), llvm::AMDGPULegalizerInfo::legalizeIsAddrSpace(), llvm::AMDGPULegalizerInfo::legalizeITOFP(), llvm::AMDGPULegalizerInfo::legalizeKernargMemParameter(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), llvm::AMDGPULegalizerInfo::legalizeMul(), llvm::AMDGPULegalizerInfo::legalizePointerAsRsrcIntrin(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), llvm::AMDGPULegalizerInfo::legalizeSetFPEnv(), llvm::AMDGPULegalizerInfo::legalizeSignedDIV_REM(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM32Impl(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM64Impl(), llvm::AMDGPULegalizerInfo::legalizeWaveID(), llvm::AMDGPULegalizerInfo::legalizeWorkGroupId(), llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), llvm::AMDGPULegalizerInfo::loadInputValue(), llvm::LegalizerHelper::lower(), llvm::LegalizerHelper::lowerAbsToCNeg(), llvm::LegalizerHelper::lowerBitreverse(), llvm::AArch64CallLowering::lowerCall(), llvm::LegalizerHelper::lowerExtract(), llvm::LegalizerHelper::lowerFAbs(), llvm::LegalizerHelper::lowerFCopySign(), llvm::LegalizerHelper::lowerFFloor(), llvm::LegalizerHelper::lowerFMinimumMaximum(), llvm::LegalizerHelper::lowerFMODF(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::LegalizerHelper::lowerFPEXT_BF16(), llvm::LegalizerHelper::lowerFPTOINT_SAT(), llvm::LegalizerHelper::lowerFPTRUNC_F32_TO_BF16(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerIntrinsicRound(), llvm::LegalizerHelper::lowerISFPCLASS(), llvm::LegalizerHelper::lowerMergeValues(), llvm::LegalizerHelper::lowerMinMax(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerRoundInexactToOdd(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerSITOFP(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::LegalizerHelper::narrowScalarAddSub(), llvm::LegalizerHelper::narrowScalarCTLZ(), llvm::LegalizerHelper::narrowScalarCTTZ(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarShift(), llvm::AMDGPUCallLowering::passSpecialInputs(), llvm::LegalizerHelper::reduceLoadStoreWidth(), llvm::LegalizerHelper::scalarizeVectorBooleanStore(), llvm::AMDGPULegalizerInfo::splitBufferOffsets(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), and llvm::WebAssemblyLegalizerInfo::WebAssemblyLegalizerInfo().
|
inlineconstexpr |
Definition at line 264 of file LowLevelType.h.
References ANY_SCALAR.
Referenced by isFloat128(), isFloat16(), isFloat32(), isFloat64(), and operator==().
|
inlineconstexpr |
Definition at line 268 of file LowLevelType.h.
References VECTOR_ANY.
|
inline |
Definition at line 333 of file LowLevelType.h.
References getUseExtended(), and isFloat().
Referenced by matchUniformityAndLLT(), and print().
|
inlineconstexpr |
Definition at line 493 of file LowLevelType.h.
References getSizeInBits(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isKnownMultipleOf().
Referenced by llvm::LegalizerInfo::getExtOpcodeForWideningConstant(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::LegalityPredicates::memSizeNotByteSizePow2(), llvm::LegalizerHelper::reduceLoadStoreWidth(), and llvm::LegalizerHelper::scalarizeVectorBooleanStore().
|
inlineconstexpr |
Returns true if the LLT is a fixed vector.
Returns false otherwise, even if the LLT is not a vector type.
Definition at line 369 of file LowLevelType.h.
References isScalable(), and isVector().
Referenced by llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::getCoverTy(), llvm::getGCDType(), llvm::getLCMType(), isFixedVector(), llvm::CombinerHelper::matchExtractVectorElement(), llvm::CombinerHelper::matchInsertVectorElementOOB(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), llvm::LegalityPredicates::numElementsNotPow2(), llvm::LegalityPredicates::vectorElementCountIsGreaterThan(), llvm::LegalityPredicates::vectorElementCountIsLessThanOrEqualTo(), and llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize().
Definition at line 371 of file LowLevelType.h.
References getNumElements(), getScalarSizeInBits(), and isFixedVector().
|
inlineconstexpr |
Definition at line 266 of file LowLevelType.h.
References FLOAT.
Referenced by llvm::CSEMIRBuilder::buildInstr(), divide(), getFpSemantics(), isBFloat16(), isFloat(), isFloat(), isFloat128(), isFloat16(), isFloat32(), isFloat64(), isFloatIEEE(), isFloatOrFloatVector(), isPPCF128(), isX86FP80(), llvm::AMDGPULegalizerInfo::legalizeLaneOp(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), and vector().
|
inlineconstexpr |
Definition at line 302 of file LowLevelType.h.
References getFpSemantics(), and isFloat().
Definition at line 299 of file LowLevelType.h.
References getScalarSizeInBits(), isFloat(), and Size.
|
inline |
Definition at line 328 of file LowLevelType.h.
References getSizeInBits(), getUseExtended(), isAnyScalar(), isFloat(), and llvm::APFloatBase::S_IEEEquad.
|
inline |
Definition at line 313 of file LowLevelType.h.
References getSizeInBits(), getUseExtended(), isAnyScalar(), isFloat(), and llvm::APFloatBase::S_IEEEhalf.
|
inline |
Definition at line 318 of file LowLevelType.h.
References getSizeInBits(), getUseExtended(), isAnyScalar(), isFloat(), and llvm::APFloatBase::S_IEEEsingle.
|
inline |
Definition at line 323 of file LowLevelType.h.
References getSizeInBits(), getUseExtended(), isAnyScalar(), isFloat(), and llvm::APFloatBase::S_IEEEdouble.
|
inlineconstexpr |
Definition at line 306 of file LowLevelType.h.
References isFloat(), llvm::APFloatBase::S_IEEEdouble, llvm::APFloatBase::S_IEEEhalf, llvm::APFloatBase::S_IEEEquad, and llvm::APFloatBase::S_IEEEsingle.
Referenced by changeElementSize(), and print().
|
inlineconstexpr |
Definition at line 279 of file LowLevelType.h.
References isFloat(), and isFloatVector().
|
inlineconstexpr |
Definition at line 272 of file LowLevelType.h.
References VECTOR_FLOAT.
Referenced by getElementType(), getFpSemantics(), and isFloatOrFloatVector().
|
inlineconstexpr |
Definition at line 265 of file LowLevelType.h.
References INTEGER.
Referenced by changeElementSize(), divide(), isInteger(), and print().
Definition at line 295 of file LowLevelType.h.
References getScalarSizeInBits(), isInteger(), and Size.
|
inlineconstexpr |
Definition at line 269 of file LowLevelType.h.
References VECTOR_INTEGER.
Referenced by getElementType().
|
inlineconstexpr |
Definition at line 267 of file LowLevelType.h.
References POINTER.
Referenced by llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::CallLowering::buildCopyFromRegs(), llvm::MachineIRBuilder::buildInstr(), changeToInteger(), llvm::LegalizerHelper::createMemLibcall(), llvm::CallLowering::ValueHandler::extendRegister(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::MipsRegisterBankInfo::getInstrMapping(), getSizeInBits(), isCopyCompatibleType(), llvm::LegalityPredicates::isPointer(), isPointerOrPointerVector(), llvm::SPIRVLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeExtract(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeInsert(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerUnmergeValues(), print(), llvm::MipsRegisterBankInfo::setRegBank(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::AMDGPULegalizerInfo::splitBufferOffsets(), llvm::MachineIRBuilder::validateSelectOp(), vector(), and X86SelectAddress().
|
inlineconstexpr |
Definition at line 276 of file LowLevelType.h.
References isPointer(), and isPointerVector().
Referenced by llvm::MachineIRBuilder::buildCast(), changeElementSize(), getAddressSpace(), getScalarSizeInBits(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerSelect(), llvm::CombinerHelper::matchSelectIMinMax(), and llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo().
|
inlineconstexpr |
Definition at line 273 of file LowLevelType.h.
References VECTOR_POINTER.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), changeToInteger(), getElementType(), isPointerOrPointerVector(), and llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo().
|
inline |
Definition at line 343 of file LowLevelType.h.
References getUseExtended(), and isFloat().
Referenced by print().
|
inlineconstexpr |
Returns true if the LLT is a scalable vector.
Must only be called on vector types.
Definition at line 362 of file LowLevelType.h.
References assert(), and isVector().
Referenced by llvm::MachineIRBuilder::buildInstr(), getElementCount(), llvm::getGCDType(), llvm::getLCMType(), getNumElements(), isFixedVector(), isScalableVector(), llvm::LegalizerHelper::lower(), and llvm::LegalizerHelper::moreElementsVector().
|
inlineconstexpr |
Returns true if the LLT is a scalable vector.
Returns false otherwise, even if the LLT is not a vector type.
Definition at line 379 of file LowLevelType.h.
References isScalable(), and isVector().
Referenced by buildDefaultVLOps(), llvm::LegalizeRuleSet::clampNumElements(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::GISelValueTracking::computeNumSignBits(), llvm::getCoverTy(), llvm::getGCDType(), llvm::getLCMType(), llvm::GISelValueTracking::isKnownNeverZero(), llvm::CombinerHelper::matchCombineInsertVecElts(), and llvm::CombinerHelper::matchInsertExtractVecEltOutOfBounds().
|
inlineconstexpr |
Definition at line 283 of file LowLevelType.h.
References ANY_SCALAR, FLOAT, and INTEGER.
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::CallLowering::buildCopyToRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::MachineIRBuilder::buildInstr(), llvm::LegalizeRuleSet::clampScalar(), divide(), llvm::CallLowering::ValueHandler::extendRegister(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorSeqReductions(), foldTruncOfI32Constant(), generateAssignInstrs(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::MipsRegisterBankInfo::getInstrMapping(), getSizeInBits(), isCopyCompatibleType(), isScalar(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::RISCVLegalizerInfo::legalizeIntrinsic(), llvm::LegalizerHelper::lowerFMinimumMaximum(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerInsert(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::LegalizeRuleSet::maxScalarIf(), llvm::LegalizeRuleSet::minScalarIf(), llvm::LegalizerHelper::narrowScalarShift(), operator==(), print(), llvm::LegalityPredicates::scalarNarrowerThan(), llvm::LegalityPredicates::scalarWiderThan(), llvm::LegalityPredicates::sizeNotMultipleOf(), llvm::LegalityPredicates::sizeNotPow2(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateBinaryOp(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateShiftOp(), llvm::MachineIRBuilder::validateTruncExt(), and llvm::MachineIRBuilder::validateUnaryOp().
Definition at line 287 of file LowLevelType.h.
References getScalarSizeInBits(), isScalar(), and Size.
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 263 of file LowLevelType.h.
References isToken().
Referenced by llvm::MachineIRBuilder::buildAtomicCmpXchg(), llvm::MachineIRBuilder::buildAtomicCmpXchgWithSuccess(), llvm::MachineIRBuilder::buildAtomicRMW(), llvm::MachineIRBuilder::buildExtract(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::GISelValueTracking::computeNumSignBits(), llvm::MachineRegisterInfo::constrainRegAttrs(), llvm::extractParts(), generateAssignInstrs(), llvm::getFunctionLiveInPhysReg(), llvm::AArch64RegisterBankInfo::getInstrMapping(), getNarrowTypeBreakDown(), llvm::MipsTargetLowering::getRegisterByName(), llvm::MachineInstr::getTypeToPrint(), makeDstOps(), llvm::CombinerHelper::matchHoistLogicOpWithSameOpcodeHands(), llvm::LegalizerHelper::narrowScalarShift(), print(), llvm::MachineOperand::print(), llvm::processInstr(), llvm::LegalizerHelper::reduceLoadStoreWidth(), llvm::setRegClassType(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), and llvm::updateRegType().
|
inlineconstexpr |
Definition at line 290 of file LowLevelType.h.
References VECTOR_ANY, VECTOR_FLOAT, VECTOR_INTEGER, and VECTOR_POINTER.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::CombinerHelper::applySDivByPow2(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertSubvector(), llvm::LegalizerHelper::bitcastInsertVectorElt(), llvm::CallLowering::buildCopyFromRegs(), llvm::CallLowering::buildCopyToRegs(), llvm::MachineIRBuilder::buildDeleteTrailingVectorElements(), llvm::CSEMIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildPadVectorWithUndefElements(), llvm::LegalizationArtifactCombiner::canFoldMergeOpcode(), llvm::LegalizeMutations::changeElementCountTo(), changeElementSize(), changeElementType(), changeToInteger(), changeVectorElementCount(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::GISelValueTracking::computeNumSignBits(), llvm::ConstantFoldUnaryIntOp(), deduceAndAssignTypeForGUnmerge(), deduceTypeFromResultRegister(), deduceTypeFromSingleOperand(), divide(), llvm::LegalityPredicates::elementTypeIs(), elementTypeIsLegal(), llvm::extractParts(), llvm::extractVectorParts(), llvm::LegalizerHelper::fewerElementsVector(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::LegalizerHelper::fewerElementsVectorMerge(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), llvm::LegalizerHelper::fewerElementsVectorUnmergeValues(), findGISelOptimalMemOpLowering(), generateAssignInstrs(), llvm::generateSelectInst(), llvm::getCoverTy(), getElementCount(), getElementType(), llvm::getGCDType(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::MipsRegisterBankInfo::getInstrMapping(), llvm::PPCRegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), llvm::getLCMType(), getMaskTypeFor(), getNarrowTypeBreakDown(), getOutlineAtomicLibcall(), getScalarType(), getVectorShiftImm(), llvm::AMDGPULegalizerInfo::handleD16VData(), llvm::AMDGPURegisterBankInfo::handleD16VData(), hasSameNumEltsOnAllVectorOperands(), isFixedVector(), isRegisterType(), isScalable(), isScalableVector(), isWideScalarExtLoadTruncStore(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeBuildVector(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIntrinsic(), legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeLoad(), legalizeStore(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::AArch64CallLowering::lowerReturn(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerThreewayCompare(), llvm::LegalizerHelper::lowerTRUNC(), llvm::CombinerHelper::matchCombineBuildUnmerge(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchExtractVectorElementWithShuffleVector(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::CombinerHelper::matchSuboCarryOut(), llvm::CombinerHelper::matchUDivOrURemByConst(), multiplyElements(), mutationIsSane(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarExt(), llvm::LegalizerHelper::narrowScalarShift(), numElementsNotEven(), operator==(), print(), registerSpirvTypeForNewInstructions(), shouldBitcastLoadStoreType(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::tryCombineMergeLike(), llvm::LegalizationArtifactCombiner::tryFoldUnmergeCast(), llvm::MachineIRBuilder::validateBinaryOp(), llvm::MachineIRBuilder::validateSelectOp(), llvm::MachineIRBuilder::validateShiftOp(), llvm::MachineIRBuilder::validateTruncExt(), llvm::MachineIRBuilder::validateUnaryOp(), vector(), vectorSmallerThan(), vectorWiderThan(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 338 of file LowLevelType.h.
References getUseExtended(), and isFloat().
|
inline |
Produce a vector type that is Factor times bigger, preserving the element type.
For a scalar or pointer, this will produce a new vector with Factor elements.
Definition at line 485 of file LowLevelType.h.
References fixed_vector(), getElementCount(), getElementType(), isVector(), LLT(), and scalarOrVector().
Definition at line 552 of file LowLevelType.h.
Definition at line 540 of file LowLevelType.h.
References getElementCount(), getElementType(), getScalarSizeInBits(), isAnyScalar(), isScalar(), isVector(), LLT(), and RHS.
|
inlinestaticconstexpr |
Get a low-level pointer in the given address space.
Definition at line 116 of file LowLevelType.h.
References assert(), llvm::ElementCount::getFixed(), LLT(), and POINTER.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), addCallTargetOperands(), allocateHSAUserSGPRs(), llvm::SITargetLowering::allocateHSAUserSGPRs(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::AMDGPULegalizerInfo::buildPCRelGlobalAddress(), llvm::LegalizerHelper::createStackTemporary(), emitLoadFromConstantPool(), getElementType(), llvm::AMDGPULegalizerInfo::getKernargParameterPtr(), getLeaOP(), llvm::getLLTForType(), llvm::SPIRVGlobalRegistry::getOrCreateConstNullPtr(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), llvm::SPIRVGlobalRegistry::getRegType(), llvm::AMDGPULegalizerInfo::getSegmentAperture(), M68kOutgoingArgHandler::getStackAddress(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), llvm::CallLowering::handleAssignments(), llvm::CallLowering::insertSRetIncomingArgument(), llvm::CallLowering::insertSRetOutgoingArgument(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::MipsLegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::MipsCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::WebAssemblyCallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::M68kLegalizerInfo::M68kLegalizerInfo(), matchUniformityAndLLT(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::PPCLegalizerInfo::PPCLegalizerInfo(), llvm::RISCVLegalizerInfo::RISCVLegalizerInfo(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::WebAssemblyLegalizerInfo::WebAssemblyLegalizerInfo(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
|
inlinestaticconstexpr |
Get a 128-bit PowerPC double double value.
Definition at line 197 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::getLLTForType().
| void LLT::print | ( | raw_ostream & | OS | ) | const |
Definition at line 84 of file LowLevelType.cpp.
References assert(), getAddressSpace(), getElementCount(), getElementType(), getScalarSizeInBits(), isBFloat16(), isFloatIEEE(), isInteger(), isPointer(), isPPCF128(), isScalar(), isValid(), and isVector().
Referenced by dump().
|
inlinestaticconstexpr |
Get a low-level scalable vector of some number of elements and element type.
Definition at line 226 of file LowLevelType.h.
References llvm::ElementCount::getScalable(), LLT(), and vector().
|
inlinestaticconstexpr |
Get a low-level scalable vector of some number of elements and element width.
Definition at line 218 of file LowLevelType.h.
References llvm::ElementCount::getScalable(), LLT(), scalar(), and vector().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), getLMUL1Ty(), llvm::MachineFunction::getMachineMemOperand(), and llvm::RISCVLegalizerInfo::RISCVLegalizerInfo().
Get a low-level scalar or aggregate "bag of bits".
Definition at line 89 of file LowLevelType.h.
References ANY_SCALAR, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), addMBBNames(), llvm::SITargetLowering::allocateSpecialEntryInputVGPRs(), allocateVGPR32Input(), llvm::AMDGPURegisterBankInfo::applyMappingBFE(), llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::MipsRegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingMAD_64_32(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSMULU64(), llvm::ARMLegalizerInfo::ARMLegalizerInfo(), llvm::buildBoolRegister(), llvm::SPIRVGlobalRegistry::buildConstantFP(), llvm::SPIRVGlobalRegistry::buildConstantInt(), llvm::CallLowering::buildCopyFromRegs(), llvm::MachineIRBuilder::buildLoadFromOffset(), llvm::AMDGPULegalizerInfo::buildMultiply(), llvm::buildPipeInst(), llvm::AMDGPURegisterBankInfo::buildReadFirstLane(), buildSplatSplitS64WithVL(), llvm::LegalizerHelper::buildVariableShiftPart(), changeElementSize(), llvm::SPIRVGlobalRegistry::createConstFP(), llvm::SPIRVGlobalRegistry::createConstInt(), createTypeVReg(), divide(), elementTypeIsLegal(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::GIMatchTableExecutor::executeMatchTable(), extendLow32IntoHigh32(), llvm::CallLowering::ValueHandler::extendRegister(), fixed_vector(), floatIEEE(), floatingPoint(), llvm::generateBuiltinVar(), llvm::generateGroupInst(), llvm::generateWaveInst(), llvm::genWorkgroupQuery(), getAnySgprS1(), getBufferRsrcScalarType(), getElementType(), llvm::getFConstantVRegValWithLookThrough(), getHalfSizedType(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::getLCMType(), llvm::getLLTForType(), llvm::MachineFunction::getMachineMemOperand(), getMaskTypeFor(), llvm::SPIRVGlobalRegistry::getOrCreateUndef(), getPow2ScalarType(), llvm::AMDGPUFunctionArgInfo::getPreloadedValue(), llvm::AMDGPURegisterBankInfo::getRegBankFromRegClass(), RegBankSelectHelper::getRegBankToAssign(), llvm::AVRTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::SPIRVGlobalRegistry::getRegType(), llvm::AMDGPULegalizerInfo::getScaledLogInput(), M68kOutgoingArgHandler::getStackAddress(), llvm::AMDGPURegisterBankInfo::handleD16VData(), insertInlineAsmProcess(), integer(), AMDGPURegBankLegalizeCombiner::isLaneMask(), isRegisterClassType(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::SPIRVLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeFceil(), llvm::AMDGPULegalizerInfo::legalizeFDIV32(), llvm::AMDGPULegalizerInfo::legalizeFDIV64(), llvm::AMDGPULegalizerInfo::legalizeFDIVFastIntrin(), llvm::AMDGPULegalizerInfo::legalizeFExp(), llvm::AMDGPULegalizerInfo::legalizeFExp10Unsafe(), llvm::AMDGPULegalizerInfo::legalizeFExp2(), llvm::AMDGPULegalizerInfo::legalizeFEXPF64(), llvm::AMDGPULegalizerInfo::legalizeFExpUnsafe(), llvm::AMDGPULegalizerInfo::legalizeFFloor(), llvm::AMDGPULegalizerInfo::legalizeFFREXP(), llvm::AMDGPULegalizerInfo::legalizeFlogCommon(), llvm::AMDGPULegalizerInfo::legalizeFroundeven(), llvm::AMDGPULegalizerInfo::legalizeIntrinsicTrunc(), legalizeLoad(), legalizeSpvExtractElt(), legalizeSpvInsertElt(), legalizeStore(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM32Impl(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM64Impl(), llvm::AMDGPULegalizerInfo::legalizeWorkGroupId(), LLTToBId(), LLTToId(), llvm::LegalizerHelper::lowerAbsDiffToSelect(), llvm::SPIRVCallLowering::lowerCall(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::LegalizerHelper::lowerFPTOSI(), llvm::LegalizerHelper::lowerFPTOUI(), llvm::LegalizerHelper::lowerFPTRUNC_F64_TO_F16(), llvm::LegalizerHelper::lowerInsert(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerSelect(), llvm::LegalizerHelper::lowerShuffleVector(), llvm::LegalizerHelper::lowerU64ToF32WithSITOFP(), llvm::LegalizerHelper::lowerU64ToF64BitFloatOps(), llvm::LegalizerHelper::lowerUITOFP(), llvm::LegalizerHelper::lowerVAArg(), llvm::M68kLegalizerInfo::M68kLegalizerInfo(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::CombinerHelper::matchUDivOrURemByConst(), matchUniformityAndLLT(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarCTLS(), llvm::LegalizerHelper::narrowScalarFPTOI(), llvm::LegalizerHelper::narrowScalarInsert(), llvm::LegalizerHelper::narrowScalarShiftMultiway(), llvm::PPCLegalizerInfo::PPCLegalizerInfo(), reinsertVectorIndexAdd(), llvm::RISCVLegalizerInfo::RISCVLegalizerInfo(), scalable_vector(), scalarOrVector(), llvm::AMDGPUInstructionSelector::select(), llvm::AMDGPURegisterBankInfo::setBufferOffsets(), llvm::MipsRegisterBankInfo::setRegBank(), llvm::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::AMDGPURegisterBankInfo::splitBufferOffsets(), splitUnequalType(), unpackV2S16ToS32(), llvm::WebAssemblyLegalizerInfo::WebAssemblyLegalizerInfo(), widen96To128(), widenScalarType(), widenSignSensitiveOps(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
|
inlinestaticconstexpr |
Definition at line 230 of file LowLevelType.h.
References LLT(), and vector().
Referenced by bitcastToVectorElement32(), changeElementCount(), llvm::LegalizeRuleSet::clampMaxNumElements(), divide(), fewerEltsToSize64Vector(), llvm::getCoverTy(), llvm::getGCDType(), getHalfSizedType(), llvm::SPIRVGlobalRegistry::getRegType(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), multiplyElements(), scalarOrVector(), and splitUnequalType().
|
inlinestaticconstexpr |
Definition at line 234 of file LowLevelType.h.
References assert(), LLT(), scalar(), scalarOrVector(), and uint64_t.
|
inlinestatic |
Definition at line 710 of file LowLevelType.h.
References llvm::Enable.
Referenced by llvm::AArch64TargetMachine::AArch64TargetMachine(), llvm::AMDGPUTargetMachine::AMDGPUTargetMachine(), and llvm::WebAssemblyTargetMachine::WebAssemblyTargetMachine().
|
inlinestaticconstexpr |
Get a low-level token; just a scalar with zero bits (or no size).
Definition at line 110 of file LowLevelType.h.
References ANY_SCALAR, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::getLLTForType().
Definition at line 75 of file LowLevelType.h.
References ANY_SCALAR, FLOAT, INTEGER, POINTER, VECTOR_FLOAT, VECTOR_INTEGER, and VECTOR_POINTER.
Definition at line 62 of file LowLevelType.h.
References FLOAT, INTEGER, POINTER, VECTOR_ANY, VECTOR_FLOAT, VECTOR_INTEGER, and VECTOR_POINTER.
Referenced by vector().
|
inlinestaticconstexpr |
Get a low-level vector of some number of elements and element type.
Definition at line 129 of file LowLevelType.h.
References assert(), getAddressSpace(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), getFpSemantics(), getSizeInBits(), isFloat(), isPointer(), isVector(), LLT(), and toVector().
|
inlinestaticconstexpr |
Get a low-level vector of some number of elements and element width.
Definition at line 123 of file LowLevelType.h.
References assert(), LLT(), and VECTOR_ANY.
Referenced by llvm::CombinerHelper::applySDivByPow2(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastInsertSubvector(), llvm::buildBoolRegister(), llvm::CallLowering::buildCopyToRegs(), changeElementSize(), changeToInteger(), changeVectorElementCount(), changeVectorElementType(), fixed_vector(), fixed_vector(), getBufferRsrcScalarType(), llvm::getGCDType(), llvm::getLCMType(), llvm::getLLTForType(), getMaskTypeFor(), llvm::CallLowering::ValueHandler::getStackValueStoreType(), scalable_vector(), scalable_vector(), scalarOrVector(), and llvm::LegalizerHelper::widenScalar().
|
inlinestaticconstexpr |
Get a 80-bit X86 floating point value.
Definition at line 185 of file LowLevelType.h.
References FLOAT, llvm::ElementCount::getFixed(), and LLT().
Referenced by llvm::getLLTForType().
|
friend |
Definition at line 552 of file LowLevelType.h.
|
friend |
Definition at line 555 of file LowLevelType.h.
References GISelInstProfileBuilder, and llvm::APFloatBase::S_MaxSemantics.
Referenced by GISelInstProfileBuilder.