LLVM 22.0.0git
LegalizeVectorOps.cpp File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/VectorUtils.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/CodeGenTypes/MachineValueType.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstdint>
#include <iterator>
#include <utility>
#include "llvm/IR/ConstrainedOps.def"
#include "llvm/IR/VPIntrinsics.def"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "legalizevectorops"
#define DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN)
#define BEGIN_REGISTER_VP_SDNODE(VPID, LEGALPOS, ...)
#define DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN)

Functions

static void createBSWAPShuffleMask (EVT VT, SmallVectorImpl< int > &ShuffleMask)

Macro Definition Documentation

◆ BEGIN_REGISTER_VP_SDNODE

#define BEGIN_REGISTER_VP_SDNODE ( VPID,
LEGALPOS,
... )
Value:
case ISD::VPID: { \
EVT LegalizeVT = LEGALPOS < 0 ? Node->getValueType(-(1 + LEGALPOS)) \
: Node->getOperand(LEGALPOS).getValueType(); \
if (ISD::VPID == ISD::VP_SETCC) { \
ISD::CondCode CCCode = cast<CondCodeSDNode>(Node->getOperand(2))->get(); \
Action = TLI.getCondCodeAction(CCCode, LegalizeVT.getSimpleVT()); \
if (Action != TargetLowering::Legal) \
break; \
} \
/* Defer non-vector results to LegalizeDAG. */ \
if (!Node->getValueType(0).isVector() && \
Node->getValueType(0) != MVT::Other) { \
Action = TargetLowering::Legal; \
break; \
} \
Action = TLI.getOperationAction(Node->getOpcode(), LegalizeVT); \
} break;
CondCode
ISD::CondCode enum - These are ordered carefully to make the bitfields below work out,...
NodeAddr< NodeBase * > Node
Definition RDFGraph.h:381
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
Definition Casting.h:565
Extended Value Type.
Definition ValueTypes.h:35
MVT getSimpleVT() const
Return the SimpleValueType held in the specified simple EVT.
Definition ValueTypes.h:316

◆ DAG_INSTRUCTION [1/2]

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

◆ DAG_INSTRUCTION [2/2]

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

◆ DEBUG_TYPE

#define DEBUG_TYPE   "legalizevectorops"

Definition at line 51 of file LegalizeVectorOps.cpp.

Function Documentation

◆ createBSWAPShuffleMask()

void createBSWAPShuffleMask ( EVT VT,
SmallVectorImpl< int > & ShuffleMask )
static