LLVM 22.0.0git
|
#include "LegalizeTypes.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/TypeSize.h"
#include "llvm/Support/raw_ostream.h"
#include <numeric>
#include "llvm/IR/ConstrainedOps.def"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "legalize-types" |
#define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) |
#define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) |
#define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) |
Functions | |
static SDValue | CollectOpsToWiden (SelectionDAG &DAG, const TargetLowering &TLI, SmallVectorImpl< SDValue > &ConcatOps, unsigned ConcatEnd, EVT VT, EVT MaxVT, EVT WidenVT) |
static bool | isSETCCOp (unsigned Opcode) |
static bool | isLogicalMaskOp (unsigned Opcode) |
static EVT | getSETCCOperandType (SDValue N) |
static bool | isSETCCorConvertedSETCC (SDValue N) |
static unsigned | getExtendForIntVecReduction (unsigned Opc) |
static std::optional< EVT > | findMemType (SelectionDAG &DAG, const TargetLowering &TLI, unsigned Width, EVT WidenVT, unsigned Align=0, unsigned WidenEx=0) |
static SDValue | BuildVectorFromScalar (SelectionDAG &DAG, EVT VecTy, SmallVectorImpl< SDValue > &LdOps, unsigned Start, unsigned End) |
#define DAG_INSTRUCTION | ( | NAME, | |
NARG, | |||
ROUND_MODE, | |||
INTRINSIC, | |||
DAGN ) |
#define DAG_INSTRUCTION | ( | NAME, | |
NARG, | |||
ROUND_MODE, | |||
INTRINSIC, | |||
DAGN ) |
#define DAG_INSTRUCTION | ( | NAME, | |
NARG, | |||
ROUND_MODE, | |||
INTRINSIC, | |||
DAGN ) |
#define DEBUG_TYPE "legalize-types" |
Definition at line 35 of file LegalizeVectorTypes.cpp.
|
static |
Definition at line 8077 of file LegalizeVectorTypes.cpp.
References llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getInsertVectorElt(), llvm::SelectionDAG::getNode(), llvm::EVT::getSizeInBits(), llvm::EVT::getVectorVT(), and llvm::ISD::SCALAR_TO_VECTOR.
|
static |
Definition at line 5221 of file LegalizeVectorTypes.cpp.
References AbstractManglingParser< Derived, Alloc >::NumOps, llvm::ArrayRef(), llvm::ISD::CONCAT_VECTORS, llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getInsertVectorElt(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), llvm::EVT::getVectorVT(), llvm::TargetLoweringBase::isTypeLegal(), llvm::EVT::isVector(), and OpIdx.
|
static |
Definition at line 8007 of file LegalizeVectorTypes.cpp.
References llvm::SelectionDAG::getContext(), llvm::EVT::getFixedSizeInBits(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::EVT::getSizeInBits(), llvm::TargetLoweringBase::getTypeAction(), llvm::EVT::getVectorElementType(), llvm::MVT::integer_valuetypes(), llvm::isPowerOf2_32(), llvm::EVT::isScalableVector(), llvm::reverse(), llvm::TargetLoweringBase::TypeLegal, llvm::TargetLoweringBase::TypePromoteInteger, and llvm::MVT::vector_valuetypes().
Definition at line 7836 of file LegalizeVectorTypes.cpp.
References llvm::ISD::ANY_EXTEND, llvm_unreachable, Opc, llvm::ISD::SIGN_EXTEND, and llvm::ISD::ZERO_EXTEND.
Definition at line 6553 of file LegalizeVectorTypes.cpp.
References N.
Definition at line 6541 of file LegalizeVectorTypes.cpp.
References llvm::ISD::AND, llvm::ISD::OR, and llvm::ISD::XOR.
Referenced by isSETCCorConvertedSETCC().
Definition at line 6530 of file LegalizeVectorTypes.cpp.
References llvm::ISD::SETCC, llvm::ISD::STRICT_FSETCC, and llvm::ISD::STRICT_FSETCCS.
Referenced by isSETCCorConvertedSETCC().
Definition at line 6561 of file LegalizeVectorTypes.cpp.
References llvm::ISD::CONCAT_VECTORS, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::isBuildVectorOfConstantSDNodes(), isLogicalMaskOp(), isSETCCOp(), isSETCCorConvertedSETCC(), N, llvm::ISD::SIGN_EXTEND, and llvm::ISD::TRUNCATE.
Referenced by isSETCCorConvertedSETCC().