diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp index f69a666e568..9e31699c559 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp @@ -885,16 +885,16 @@ void DAGTypeLegalizer::ExpandFloatRes_LOAD(SDNode *N, SDValue &Lo,    assert(NVT.isByteSized() && "Expanded type not byte sized!");    assert(LD->getMemoryVT().bitsLE(NVT) && "Float type not round?"); -  Lo = DAG.getExtLoad(LD->getExtensionType(), NVT, Chain, Ptr, +  Hi = DAG.getExtLoad(LD->getExtensionType(), NVT, Chain, Ptr,                        LD->getSrcValue(), LD->getSrcValueOffset(),                        LD->getMemoryVT(),                        LD->isVolatile(), LD->getAlignment());    // Remember the chain. -  Chain = Lo.getValue(1); +  Chain = Hi.getValue(1); -  // The high part is undefined. -  Hi = DAG.getNode(ISD::UNDEF, NVT); +  // The low part is zero. +  Lo = DAG.getConstantFP(APFloat(APInt(NVT.getSizeInBits(), 0)), NVT);    // Modified the chain - switch anything that used the old chain to use the    // new one. @@ -1039,15 +1039,15 @@ void DAGTypeLegalizer::FloatExpandSetCCOperands(SDValue &NewLHS,    assert(VT == MVT::ppcf128 && "Unsupported setcc type!");    // FIXME:  This generated code sucks.  We want to generate -  //         FCMP crN, hi1, hi2 +  //         FCMPU crN, hi1, hi2    //         BNE crN, L: -  //         FCMP crN, lo1, lo2 +  //         FCMPU crN, lo1, lo2    // The following can be improved, but not that much.    SDValue Tmp1, Tmp2, Tmp3; -  Tmp1 = DAG.getSetCC(TLI.getSetCCResultType(LHSHi), LHSHi, RHSHi, ISD::SETEQ); +  Tmp1 = DAG.getSetCC(TLI.getSetCCResultType(LHSHi), LHSHi, RHSHi, ISD::SETOEQ);    Tmp2 = DAG.getSetCC(TLI.getSetCCResultType(LHSLo), LHSLo, RHSLo, CCCode);    Tmp3 = DAG.getNode(ISD::AND, Tmp1.getValueType(), Tmp1, Tmp2); -  Tmp1 = DAG.getSetCC(TLI.getSetCCResultType(LHSHi), LHSHi, RHSHi, ISD::SETNE); +  Tmp1 = DAG.getSetCC(TLI.getSetCCResultType(LHSHi), LHSHi, RHSHi, ISD::SETUNE);    Tmp2 = DAG.getSetCC(TLI.getSetCCResultType(LHSHi), LHSHi, RHSHi, CCCode);    Tmp1 = DAG.getNode(ISD::AND, Tmp1.getValueType(), Tmp1, Tmp2);    NewLHS = DAG.getNode(ISD::OR, Tmp1.getValueType(), Tmp1, Tmp3);  | 

