LLVM API Documentation
#include <SelectionDAGNodes.h>
Public Member Functions | |
ArrayRef< int > | getMask () const |
int | getMaskElt (unsigned Idx) const |
bool | isSplat () const |
int | getSplatIndex () const |
Static Public Member Functions | |
static bool | isSplatMask (const int *Mask, EVT VT) |
static bool | classof (const SDNode *N) |
Protected Member Functions | |
ShuffleVectorSDNode (EVT VT, unsigned Order, DebugLoc dl, SDValue N1, SDValue N2, const int *M) | |
Friends | |
class | SelectionDAG |
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 1321 of file SelectionDAGNodes.h.
llvm::ShuffleVectorSDNode::ShuffleVectorSDNode | ( | EVT | VT, |
unsigned | Order, | ||
DebugLoc | dl, | ||
SDValue | N1, | ||
SDValue | N2, | ||
const int * | M | ||
) | [inline, protected] |
Definition at line 1329 of file SelectionDAGNodes.h.
References llvm::SDNode::InitOperands().
static bool llvm::ShuffleVectorSDNode::classof | ( | const SDNode * | N | ) | [inline, static] |
Definition at line 1357 of file SelectionDAGNodes.h.
References llvm::SDNode::getOpcode(), and llvm::ISD::VECTOR_SHUFFLE.
ArrayRef<int> llvm::ShuffleVectorSDNode::getMask | ( | ) | const [inline] |
Definition at line 1336 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), and llvm::makeArrayRef().
Referenced by Compact8x32ShuffleNode(), getINSERTPS(), getMOVLP(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLEtoBlend(), LowerVECTOR_SHUFFLEv16i16(), LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv32i8(), lowerVectorShuffle(), and PerformShuffleCombine().
int llvm::ShuffleVectorSDNode::getMaskElt | ( | unsigned | Idx | ) | const [inline] |
Definition at line 1340 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType().
Referenced by AddNodeIDCustom(), llvm::SelectionDAG::getCommutedVectorShuffle(), getMOVLP(), getShuffleAlignrImmediate(), getShufflePSHUFHWImmediate(), getShufflePSHUFLWImmediate(), getShuffleSHUFImmediate(), getShuffleVPERM2X128Immediate(), getUnderlyingExtractedFromVec(), 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_SHUFFLEv8i16(), LowerVectorBroadcast(), LowerVectorIntExtend(), partitionShuffleOfConcats(), PerformShuffleCombine(), PerformShuffleCombine256(), PerformVECTOR_SHUFFLECombine(), and RewriteAsNarrowerShuffle().
int llvm::ShuffleVectorSDNode::getSplatIndex | ( | ) | const [inline] |
Definition at line 1346 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), and llvm_unreachable.
Referenced by LowerVECTOR_SHUFFLE(), and PromoteSplat().
bool llvm::ShuffleVectorSDNode::isSplat | ( | ) | const [inline] |
Definition at line 1345 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType().
Referenced by LowerVECTOR_SHUFFLEv16i8(), LowerVECTOR_SHUFFLEv8i16(), LowerVectorBroadcast(), and NormalizeVectorShuffle().
bool ShuffleVectorSDNode::isSplatMask | ( | const int * | Mask, |
EVT | VT | ||
) | [static] |
Definition at line 6750 of file SelectionDAG.cpp.
References llvm::EVT::getVectorNumElements().
Referenced by llvm::AArch64TargetLowering::isShuffleMaskLegal(), llvm::ARMTargetLowering::isShuffleMaskLegal(), and LowerVECTOR_SHUFFLE().
friend class SelectionDAG [friend] |
Reimplemented from llvm::SDNode.
Definition at line 1328 of file SelectionDAGNodes.h.