Lines Matching refs:APFloat
136 APFloat FP(DestTy->getFltSemantics(), Result); in FoldBitCast()
1324 const APFloat &APF = CFP->getValueAPF(); in FlushFPConstant()
1345 APFloat::getZero(Ty->getFltSemantics(), APF.isNegative())); in FlushFPConstant()
1351 APFloat::getZero(Ty->getFltSemantics(), false)); in FlushFPConstant()
1731 APFloat APF(V); in GetConstantFoldFPValue()
1733 APF.convert(Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &unused); in GetConstantFoldFPValue()
1737 return ConstantFP::get(Ty->getContext(), APFloat(V)); in GetConstantFoldFPValue()
1761 Constant *ConstantFoldFP(double (*NativeFP)(double), const APFloat &V, in ConstantFoldFP()
1774 const APFloat &V, const APFloat &W, Type *Ty) { in ConstantFoldBinaryFP()
1853 Constant *ConstantFoldSSEConvertToInt(const APFloat &Val, bool roundTowardZero, in ConstantFoldSSEConvertToInt()
1862 APFloat::roundingMode mode = roundTowardZero? APFloat::rmTowardZero in ConstantFoldSSEConvertToInt()
1863 : APFloat::rmNearestTiesToEven; in ConstantFoldSSEConvertToInt()
1864 APFloat::opStatus status = in ConstantFoldSSEConvertToInt()
1867 if (status != APFloat::opOK && in ConstantFoldSSEConvertToInt()
1868 (!roundTowardZero || status != APFloat::opInexact)) in ConstantFoldSSEConvertToInt()
1880 APFloat APF = Op->getValueAPF(); in getValueAsDouble()
1881 APF.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &unused); in getValueAsDouble()
1903 APFloat::opStatus St) { in mayFoldConstrained()
1909 if (St == APFloat::opStatus::opOK) in mayFoldConstrained()
1942 const APFloat &Src) { in constantFoldCanonicalize()
1948 APFloat::getZero(Src.getSemantics(), Src.isNegative())); in constantFoldCanonicalize()
1984 APFloat::getZero(Src.getSemantics(), !IsPositive)); in constantFoldCanonicalize()
2050 APFloat Val(Op->getValueAPF()); in ConstantFoldScalarCall1()
2053 Val.convert(APFloat::IEEEhalf(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2058 APFloat U = Op->getValueAPF(); in ConstantFoldScalarCall1()
2070 APFloat::opStatus Status = in ConstantFoldScalarCall1()
2071 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2073 if (Status == APFloat::opOK || Status == APFloat::opInexact) in ConstantFoldScalarCall1()
2085 U.convertToInteger(Int, APFloat::rmTowardZero, &IsExact); in ConstantFoldScalarCall1()
2098 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2103 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2108 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2113 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2118 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2123 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2137 APFloat FloorU(U); in ConstantFoldScalarCall1()
2138 FloorU.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2139 APFloat FractU(U - FloorU); in ConstantFoldScalarCall1()
2140 APFloat AlmostOne(U.getSemantics(), 1); in ConstantFoldScalarCall1()
2148 std::optional<APFloat::roundingMode> RM; in ConstantFoldScalarCall1()
2161 RM = APFloat::rmNearestTiesToAway; in ConstantFoldScalarCall1()
2164 RM = APFloat::rmTowardPositive; in ConstantFoldScalarCall1()
2167 RM = APFloat::rmTowardNegative; in ConstantFoldScalarCall1()
2170 RM = APFloat::rmTowardZero; in ConstantFoldScalarCall1()
2176 APFloat::opStatus St = U.roundToIntegral(*RM); in ConstantFoldScalarCall1()
2178 St == APFloat::opInexact) { in ConstantFoldScalarCall1()
2187 U = APFloat::getQNaN(U.getSemantics()); in ConstantFoldScalarCall1()
2202 const APFloat &APF = Op->getValueAPF(); in ConstantFoldScalarCall1()
2218 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2221 return ConstantFoldBinaryFP(pow, APFloat(10.0), APF, Ty); in ConstantFoldScalarCall1()
2284 U.roundToIntegral(APFloat::rmTowardPositive); in ConstantFoldScalarCall1()
2313 return ConstantFoldBinaryFP(pow, APFloat(2.0), APF, Ty); in ConstantFoldScalarCall1()
2325 U.roundToIntegral(APFloat::rmTowardNegative); in ConstantFoldScalarCall1()
2357 U.roundToIntegral(APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall1()
2364 U.roundToIntegral(APFloat::rmNearestTiesToAway); in ConstantFoldScalarCall1()
2398 U.roundToIntegral(APFloat::rmTowardZero); in ConstantFoldScalarCall1()
2415 APFloat Val(APFloat::IEEEhalf(), Op->getValue()); in ConstantFoldScalarCall1()
2418 APFloat::opStatus status = Val.convert( in ConstantFoldScalarCall1()
2419 Ty->getFltSemantics(), APFloat::rmNearestTiesToEven, &lost); in ConstantFoldScalarCall1()
2423 assert(status != APFloat::opInexact && !lost && in ConstantFoldScalarCall1()
2514 static Constant *evaluateCompare(const APFloat &Op1, const APFloat &Op2, in evaluateCompare()
2516 APFloat::opStatus St = APFloat::opOK; in evaluateCompare()
2521 St = APFloat::opInvalidOp; in evaluateCompare()
2524 St = APFloat::opInvalidOp; in evaluateCompare()
2560 const APFloat &Op1V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2565 const APFloat &Op2V = Op2->getValueAPF(); in ConstantFoldScalarCall2()
2569 APFloat Res = Op1V; in ConstantFoldScalarCall2()
2570 APFloat::opStatus St; in ConstantFoldScalarCall2()
2603 return ConstantFP::get(Ty->getContext(), APFloat::copySign(Op1V, Op2V)); in ConstantFoldScalarCall2()
2650 APFloat V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2651 if (APFloat::opStatus::opOK == V.mod(Op2->getValueAPF())) in ConstantFoldScalarCall2()
2658 APFloat V = Op1->getValueAPF(); in ConstantFoldScalarCall2()
2659 if (APFloat::opStatus::opOK == V.remainder(Op2->getValueAPF())) in ConstantFoldScalarCall2()
2681 scalbn(Op1V, Op2C->getSExtValue(), APFloat::rmNearestTiesToEven)); in ConstantFoldScalarCall2()
2707 APFloat((float)std::pow((float)Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2712 APFloat((float)std::pow((float)Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2717 APFloat((double)std::pow(Op1V.convertToDouble(), in ConstantFoldScalarCall2()
2925 static APFloat ConstantFoldAMDGCNCubeIntrinsic(Intrinsic::ID IntrinsicID, in ConstantFoldAMDGCNCubeIntrinsic()
2926 const APFloat &S0, in ConstantFoldAMDGCNCubeIntrinsic()
2927 const APFloat &S1, in ConstantFoldAMDGCNCubeIntrinsic()
2928 const APFloat &S2) { in ConstantFoldAMDGCNCubeIntrinsic()
2931 APFloat MA(Sem), SC(Sem), TC(Sem); in ConstantFoldAMDGCNCubeIntrinsic()
2970 return APFloat(Sem, ID); in ConstantFoldAMDGCNCubeIntrinsic()
3031 const APFloat &C1 = Op1->getValueAPF(); in ConstantFoldScalarCall3()
3032 const APFloat &C2 = Op2->getValueAPF(); in ConstantFoldScalarCall3()
3033 const APFloat &C3 = Op3->getValueAPF(); in ConstantFoldScalarCall3()
3037 APFloat Res = C1; in ConstantFoldScalarCall3()
3038 APFloat::opStatus St; in ConstantFoldScalarCall3()
3061 return ConstantFP::get(Ty->getContext(), APFloat(0.0f) + C3); in ConstantFoldScalarCall3()
3067 APFloat V = C1; in ConstantFoldScalarCall3()
3068 V.fusedMultiplyAdd(C2, C3, APFloat::rmNearestTiesToEven); in ConstantFoldScalarCall3()
3075 APFloat V = ConstantFoldAMDGCNCubeIntrinsic(IntrinsicID, C1, C2, C3); in ConstantFoldScalarCall3()
3318 const APFloat &U = ConstFP->getValueAPF(); in ConstantFoldScalarFrexpCall()
3320 APFloat FrexpMant = frexp(U, FrexpExp, APFloat::rmNearestTiesToEven); in ConstantFoldScalarFrexpCall()
3428 const APFloat &Op = OpC->getValueAPF(); in isMathLibCallNoop()
3446 return !(Op < APFloat(-745.0) || Op > APFloat(709.0)); in isMathLibCallNoop()
3448 return !(Op < APFloat(-103.0f) || Op > APFloat(88.0f)); in isMathLibCallNoop()
3456 return !(Op < APFloat(-1074.0) || Op > APFloat(1023.0)); in isMathLibCallNoop()
3458 return !(Op < APFloat(-149.0f) || Op > APFloat(127.0f)); in isMathLibCallNoop()
3493 return !(Op < APFloat(Op.getSemantics(), "-1") || in isMathLibCallNoop()
3494 Op > APFloat(Op.getSemantics(), "1")); in isMathLibCallNoop()
3504 return !(Op < APFloat(-710.0) || Op > APFloat(710.0)); in isMathLibCallNoop()
3506 return !(Op < APFloat(-89.0f) || Op > APFloat(89.0f)); in isMathLibCallNoop()
3526 const APFloat &Op0 = Op0C->getValueAPF(); in isMathLibCallNoop()
3527 const APFloat &Op1 = Op1C->getValueAPF(); in isMathLibCallNoop()