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 1176 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 1184 of file SelectionDAGNodes.h.
References llvm::SDNode::InitOperands().
Definition at line 1211 of file SelectionDAGNodes.h.
References llvm::SDNode::getOpcode(), and llvm::ISD::VECTOR_SHUFFLE.
| ArrayRef<int> llvm::ShuffleVectorSDNode::getMask | ( | ) | const [inline] |
Definition at line 1190 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), and llvm::makeArrayRef().
Referenced by Compact8x32ShuffleNode(), getMOVLP(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_128v4(), LowerVECTOR_SHUFFLEv16i8(), and LowerVECTOR_SHUFFLEv32i8().
| int llvm::ShuffleVectorSDNode::getMaskElt | ( | unsigned | Idx | ) | const [inline] |
Definition at line 1194 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType().
Referenced by AddNodeIDCustom(), CommuteVectorShuffle(), getMOVLP(), getShuffleCLImmediate(), 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(), partitionShuffleOfConcats(), PerformShuffleCombine256(), PerformVECTOR_SHUFFLECombine(), and RewriteAsNarrowerShuffle().
| int llvm::ShuffleVectorSDNode::getSplatIndex | ( | ) | const [inline] |
Definition at line 1200 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), and isSplat().
Referenced by LowerVECTOR_SHUFFLE(), and PromoteSplat().
| bool llvm::ShuffleVectorSDNode::isSplat | ( | ) | const [inline] |
Definition at line 1199 of file SelectionDAGNodes.h.
References llvm::SDNode::getValueType(), and isSplatMask().
Referenced by getSplatIndex(), LowerVECTOR_SHUFFLEv16i8(), and LowerVECTOR_SHUFFLEv8i16().
Definition at line 6333 of file SelectionDAG.cpp.
References llvm::EVT::getVectorNumElements().
Referenced by llvm::ARMTargetLowering::isShuffleMaskLegal(), llvm::X86TargetLowering::isShuffleMaskLegal(), isSplat(), and LowerVECTOR_SHUFFLE().
friend class SelectionDAG [friend] |
Reimplemented from llvm::SDNode.
Definition at line 1183 of file SelectionDAGNodes.h.