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:

protected
public PersistentId

Method Overview

Inherited from SDNode:

Inherited from FoldingSetBase::Node:

Methods

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)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1564

Parameters

const llvm::SDNode* N

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

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1523

int getMaskElt(unsigned int Idx) const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1528

Parameters

unsigned int Idx

int getSplatIndex() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1535

bool isSplat() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1533

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