Lines Matching refs:APFloat
144 APFloat FP(DestTy->getFltSemantics(), Result); in FoldBitCast()
1698 APFloat APF(V); in GetConstantFoldFPValue()
1700 APF.convert(Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &unused); in GetConstantFoldFPValue()
1704 return ConstantFP::get(Ty->getContext(), APFloat(V)); in GetConstantFoldFPValue()
1728 Constant *ConstantFoldFP(double (*NativeFP)(double), const APFloat &V, in ConstantFoldFP()
1741 const APFloat &V, const APFloat &W, Type *Ty) { in ConstantFoldBinaryFP()
1820 Constant *ConstantFoldSSEConvertToInt(const APFloat &Val, bool roundTowardZero, in ConstantFoldSSEConvertToInt()
1829 APFloat::roundingMode mode = roundTowardZero? APFloat::rmTowardZero in ConstantFoldSSEConvertToInt()
1830 : APFloat::rmNearestTiesToEven; in ConstantFoldSSEConvertToInt()
1831 APFloat::opStatus status = in ConstantFoldSSEConvertToInt()
1834 if (status != APFloat::opOK && in ConstantFoldSSEConvertToInt()
1835 (!roundTowardZero || status != APFloat::opInexact)) in ConstantFoldSSEConvertToInt()
1847 APFloat APF = Op->getValueAPF(); in getValueAsDouble()
1848 APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &unused); in getValueAsDouble()
1870 APFloat::opStatus St) { in mayFoldConstrained()
1876 if (St == APFloat::opStatus::opOK) { in mayFoldConstrained()
1966 APFloat Val(Op->getValueAPF()); in ConstantFoldScalarCall1()
1969 Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
1974 APFloat U = Op->getValueAPF(); in ConstantFoldScalarCall1()
1986 APFloat::opStatus Status = in ConstantFoldScalarCall1()
1987 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
1989 if (Status == APFloat::opOK || Status == APFloat::opInexact) in ConstantFoldScalarCall1()
2001 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2011 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2016 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2021 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2026 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2031 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2036 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2050 APFloat FloorU(U); in ConstantFoldScalarCall1()
2051 FloorU.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2052 APFloat FractU(U - FloorU); in ConstantFoldScalarCall1()
2053 APFloat AlmostOne(U.getSemantics(), 1); in ConstantFoldScalarCall1()
2061 Optional<APFloat::roundingMode> RM; in ConstantFoldScalarCall1()
2074 RM = APFloat::rmNearestTiesToAway; in ConstantFoldScalarCall1()
2077 RM = APFloat::rmTowardPositive; in ConstantFoldScalarCall1()
2080 RM = APFloat::rmTowardNegative; in ConstantFoldScalarCall1()
2083 RM = APFloat::rmTowardZero; in ConstantFoldScalarCall1()
2089 APFloat::opStatus St = U.roundToIntegral(*RM); in ConstantFoldScalarCall1()
2091 St == APFloat::opInexact) { in ConstantFoldScalarCall1()
2100 U = APFloat::getQNaN(U.getSemantics()); in ConstantFoldScalarCall1()
2115 APFloat APF = Op->getValueAPF(); in ConstantFoldScalarCall1()
2131 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2192 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2221 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2233 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2265 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2272 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2306 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2323 APFloat Val(APFloat::IEEEhalf(), Op->getValue()); in ConstantFoldScalarCall1()
2326 APFloat::opStatus status = Val.convert( in ConstantFoldScalarCall1()
2327 Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2331 assert(status == APFloat::opOK && !lost && in ConstantFoldScalarCall1()
2419 APFloat Op1V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2424 APFloat Op2V = Op2->getValueAPF(); in ConstantFoldScalarCall2()
2428 APFloat Res = Op1V; in ConstantFoldScalarCall2()
2429 APFloat::opStatus St; in ConstantFoldScalarCall2()
2459 return ConstantFP::get(Ty->getContext(), APFloat::copySign(Op1V, Op2V)); in ConstantFoldScalarCall2()
2504 APFloat V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2505 if (APFloat::opStatus::opOK == V.mod(Op2->getValueAPF())) in ConstantFoldScalarCall2()
2512 APFloat V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2513 if (APFloat::opStatus::opOK == V.remainder(Op2->getValueAPF())) in ConstantFoldScalarCall2()
2531 APFloat((float)std::pow((float)Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2536 APFloat((float)std::pow((float)Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2541 APFloat((double)std::pow(Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2549 APFloat Result = scalbn(Op1->getValueAPF(), Op2C->getSExtValue(), in ConstantFoldScalarCall2()
2550 APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall2()
2754 static APFloat ConstantFoldAMDGCNCubeIntrinsic(Intrinsic::ID IntrinsicID, in ConstantFoldAMDGCNCubeIntrinsic()
2755 const APFloat &S0, in ConstantFoldAMDGCNCubeIntrinsic()
2756 const APFloat &S1, in ConstantFoldAMDGCNCubeIntrinsic()
2757 const APFloat &S2) { in ConstantFoldAMDGCNCubeIntrinsic()
2760 APFloat MA(Sem), SC(Sem), TC(Sem); in ConstantFoldAMDGCNCubeIntrinsic()
2799 return APFloat(Sem, ID); in ConstantFoldAMDGCNCubeIntrinsic()
2860 const APFloat &C1 = Op1->getValueAPF(); in ConstantFoldScalarCall3()
2861 const APFloat &C2 = Op2->getValueAPF(); in ConstantFoldScalarCall3()
2862 const APFloat &C3 = Op3->getValueAPF(); in ConstantFoldScalarCall3()
2866 APFloat Res = C1; in ConstantFoldScalarCall3()
2867 APFloat::opStatus St; in ConstantFoldScalarCall3()
2890 return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); in ConstantFoldScalarCall3()
2896 APFloat V = C1; in ConstantFoldScalarCall3()
2897 V.fusedMultiplyAdd(C2, C3, APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall3()
2904 APFloat V = ConstantFoldAMDGCNCubeIntrinsic(IntrinsicID, C1, C2, C3); in ConstantFoldScalarCall3()
3196 const APFloat &Op = OpC->getValueAPF(); in isMathLibCallNoop()
3214 return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); in isMathLibCallNoop()
3216 return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); in isMathLibCallNoop()
3224 return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); in isMathLibCallNoop()
3226 return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); in isMathLibCallNoop()
3254 return !(Op < APFloat(Op.getSemantics(), "-1") || in isMathLibCallNoop()
3255 Op > APFloat(Op.getSemantics(), "1")); in isMathLibCallNoop()
3265 return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); in isMathLibCallNoop()
3267 return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); in isMathLibCallNoop()
3287 const APFloat &Op0 = Op0C->getValueAPF(); in isMathLibCallNoop()
3288 const APFloat &Op1 = Op1C->getValueAPF(); in isMathLibCallNoop()