[X86] Change lowerBuildVectorToBitOp() to take a BuildVectorSDNode. NFC.
llvm-svn: 287644
This commit is contained in:
parent
0aa1c32d14
commit
9a355219d1
|
@ -6732,17 +6732,18 @@ static SDValue LowerToHorizontalOp(const BuildVectorSDNode *BV,
|
|||
/// NOTE: Its not in our interest to start make a general purpose vectorizer
|
||||
/// from this, but enough scalar bit operations are created from the later
|
||||
/// legalization + scalarization stages to need basic support.
|
||||
static SDValue lowerBuildVectorToBitOp(SDValue Op, SelectionDAG &DAG) {
|
||||
static SDValue lowerBuildVectorToBitOp(BuildVectorSDNode *Op,
|
||||
SelectionDAG &DAG) {
|
||||
SDLoc DL(Op);
|
||||
MVT VT = Op.getSimpleValueType();
|
||||
MVT VT = Op->getSimpleValueType(0);
|
||||
unsigned NumElems = VT.getVectorNumElements();
|
||||
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
|
||||
|
||||
// Check that all elements have the same opcode.
|
||||
// TODO: Should we allow UNDEFS and if so how many?
|
||||
unsigned Opcode = Op.getOperand(0).getOpcode();
|
||||
unsigned Opcode = Op->getOperand(0).getOpcode();
|
||||
for (unsigned i = 1; i < NumElems; ++i)
|
||||
if (Opcode != Op.getOperand(i).getOpcode())
|
||||
if (Opcode != Op->getOperand(i).getOpcode())
|
||||
return SDValue();
|
||||
|
||||
// TODO: We may be able to add support for other Ops (ADD/SUB + shifts).
|
||||
|
@ -6828,7 +6829,7 @@ X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const {
|
|||
return HorizontalOp;
|
||||
if (SDValue Broadcast = LowerVectorBroadcast(BV, Subtarget, DAG))
|
||||
return Broadcast;
|
||||
if (SDValue BitOp = lowerBuildVectorToBitOp(Op, DAG))
|
||||
if (SDValue BitOp = lowerBuildVectorToBitOp(BV, DAG))
|
||||
return BitOp;
|
||||
|
||||
unsigned EVTBits = ExtVT.getSizeInBits();
|
||||
|
|
Loading…
Reference in New Issue