LLVM 23.0.0git
LegalizeVectorTypes.cpp File Reference
#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 SDValue coerceLoadedValue (SDValue LdOp, EVT FirstVT, EVT WidenVT, TypeSize LdWidth, TypeSize FirstVTWidth, SDLoc dl, SelectionDAG &DAG)
 Either return the same load or provide appropriate casts from the load and return that.
static std::optional< EVTfindMemType (SelectionDAG &DAG, const TargetLowering &TLI, unsigned Width, EVT WidenVT, unsigned Align, unsigned WidenEx)
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 SDValue BuildVectorFromScalar (SelectionDAG &DAG, EVT VecTy, SmallVectorImpl< SDValue > &LdOps, unsigned Start, unsigned End)

Macro Definition Documentation

◆ DAG_INSTRUCTION [1/3]

#define DAG_INSTRUCTION ( NAME,
NARG,
ROUND_MODE,
INTRINSIC,
DAGN )
Value:
case ISD::STRICT_##DAGN:

◆ DAG_INSTRUCTION [2/3]

#define DAG_INSTRUCTION ( NAME,
NARG,
ROUND_MODE,
INTRINSIC,
DAGN )
Value:
case ISD::STRICT_##DAGN:

◆ DAG_INSTRUCTION [3/3]

#define DAG_INSTRUCTION ( NAME,
NARG,
ROUND_MODE,
INTRINSIC,
DAGN )
Value:
case ISD::STRICT_##DAGN:

◆ DEBUG_TYPE

#define DEBUG_TYPE   "legalize-types"

Definition at line 35 of file LegalizeVectorTypes.cpp.

Function Documentation

◆ BuildVectorFromScalar()

◆ coerceLoadedValue()

◆ CollectOpsToWiden()

◆ findMemType()

◆ getExtendForIntVecReduction()

◆ getSETCCOperandType()

EVT getSETCCOperandType ( SDValue N)
inlinestatic

Definition at line 6724 of file LegalizeVectorTypes.cpp.

References N.

◆ isLogicalMaskOp()

bool isLogicalMaskOp ( unsigned Opcode)
inlinestatic

Definition at line 6712 of file LegalizeVectorTypes.cpp.

References llvm::ISD::AND, llvm::ISD::OR, and llvm::ISD::XOR.

Referenced by isSETCCorConvertedSETCC().

◆ isSETCCOp()

bool isSETCCOp ( unsigned Opcode)
inlinestatic

◆ isSETCCorConvertedSETCC()