diff options
author | Reid Kleckner <rnk@google.com> | 2019-02-23 01:19:42 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-02-23 01:19:42 +0000 |
commit | e3876637cff9fd254884942bc874232b3fd33178 (patch) | |
tree | 47766f0d67c60886f6cc7a6425ae266174da7cbf /llvm/lib/CodeGen | |
parent | f250cf8b4106038ef656b7c40bd2ce1689c8d198 (diff) | |
download | bcm5719-llvm-e3876637cff9fd254884942bc874232b3fd33178.tar.gz bcm5719-llvm-e3876637cff9fd254884942bc874232b3fd33178.zip |
Revert r354363 & co "[X86][SSE] Generalize X86ISD::BLENDI support to more value types"
r354363 caused https://crbug.com/934963#c1, which has a plain C reduced
test case.
I also had to revert some dependent changes:
- r354648
- r354647
- r354640
- r354511
llvm-svn: 354713
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp index cfcab55ce4e..bc88eaad38e 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp @@ -3655,6 +3655,8 @@ SDValue DAGTypeLegalizer::ExpandIntOp_ATOMIC_STORE(SDNode *N) { SDValue DAGTypeLegalizer::PromoteIntRes_EXTRACT_SUBVECTOR(SDNode *N) { + SDValue InOp0 = N->getOperand(0); + EVT InVT = InOp0.getValueType(); EVT OutVT = N->getValueType(0); EVT NOutVT = TLI.getTypeToTransformTo(*DAG.getContext(), OutVT); @@ -3665,12 +3667,6 @@ SDValue DAGTypeLegalizer::PromoteIntRes_EXTRACT_SUBVECTOR(SDNode *N) { SDLoc dl(N); SDValue BaseIdx = N->getOperand(1); - SDValue InOp0 = N->getOperand(0); - if (getTypeAction(InOp0.getValueType()) == TargetLowering::TypePromoteInteger) - InOp0 = GetPromotedInteger(N->getOperand(0)); - - EVT InVT = InOp0.getValueType(); - SmallVector<SDValue, 8> Ops; Ops.reserve(OutNumElems); for (unsigned i = 0; i != OutNumElems; ++i) { @@ -3681,7 +3677,7 @@ SDValue DAGTypeLegalizer::PromoteIntRes_EXTRACT_SUBVECTOR(SDNode *N) { SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, InVT.getVectorElementType(), N->getOperand(0), Index); - SDValue Op = DAG.getAnyExtOrTrunc(Ext, dl, NOutVTElem); + SDValue Op = DAG.getNode(ISD::ANY_EXTEND, dl, NOutVTElem, Ext); // Insert the converted element to the new vector. Ops.push_back(Op); } |