forked from OSchip/llvm-project
Special case handling two wide build_vector(0, x).
llvm-svn: 27961
This commit is contained in:
parent
63bd4d3730
commit
5c2bfb069e
|
@ -3236,10 +3236,6 @@ SDOperand X86TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
|
|||
MVT::ValueType EVT = MVT::getVectorBaseType(VT);
|
||||
unsigned EVTBits = MVT::getSizeInBits(EVT);
|
||||
|
||||
// Let legalizer expand 2-widde build_vector's.
|
||||
if (EVTBits == 64)
|
||||
return SDOperand();
|
||||
|
||||
unsigned NumElems = Op.getNumOperands();
|
||||
unsigned NumZero = 0;
|
||||
unsigned NumNonZero = 0;
|
||||
|
@ -3291,6 +3287,10 @@ SDOperand X86TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
|
|||
}
|
||||
}
|
||||
|
||||
// Let legalizer expand 2-widde build_vector's.
|
||||
if (EVTBits == 64)
|
||||
return SDOperand();
|
||||
|
||||
// If element VT is < 32 bits, convert it to inserts into a zero vector.
|
||||
if (EVTBits == 8) {
|
||||
SDOperand V = LowerBuildVectorv16i8(Op, NonZeros,NumNonZero,NumZero, DAG);
|
||||
|
|
Loading…
Reference in New Issue