LLVM 20.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) case ISD::STRICT_##DAGN: |
#define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) case ISD::STRICT_##DAGN: |
#define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) case ISD::STRICT_##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 | |||
) | case ISD::STRICT_##DAGN: |
#define DAG_INSTRUCTION | ( | NAME, | |
NARG, | |||
ROUND_MODE, | |||
INTRINSIC, | |||
DAGN | |||
) | case ISD::STRICT_##DAGN: |
#define DAG_INSTRUCTION | ( | NAME, | |
NARG, | |||
ROUND_MODE, | |||
INTRINSIC, | |||
DAGN | |||
) | case ISD::STRICT_##DAGN: |
#define DEBUG_TYPE "legalize-types" |
Definition at line 35 of file LegalizeVectorTypes.cpp.
|
static |
Definition at line 7659 of file LegalizeVectorTypes.cpp.
References llvm::ISD::BITCAST, End, llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getNode(), llvm::EVT::getSizeInBits(), llvm::SelectionDAG::getVectorIdxConstant(), llvm::EVT::getVectorVT(), Idx, llvm::ISD::INSERT_VECTOR_ELT, and llvm::ISD::SCALAR_TO_VECTOR.
|
static |
Definition at line 4867 of file LegalizeVectorTypes.cpp.
References llvm::ISD::CONCAT_VECTORS, llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), getValueType(), llvm::EVT::getVectorElementType(), llvm::SelectionDAG::getVectorIdxConstant(), llvm::EVT::getVectorNumElements(), llvm::EVT::getVectorVT(), Idx, llvm::ISD::INSERT_VECTOR_ELT, llvm::TargetLoweringBase::isTypeLegal(), and llvm::EVT::isVector().
|
static |
Definition at line 7589 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 7413 of file LegalizeVectorTypes.cpp.
References llvm::ISD::ANY_EXTEND, llvm_unreachable, llvm::ISD::SIGN_EXTEND, llvm::ISD::VECREDUCE_ADD, llvm::ISD::VECREDUCE_AND, llvm::ISD::VECREDUCE_MUL, llvm::ISD::VECREDUCE_OR, llvm::ISD::VECREDUCE_SMAX, llvm::ISD::VECREDUCE_SMIN, llvm::ISD::VECREDUCE_UMAX, llvm::ISD::VECREDUCE_UMIN, llvm::ISD::VECREDUCE_XOR, and llvm::ISD::ZERO_EXTEND.
Definition at line 6151 of file LegalizeVectorTypes.cpp.
References N.
Definition at line 6139 of file LegalizeVectorTypes.cpp.
References llvm::ISD::AND, llvm::ISD::OR, and llvm::ISD::XOR.
Referenced by isSETCCorConvertedSETCC().
Definition at line 6128 of file LegalizeVectorTypes.cpp.
References llvm::ISD::SETCC, llvm::ISD::STRICT_FSETCC, and llvm::ISD::STRICT_FSETCCS.
Referenced by isSETCCorConvertedSETCC().
Definition at line 6159 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().