1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00

Special case handling two wide build_vector(0, x).

llvm-svn: 27961
This commit is contained in:
Evan Cheng 2006-04-24 22:58:52 +00:00
parent 3306427d87
commit 0282b48ec2

View File

@ -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);