LLVM API Documentation
#include <SelectionDAGNodes.h>
Public Member Functions | |
ArrayRef< int > | getMask () const |
int | getMaskElt (unsigned Idx) const |
bool | isSplat () const |
int | getSplatIndex () const |
![]() | |
unsigned | getOpcode () const |
bool | isTargetOpcode () const |
bool | isTargetMemoryOpcode () const |
bool | isMachineOpcode () const |
unsigned | getMachineOpcode () const |
bool | getHasDebugValue () const |
getHasDebugValue - get this bit. More... | |
void | setHasDebugValue (bool b) |
setHasDebugValue - set this bit. More... | |
bool | use_empty () const |
bool | hasOneUse () const |
size_t | use_size () const |
int | getNodeId () const |
void | setNodeId (int Id) |
setNodeId - Set unique node id. More... | |
unsigned | getIROrder () const |
void | setIROrder (unsigned Order) |
const DebugLoc | getDebugLoc () const |
getDebugLoc - Return the source location info. More... | |
void | setDebugLoc (const DebugLoc dl) |
use_iterator | use_begin () const |
bool | hasNUsesOfValue (unsigned NUses, unsigned Value) const |
bool | hasAnyUseOfValue (unsigned Value) const |
bool | isOnlyUserOf (SDNode *N) const |
bool | isOperandOf (SDNode *N) const |
bool | isPredecessorOf (const SDNode *N) const |
bool | hasPredecessor (const SDNode *N) const |
bool | hasPredecessorHelper (const SDNode *N, SmallPtrSet< const SDNode *, 32 > &Visited, SmallVectorImpl< const SDNode * > &Worklist) const |
unsigned | getNumOperands () const |
uint64_t | getConstantOperandVal (unsigned Num) const |
const SDValue & | getOperand (unsigned Num) const |
op_iterator | op_begin () const |
op_iterator | op_end () const |
SDVTList | getVTList () const |
SDNode * | getGluedNode () const |
const SDNode * | getGluedMachineNode () const |
SDNode * | getGluedUser () const |
unsigned | getNumValues () const |
EVT | getValueType (unsigned ResNo) const |
MVT | getSimpleValueType (unsigned ResNo) const |
unsigned | getValueSizeInBits (unsigned ResNo) const |
value_iterator | value_begin () const |
value_iterator | value_end () const |
std::string | getOperationName (const SelectionDAG *G=0) const |
void | print_types (raw_ostream &OS, const SelectionDAG *G) const |
void | print_details (raw_ostream &OS, const SelectionDAG *G) const |
void | print (raw_ostream &OS, const SelectionDAG *G=0) const |
void | printr (raw_ostream &OS, const SelectionDAG *G=0) const |
void | printrFull (raw_ostream &O, const SelectionDAG *G=0) const |
void | printrWithDepth (raw_ostream &O, const SelectionDAG *G=0, unsigned depth=100) const |
void | dump () const |
dump - Dump this node, for debugging. More... | |
void | dumpr () const |
dumpr - Dump (recursively) this node and its use-def subgraph. More... | |
void | dump (const SelectionDAG *G) const |
void | dumpr (const SelectionDAG *G) const |
void | dumprFull (const SelectionDAG *G=0) const |
void | dumprWithDepth (const SelectionDAG *G=0, unsigned depth=100) const |
void | Profile (FoldingSetNodeID &ID) const |
void | addUse (SDUse &U) |
![]() | |
Node () | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
![]() | |
SDNode * | getPrevNode () |
Get the previous node, or 0 for the list head. More... | |
const SDNode * | getPrevNode () const |
Get the previous node, or 0 for the list head. More... | |
SDNode * | getNextNode () |
Get the next node, or 0 for the list tail. More... | |
const SDNode * | getNextNode () const |
Get the next node, or 0 for the list tail. More... | |
Static Public Member Functions | |
static bool | isSplatMask (const int *Mask, EVT VT) |
static bool | classof (const SDNode *N) |
![]() | |
static use_iterator | use_end () |
static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Protected Member Functions | |
ShuffleVectorSDNode (EVT VT, unsigned Order, DebugLoc dl, SDValue N1, SDValue N2, const int *M) | |
![]() | |
SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs, const SDValue *Ops, unsigned NumOps) | |
SDNode (unsigned Opc, unsigned Order, const DebugLoc dl, SDVTList VTs) | |
void | InitOperands (SDUse *Ops, const SDValue &Op0) |
InitOperands - Initialize the operands list of this with 1 operand. More... | |
void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1) |
InitOperands - Initialize the operands list of this with 2 operands. More... | |
void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2) |
InitOperands - Initialize the operands list of this with 3 operands. More... | |
void | InitOperands (SDUse *Ops, const SDValue &Op0, const SDValue &Op1, const SDValue &Op2, const SDValue &Op3) |
InitOperands - Initialize the operands list of this with 4 operands. More... | |
void | InitOperands (SDUse *Ops, const SDValue *Vals, unsigned N) |
InitOperands - Initialize the operands list of this with N operands. More... | |
void | DropOperands () |
![]() | |
ilist_node () | |
Friends | |
class | SelectionDAG |
Additional Inherited Members | |
![]() | |
typedef SDUse * | op_iterator |
typedef const EVT * | value_iterator |
![]() | |
static SDVTList | getSDVTList (EVT VT) |
![]() | |
uint16_t | SubclassData: 14 |
ShuffleVectorSDNode - This SDNode is used to implement the code generator support for the llvm IR shufflevector instruction. It combines elements from two input vectors into a new input vector, with the selection and ordering of elements determined by an array of integers, referred to as the shuffle mask. For input vectors of width N, mask indices of 0..N-1 refer to elements from the LHS input, and indices from N to 2N-1 the RHS. An index of -1 is treated as undef, such that the code generator may put any value in the corresponding element of the result.
Definition at line 1205 of file SelectionDAGNodes.h.
|
inlineprotected |
Definition at line 1213 of file SelectionDAGNodes.h.
References llvm::SDNode::InitOperands().
Definition at line 1241 of file SelectionDAGNodes.h.
References llvm::SDNode::getOpcode(), and llvm::ISD::VECTOR_SHUFFLE.
|
inline |
Definition at line 1220 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), and llvm::makeArrayRef().
Referenced by Compact8x32ShuffleNode(), getMOVLP(), llvm::AArch64TargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLEv16i8(), and LowerVECTOR_SHUFFLEv32i8().
|
inline |
Definition at line 1224 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType().
Referenced by AddNodeIDCustom(), CommuteVectorShuffle(), getMOVLP(), getShufflePALIGNRImmediate(), getShufflePSHUFHWImmediate(), getShufflePSHUFLWImmediate(), getShuffleSHUFImmediate(), getShuffleVPERM2X128Immediate(), llvm::PPC::getVSPLTImmediate(), isShuffleHigh128VectorInsertLow(), isShuffleLow128VectorInsertHigh(), isShuffleMaskConsecutive(), llvm::PPC::isSplatShuffleMask(), isVectorShiftLeft(), isVectorShiftRight(), isVMerge(), llvm::PPC::isVPKUHUMShuffleMask(), llvm::PPC::isVPKUWUMShuffleMask(), llvm::PPC::isVSLDOIShuffleMask(), isZeroShuffle(), LowerVECTOR_SHUFFLE_256(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv8i16(), LowerVectorBroadcast(), LowerVectorIntExtend(), partitionShuffleOfConcats(), PerformShuffleCombine256(), PerformVECTOR_SHUFFLECombine(), and RewriteAsNarrowerShuffle().
|
inline |
Definition at line 1230 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), isSplat(), and llvm_unreachable.
Referenced by llvm::AArch64TargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), and PromoteSplat().
|
inline |
Definition at line 1229 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), and isSplatMask().
Referenced by getSplatIndex(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv8i16(), LowerVectorBroadcast(), and NormalizeVectorShuffle().
Definition at line 6521 of file SelectionDAG.cpp.
References llvm::EVT::getVectorNumElements().
Referenced by llvm::ARMTargetLowering::isShuffleMaskLegal(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSplat(), llvm::AArch64TargetLowering::LowerVECTOR_SHUFFLE(), and LowerVECTOR_SHUFFLE().
|
friend |
Definition at line 1212 of file SelectionDAGNodes.h.