mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Implement review feedback for vector shuffle work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70372 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -356,7 +356,7 @@ public:
|
||||
|
||||
/// getVectorShuffle - Return an ISD::VECTOR_SHUFFLE node. The number of
|
||||
/// elements in VT, which must be a vector type, must match the number of
|
||||
/// mask elements NumElts. A negative integer mask element is treated as
|
||||
/// mask elements NumElts. A integer mask element equal to -1 is treated as
|
||||
/// undefined.
|
||||
SDValue getVectorShuffle(MVT VT, DebugLoc dl, SDValue N1, SDValue N2,
|
||||
const int *MaskElts);
|
||||
@@ -822,7 +822,7 @@ public:
|
||||
|
||||
/// getShuffleScalarElt - Returns the scalar element that will make up the ith
|
||||
/// element of the result of the vector shuffle.
|
||||
SDValue getShuffleScalarElt(const SDNode *N, unsigned Idx);
|
||||
SDValue getShuffleScalarElt(const ShuffleVectorSDNode *N, unsigned Idx);
|
||||
|
||||
private:
|
||||
bool RemoveNodeFromCSEMaps(SDNode *N);
|
||||
|
@@ -1704,12 +1704,24 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
/// 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.
|
||||
class ShuffleVectorSDNode : public SDNode {
|
||||
SDUse Ops[2];
|
||||
int *Mask;
|
||||
|
||||
// The memory for Mask is owned by the SelectionDAG's OperandAllocator, and
|
||||
// is freed when the SelectionDAG object is destroyed.
|
||||
const int *Mask;
|
||||
protected:
|
||||
friend class SelectionDAG;
|
||||
ShuffleVectorSDNode(MVT VT, DebugLoc dl, SDValue N1, SDValue N2, int *M)
|
||||
ShuffleVectorSDNode(MVT VT, DebugLoc dl, SDValue N1, SDValue N2,
|
||||
const int *M)
|
||||
: SDNode(ISD::VECTOR_SHUFFLE, dl, getSDVTList(VT)), Mask(M) {
|
||||
InitOperands(Ops, N1, N2);
|
||||
}
|
||||
|
Reference in New Issue
Block a user