reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2079 const SDValue Zero = DAG.getConstant(0, SL, MVT::i32); 2080 const SDValue One = DAG.getConstant(1, SL, MVT::i32); 2082 SDValue VecSrc = DAG.getNode(ISD::BITCAST, SL, MVT::v2i32, Src); 2086 SDValue Hi = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, MVT::i32, VecSrc, One); 2088 SDValue Exp = extractF64Exponent(Hi, SL, DAG); 2093 const SDValue SignBitMask = DAG.getConstant(UINT32_C(1) << 31, SL, MVT::i32); 2094 SDValue SignBit = DAG.getNode(ISD::AND, SL, MVT::i32, Hi, SignBitMask); 2097 SDValue SignBit64 = DAG.getBuildVector(MVT::v2i32, SL, {Zero, SignBit}); 2098 SignBit64 = DAG.getNode(ISD::BITCAST, SL, MVT::i64, SignBit64); 2100 SDValue BcInt = DAG.getNode(ISD::BITCAST, SL, MVT::i64, Src); 2102 = DAG.getConstant((UINT64_C(1) << FractBits) - 1, SL, MVT::i64); 2104 SDValue Shr = DAG.getNode(ISD::SRA, SL, MVT::i64, FractMask, Exp); 2105 SDValue Not = DAG.getNOT(SL, Shr, MVT::i64); 2106 SDValue Tmp0 = DAG.getNode(ISD::AND, SL, MVT::i64, BcInt, Not); 2109 getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), MVT::i32); 2109 getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), MVT::i32); 2111 const SDValue FiftyOne = DAG.getConstant(FractBits - 1, SL, MVT::i32); 2113 SDValue ExpLt0 = DAG.getSetCC(SL, SetCCVT, Exp, Zero, ISD::SETLT); 2114 SDValue ExpGt51 = DAG.getSetCC(SL, SetCCVT, Exp, FiftyOne, ISD::SETGT); 2116 SDValue Tmp1 = DAG.getNode(ISD::SELECT, SL, MVT::i64, ExpLt0, SignBit64, Tmp0); 2117 SDValue Tmp2 = DAG.getNode(ISD::SELECT, SL, MVT::i64, ExpGt51, BcInt, Tmp1); 2119 return DAG.getNode(ISD::BITCAST, SL, MVT::f64, Tmp2);