Lines Matching refs:APFloat

136       APFloat FP(DestTy->getFltSemantics(), Result);  in FoldBitCast()
1309 const APFloat &APF = CFP->getValueAPF(); in FlushFPConstant()
1330 APFloat::getZero(Ty->getFltSemantics(), APF.isNegative())); in FlushFPConstant()
1336 APFloat::getZero(Ty->getFltSemantics(), false)); in FlushFPConstant()
1736 APFloat APF(V); in GetConstantFoldFPValue()
1738 APF.convert(Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &unused); in GetConstantFoldFPValue()
1742 return ConstantFP::get(Ty->getContext(), APFloat(V)); in GetConstantFoldFPValue()
1774 Constant *ConstantFoldFP(double (*NativeFP)(double), const APFloat &V, in ConstantFoldFP()
1787 Constant *ConstantFoldFP128(float128 (*NativeFP)(float128), const APFloat &V, in ConstantFoldFP128()
1801 const APFloat &V, const APFloat &W, Type *Ty) { in ConstantFoldBinaryFP()
1880 Constant *ConstantFoldSSEConvertToInt(const APFloat &Val, bool roundTowardZero, in ConstantFoldSSEConvertToInt()
1889 APFloat::roundingMode mode = roundTowardZero? APFloat::rmTowardZero in ConstantFoldSSEConvertToInt()
1890 : APFloat::rmNearestTiesToEven; in ConstantFoldSSEConvertToInt()
1891 APFloat::opStatus status = in ConstantFoldSSEConvertToInt()
1894 if (status != APFloat::opOK && in ConstantFoldSSEConvertToInt()
1895 (!roundTowardZero || status != APFloat::opInexact)) in ConstantFoldSSEConvertToInt()
1907 APFloat APF = Op->getValueAPF(); in getValueAsDouble()
1908 APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &unused); in getValueAsDouble()
1930 APFloat::opStatus St) { in mayFoldConstrained()
1936 if (St == APFloat::opStatus::opOK) in mayFoldConstrained()
1969 const APFloat &Src) { in constantFoldCanonicalize()
1975 APFloat::getZero(Src.getSemantics(), Src.isNegative())); in constantFoldCanonicalize()
2011 APFloat::getZero(Src.getSemantics(), !IsPositive)); in constantFoldCanonicalize()
2077 APFloat Val(Op->getValueAPF()); in ConstantFoldScalarCall1()
2080 Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2085 APFloat U = Op->getValueAPF(); in ConstantFoldScalarCall1()
2097 APFloat::opStatus Status = in ConstantFoldScalarCall1()
2098 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2100 if (Status == APFloat::opOK || Status == APFloat::opInexact) in ConstantFoldScalarCall1()
2112 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2139 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2144 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2149 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2154 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2159 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2164 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2178 APFloat FloorU(U); in ConstantFoldScalarCall1()
2179 FloorU.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2180 APFloat FractU(U - FloorU); in ConstantFoldScalarCall1()
2181 APFloat AlmostOne(U.getSemantics(), 1); in ConstantFoldScalarCall1()
2189 std::optional<APFloat::roundingMode> RM; in ConstantFoldScalarCall1()
2202 RM = APFloat::rmNearestTiesToAway; in ConstantFoldScalarCall1()
2205 RM = APFloat::rmTowardPositive; in ConstantFoldScalarCall1()
2208 RM = APFloat::rmTowardNegative; in ConstantFoldScalarCall1()
2211 RM = APFloat::rmTowardZero; in ConstantFoldScalarCall1()
2217 APFloat::opStatus St = U.roundToIntegral(*RM); in ConstantFoldScalarCall1()
2219 St == APFloat::opInexact) { in ConstantFoldScalarCall1()
2228 U = APFloat::getQNaN(U.getSemantics()); in ConstantFoldScalarCall1()
2243 const APFloat &APF = Op->getValueAPF(); in ConstantFoldScalarCall1()
2259 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2262 return ConstantFoldBinaryFP(pow, APFloat(10.0), APF, Ty); in ConstantFoldScalarCall1()
2325 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2354 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2366 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2400 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2407 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2441 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2458 APFloat Val(APFloat::IEEEhalf(), Op->getValue()); in ConstantFoldScalarCall1()
2461 APFloat::opStatus status = Val.convert( in ConstantFoldScalarCall1()
2462 Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2466 assert(status != APFloat::opInexact && !lost && in ConstantFoldScalarCall1()
2557 static Constant *evaluateCompare(const APFloat &Op1, const APFloat &Op2, in evaluateCompare()
2559 APFloat::opStatus St = APFloat::opOK; in evaluateCompare()
2564 St = APFloat::opInvalidOp; in evaluateCompare()
2567 St = APFloat::opInvalidOp; in evaluateCompare()
2593 const APFloat &Op1V = Op1->getValueAPF(); in ConstantFoldLibCall2()
2594 const APFloat &Op2V = Op2->getValueAPF(); in ConstantFoldLibCall2()
2609 APFloat V = Op1->getValueAPF(); in ConstantFoldLibCall2()
2610 if (APFloat::opStatus::opOK == V.mod(Op2->getValueAPF())) in ConstantFoldLibCall2()
2617 APFloat V = Op1->getValueAPF(); in ConstantFoldLibCall2()
2618 if (APFloat::opStatus::opOK == V.remainder(Op2->getValueAPF())) in ConstantFoldLibCall2()
2664 const APFloat &Op1V = Op1->getValueAPF(); in ConstantFoldIntrinsicCall2()
2669 const APFloat &Op2V = Op2->getValueAPF(); in ConstantFoldIntrinsicCall2()
2674 APFloat Res = Op1V; in ConstantFoldIntrinsicCall2()
2675 APFloat::opStatus St; in ConstantFoldIntrinsicCall2()
2708 return ConstantFP::get(Ty->getContext(), APFloat::copySign(Op1V, Op2V)); in ConstantFoldIntrinsicCall2()
2740 scalbn(Op1V, Op2C->getSExtValue(), APFloat::rmNearestTiesToEven)); in ConstantFoldIntrinsicCall2()
2762 APFloat Res(static_cast<float>(std::pow(Op1V.convertToFloat(), Exp))); in ConstantFoldIntrinsicCall2()
2765 Res.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, in ConstantFoldIntrinsicCall2()
3000 static APFloat ConstantFoldAMDGCNCubeIntrinsic(Intrinsic::ID IntrinsicID, in ConstantFoldAMDGCNCubeIntrinsic()
3001 const APFloat &S0, in ConstantFoldAMDGCNCubeIntrinsic()
3002 const APFloat &S1, in ConstantFoldAMDGCNCubeIntrinsic()
3003 const APFloat &S2) { in ConstantFoldAMDGCNCubeIntrinsic()
3006 APFloat MA(Sem), SC(Sem), TC(Sem); in ConstantFoldAMDGCNCubeIntrinsic()
3045 return APFloat(Sem, ID); in ConstantFoldAMDGCNCubeIntrinsic()
3106 const APFloat &C1 = Op1->getValueAPF(); in ConstantFoldScalarCall3()
3107 const APFloat &C2 = Op2->getValueAPF(); in ConstantFoldScalarCall3()
3108 const APFloat &C3 = Op3->getValueAPF(); in ConstantFoldScalarCall3()
3112 APFloat Res = C1; in ConstantFoldScalarCall3()
3113 APFloat::opStatus St; in ConstantFoldScalarCall3()
3136 return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); in ConstantFoldScalarCall3()
3142 APFloat V = C1; in ConstantFoldScalarCall3()
3143 V.fusedMultiplyAdd(C2, C3, APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall3()
3150 APFloat V = ConstantFoldAMDGCNCubeIntrinsic(IntrinsicID, C1, C2, C3); in ConstantFoldScalarCall3()
3398 const APFloat &U = ConstFP->getValueAPF(); in ConstantFoldScalarFrexpCall()
3400 APFloat FrexpMant = frexp(U, FrexpExp, APFloat::rmNearestTiesToEven); in ConstantFoldScalarFrexpCall()
3521 const APFloat &Op = OpC->getValueAPF(); in isMathLibCallNoop()
3539 return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); in isMathLibCallNoop()
3541 return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); in isMathLibCallNoop()
3549 return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); in isMathLibCallNoop()
3551 return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); in isMathLibCallNoop()
3586 return !(Op < APFloat(Op.getSemantics(), "-1") || in isMathLibCallNoop()
3587 Op > APFloat(Op.getSemantics(), "1")); in isMathLibCallNoop()
3597 return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); in isMathLibCallNoop()
3599 return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); in isMathLibCallNoop()
3619 const APFloat &Op0 = Op0C->getValueAPF(); in isMathLibCallNoop()
3620 const APFloat &Op1 = Op1C->getValueAPF(); in isMathLibCallNoop()