class ShuffleVectorSDNode
Declaration
class ShuffleVectorSDNode : public SDNode { /* full declaration omitted */ };
Description
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.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1511
Inherits from: SDNode
Member Variables
- private const int* Mask
Inherited from SDNode:
Method Overview
- protected ShuffleVectorSDNode(llvm::EVT VT, unsigned int Order, const llvm::DebugLoc & dl, const int * M)
- public static bool classof(const llvm::SDNode * N)
- public static void commuteMask(MutableArrayRef<int> Mask)
- public ArrayRef<int> getMask() const
- public int getMaskElt(unsigned int Idx) const
- public int getSplatIndex() const
- public bool isSplat() const
- public static bool isSplatMask(const int * Mask, llvm::EVT VT)
Inherited from SDNode:
- protected DropOperands
- public Profile
- public addUse
- public areOnlyUsersOf
- public dump
- public dump
- public dumpr
- public dumpr
- public dumprFull
- public dumprWithDepth
- public getConstantOperandAPInt
- public getConstantOperandVal
- public getDebugLoc
- public getFlags
- public getGluedNode
- public getGluedUser
- public getHasDebugValue
- public getIROrder
- public getIndexedModeName
- public getMachineOpcode
- public getMaxNumOperands
- public getNodeId
- public getNumOperands
- public getNumValues
- public getOpcode
- public getOperand
- public getOperationName
- protected getSDVTList
- public getSimpleValueType
- public getVTList
- public getValueSizeInBits
- public getValueType
- public hasAnyUseOfValue
- public hasNUsesOfValue
- public hasOneUse
- public hasPredecessor
- public hasPredecessorHelper
- public intersectFlagsWith
- public isDivergent
- public isMachineOpcode
- public isMemIntrinsic
- public isOnlyUserOf
- public isOperandOf
- public isPredecessorOf
- public isStrictFPOpcode
- public isTargetMemoryOpcode
- public isTargetOpcode
- public isTargetStrictFPOpcode
- public isUndef
- public isVPOpcode
- public op_begin
- public op_end
- public op_values
- public ops
- public print
- public print_details
- public print_types
- public printr
- public printrFull
- public printrWithDepth
- public setDebugLoc
- public setFlags
- public setHasDebugValue
- public setIROrder
- public setNodeId
- public use_begin
- public use_empty
- public use_end
- public use_size
- public uses
- public uses
- public value_begin
- public value_end
- public values
Inherited from FoldingSetBase::Node:
Methods
¶ShuffleVectorSDNode(llvm::EVT VT,
unsigned int Order,
const llvm::DebugLoc& dl,
const int* M)
ShuffleVectorSDNode(llvm::EVT VT,
unsigned int Order,
const llvm::DebugLoc& dl,
const int* M)
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1519
Parameters
- llvm::EVT VT
- unsigned int Order
- const llvm::DebugLoc& dl
- const int* M
¶static bool classof(const llvm::SDNode* N)
static bool classof(const llvm::SDNode* N)
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1564
Parameters
- const llvm::SDNode* N
¶static void commuteMask(MutableArrayRef<int> Mask)
static void commuteMask(MutableArrayRef<int> Mask)
Description
Change values in a shuffle permute mask assuming the two vector operands have swapped position.
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1551
Parameters
- MutableArrayRef<int> Mask
¶ArrayRef<int> getMask() const
ArrayRef<int> getMask() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1523
¶int getMaskElt(unsigned int Idx) const
int getMaskElt(unsigned int Idx) const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1528
Parameters
- unsigned int Idx
¶int getSplatIndex() const
int getSplatIndex() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1535
¶bool isSplat() const
bool isSplat() const
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1533
¶static bool isSplatMask(const int* Mask,
llvm::EVT VT)
static bool isSplatMask(const int* Mask,
llvm::EVT VT)
Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1547
Parameters
- const int* Mask
- llvm::EVT VT