Lines Matching refs:APFloat
136 APFloat FP(DestTy->getFltSemantics(), Result); in FoldBitCast()
1361 const APFloat &APF = CFP->getValueAPF(); in FlushFPConstant()
1377 APFloat::getZero(Ty->getFltSemantics(), APF.isNegative())); in FlushFPConstant()
1383 APFloat::getZero(Ty->getFltSemantics(), false)); in FlushFPConstant()
1735 APFloat APF(V); in GetConstantFoldFPValue()
1737 APF.convert(Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &unused); in GetConstantFoldFPValue()
1741 return ConstantFP::get(Ty->getContext(), APFloat(V)); in GetConstantFoldFPValue()
1765 Constant *ConstantFoldFP(double (*NativeFP)(double), const APFloat &V, in ConstantFoldFP()
1778 const APFloat &V, const APFloat &W, Type *Ty) { in ConstantFoldBinaryFP()
1857 Constant *ConstantFoldSSEConvertToInt(const APFloat &Val, bool roundTowardZero, in ConstantFoldSSEConvertToInt()
1866 APFloat::roundingMode mode = roundTowardZero? APFloat::rmTowardZero in ConstantFoldSSEConvertToInt()
1867 : APFloat::rmNearestTiesToEven; in ConstantFoldSSEConvertToInt()
1868 APFloat::opStatus status = in ConstantFoldSSEConvertToInt()
1871 if (status != APFloat::opOK && in ConstantFoldSSEConvertToInt()
1872 (!roundTowardZero || status != APFloat::opInexact)) in ConstantFoldSSEConvertToInt()
1884 APFloat APF = Op->getValueAPF(); in getValueAsDouble()
1885 APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &unused); in getValueAsDouble()
1907 APFloat::opStatus St) { in mayFoldConstrained()
1913 if (St == APFloat::opStatus::opOK) in mayFoldConstrained()
1996 APFloat Val(Op->getValueAPF()); in ConstantFoldScalarCall1()
1999 Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2004 APFloat U = Op->getValueAPF(); in ConstantFoldScalarCall1()
2016 APFloat::opStatus Status = in ConstantFoldScalarCall1()
2017 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2019 if (Status == APFloat::opOK || Status == APFloat::opInexact) in ConstantFoldScalarCall1()
2031 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2041 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2046 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2051 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2056 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2061 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2066 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2080 APFloat FloorU(U); in ConstantFoldScalarCall1()
2081 FloorU.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2082 APFloat FractU(U - FloorU); in ConstantFoldScalarCall1()
2083 APFloat AlmostOne(U.getSemantics(), 1); in ConstantFoldScalarCall1()
2091 Optional<APFloat::roundingMode> RM; in ConstantFoldScalarCall1()
2104 RM = APFloat::rmNearestTiesToAway; in ConstantFoldScalarCall1()
2107 RM = APFloat::rmTowardPositive; in ConstantFoldScalarCall1()
2110 RM = APFloat::rmTowardNegative; in ConstantFoldScalarCall1()
2113 RM = APFloat::rmTowardZero; in ConstantFoldScalarCall1()
2119 APFloat::opStatus St = U.roundToIntegral(*RM); in ConstantFoldScalarCall1()
2121 St == APFloat::opInexact) { in ConstantFoldScalarCall1()
2130 U = APFloat::getQNaN(U.getSemantics()); in ConstantFoldScalarCall1()
2145 const APFloat &APF = Op->getValueAPF(); in ConstantFoldScalarCall1()
2161 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2224 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2253 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2265 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2297 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2304 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2338 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2355 APFloat Val(APFloat::IEEEhalf(), Op->getValue()); in ConstantFoldScalarCall1()
2358 APFloat::opStatus status = Val.convert( in ConstantFoldScalarCall1()
2359 Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2363 assert(status == APFloat::opOK && !lost && in ConstantFoldScalarCall1()
2421 static Constant *evaluateCompare(const APFloat &Op1, const APFloat &Op2, in evaluateCompare()
2423 APFloat::opStatus St = APFloat::opOK; in evaluateCompare()
2428 St = APFloat::opInvalidOp; in evaluateCompare()
2431 St = APFloat::opInvalidOp; in evaluateCompare()
2467 const APFloat &Op1V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2472 const APFloat &Op2V = Op2->getValueAPF(); in ConstantFoldScalarCall2()
2476 APFloat Res = Op1V; in ConstantFoldScalarCall2()
2477 APFloat::opStatus St; in ConstantFoldScalarCall2()
2510 return ConstantFP::get(Ty->getContext(), APFloat::copySign(Op1V, Op2V)); in ConstantFoldScalarCall2()
2557 APFloat V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2558 if (APFloat::opStatus::opOK == V.mod(Op2->getValueAPF())) in ConstantFoldScalarCall2()
2565 APFloat V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2566 if (APFloat::opStatus::opOK == V.remainder(Op2->getValueAPF())) in ConstantFoldScalarCall2()
2584 APFloat((float)std::pow((float)Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2589 APFloat((float)std::pow((float)Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2594 APFloat((double)std::pow(Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2602 APFloat Result = scalbn(Op1->getValueAPF(), Op2C->getSExtValue(), in ConstantFoldScalarCall2()
2603 APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall2()
2809 static APFloat ConstantFoldAMDGCNCubeIntrinsic(Intrinsic::ID IntrinsicID, in ConstantFoldAMDGCNCubeIntrinsic()
2810 const APFloat &S0, in ConstantFoldAMDGCNCubeIntrinsic()
2811 const APFloat &S1, in ConstantFoldAMDGCNCubeIntrinsic()
2812 const APFloat &S2) { in ConstantFoldAMDGCNCubeIntrinsic()
2815 APFloat MA(Sem), SC(Sem), TC(Sem); in ConstantFoldAMDGCNCubeIntrinsic()
2854 return APFloat(Sem, ID); in ConstantFoldAMDGCNCubeIntrinsic()
2915 const APFloat &C1 = Op1->getValueAPF(); in ConstantFoldScalarCall3()
2916 const APFloat &C2 = Op2->getValueAPF(); in ConstantFoldScalarCall3()
2917 const APFloat &C3 = Op3->getValueAPF(); in ConstantFoldScalarCall3()
2921 APFloat Res = C1; in ConstantFoldScalarCall3()
2922 APFloat::opStatus St; in ConstantFoldScalarCall3()
2945 return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); in ConstantFoldScalarCall3()
2951 APFloat V = C1; in ConstantFoldScalarCall3()
2952 V.fusedMultiplyAdd(C2, C3, APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall3()
2959 APFloat V = ConstantFoldAMDGCNCubeIntrinsic(IntrinsicID, C1, C2, C3); in ConstantFoldScalarCall3()
3247 const APFloat &Op = OpC->getValueAPF(); in isMathLibCallNoop()
3265 return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); in isMathLibCallNoop()
3267 return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); in isMathLibCallNoop()
3275 return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); in isMathLibCallNoop()
3277 return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); in isMathLibCallNoop()
3305 return !(Op < APFloat(Op.getSemantics(), "-1") || in isMathLibCallNoop()
3306 Op > APFloat(Op.getSemantics(), "1")); in isMathLibCallNoop()
3316 return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); in isMathLibCallNoop()
3318 return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); in isMathLibCallNoop()
3338 const APFloat &Op0 = Op0C->getValueAPF(); in isMathLibCallNoop()
3339 const APFloat &Op1 = Op1C->getValueAPF(); in isMathLibCallNoop()