Deleted Added
full compact
94a95,114
> if (InVT.isVector() && OutVT.isInteger()) {
> // Handle cases like i64 = BIT_CONVERT v1i64 on x86, where the operand
> // is legal but the result is not.
> MVT NVT = MVT::getVectorVT(TLI.getTypeToTransformTo(OutVT), 2);
>
> if (isTypeLegal(NVT)) {
> SDValue CastInOp = DAG.getNode(ISD::BIT_CONVERT, dl, NVT, InOp);
> MVT EltNVT = NVT.getVectorElementType();
> Lo = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, EltNVT, CastInOp,
> DAG.getIntPtrConstant(0));
> Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, EltNVT, CastInOp,
> DAG.getIntPtrConstant(1));
>
> if (TLI.isBigEndian())
> std::swap(Lo, Hi);
>
> return;
> }
> }
>