• Home
  • Raw
  • Download

Lines Matching refs:APFloat

54 using llvm::APFloat;
390 OptionalDiagnostic &operator<<(const APFloat &F) { in operator <<()
399 llvm::APFloat::semanticsPrecision(F.getSemantics()); in operator <<()
1034 APFloat FloatReal, FloatImag;
1036 ComplexValue() : FloatReal(APFloat::Bogus), FloatImag(APFloat::Bogus) {} in ComplexValue()
1040 APFloat &getComplexFloatReal() { return FloatReal; } in getComplexFloatReal()
1041 APFloat &getComplexFloatImag() { return FloatImag; } in getComplexFloatImag()
1262 static bool EvaluateFloat(const Expr *E, APFloat &Result, EvalInfo &Info);
1658 QualType SrcType, const APFloat &Value, in HandleFloatToIntCast()
1666 if (Value.convertToInteger(Result, llvm::APFloat::rmTowardZero, &ignored) in HandleFloatToIntCast()
1667 & APFloat::opInvalidOp) in HandleFloatToIntCast()
1674 APFloat &Result) { in HandleFloatToFloatCast()
1675 APFloat Value = Result; in HandleFloatToFloatCast()
1678 APFloat::rmNearestTiesToEven, &ignored) in HandleFloatToFloatCast()
1679 & APFloat::opOverflow) in HandleFloatToFloatCast()
1698 QualType DestType, APFloat &Result) { in HandleIntToFloatCast()
1699 Result = APFloat(Info.Ctx.getFloatTypeSemantics(DestType), 1); in HandleIntToFloatCast()
1701 APFloat::rmNearestTiesToEven) in HandleIntToFloatCast()
1702 & APFloat::opOverflow) in HandleIntToFloatCast()
1901 APFloat &LHS, BinaryOperatorKind Opcode, in handleFloatFloatBinOp()
1902 const APFloat &RHS) { in handleFloatFloatBinOp()
1908 LHS.multiply(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
1911 LHS.add(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
1914 LHS.subtract(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
1917 LHS.divide(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
2546 bool found(APFloat &Value, QualType SubobjType) { in found()
2606 bool found(APFloat &Value, QualType SubobjType) { in found()
3014 bool found(APFloat &Value, QualType SubobjType) { in found()
3166 bool found(APFloat &Value, QualType SubobjType) { in found()
3172 APFloat One(Value.getSemantics(), 1); in found()
3174 Value.add(One, APFloat::rmNearestTiesToEven); in found()
3176 Value.subtract(One, APFloat::rmNearestTiesToEven); in found()
5884 APFloat FloatResult(0.0); in VisitCastExpr()
5909 if (&Sem == &APFloat::x87DoubleExtended) in VisitCastExpr()
5917 Elts.push_back(APValue(APFloat(Sem, Elt))); in VisitCastExpr()
5973 llvm::APFloat f(0.0); in VisitInitListExpr()
5978 f = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy)); in VisitInitListExpr()
5996 APValue(APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy))); in ZeroInitialization()
6945 APFloat Val(0.0); in VisitCallExpr()
6950 case APFloat::fcNaN: Arg = 0; break; in VisitCallExpr()
6951 case APFloat::fcInfinity: Arg = 1; break; in VisitCallExpr()
6952 case APFloat::fcNormal: Arg = Val.isDenormal() ? 3 : 2; break; in VisitCallExpr()
6953 case APFloat::fcZero: Arg = 4; break; in VisitCallExpr()
6959 APFloat Val(0.0); in VisitCallExpr()
6965 APFloat Val(0.0); in VisitCallExpr()
6971 APFloat Val(0.0); in VisitCallExpr()
6977 APFloat Val(0.0); in VisitCallExpr()
6983 APFloat Val(0.0); in VisitCallExpr()
7505 LHS.FloatImag = APFloat(LHS.FloatReal.getSemantics()); in VisitBinaryOperator()
7517 RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); in VisitBinaryOperator()
7522 APFloat::cmpResult CR_r = in VisitBinaryOperator()
7524 APFloat::cmpResult CR_i = in VisitBinaryOperator()
7528 return Success((CR_r == APFloat::cmpEqual && in VisitBinaryOperator()
7529 CR_i == APFloat::cmpEqual), E); in VisitBinaryOperator()
7533 return Success(((CR_r == APFloat::cmpGreaterThan || in VisitBinaryOperator()
7534 CR_r == APFloat::cmpLessThan || in VisitBinaryOperator()
7535 CR_r == APFloat::cmpUnordered) || in VisitBinaryOperator()
7536 (CR_i == APFloat::cmpGreaterThan || in VisitBinaryOperator()
7537 CR_i == APFloat::cmpLessThan || in VisitBinaryOperator()
7538 CR_i == APFloat::cmpUnordered)), E); in VisitBinaryOperator()
7555 APFloat RHS(0.0), LHS(0.0); in VisitBinaryOperator()
7564 APFloat::cmpResult CR = LHS.compare(RHS); in VisitBinaryOperator()
7570 return Success(CR == APFloat::cmpLessThan, E); in VisitBinaryOperator()
7572 return Success(CR == APFloat::cmpGreaterThan, E); in VisitBinaryOperator()
7574 return Success(CR == APFloat::cmpLessThan || CR == APFloat::cmpEqual, E); in VisitBinaryOperator()
7576 return Success(CR == APFloat::cmpGreaterThan || CR == APFloat::cmpEqual, in VisitBinaryOperator()
7579 return Success(CR == APFloat::cmpEqual, E); in VisitBinaryOperator()
7581 return Success(CR == APFloat::cmpGreaterThan in VisitBinaryOperator()
7582 || CR == APFloat::cmpLessThan in VisitBinaryOperator()
7583 || CR == APFloat::cmpUnordered, E); in VisitBinaryOperator()
8145 APFloat F(0.0); in VisitCastExpr()
8201 APFloat &Result;
8203 FloatExprEvaluator(EvalInfo &info, APFloat &result) in FloatExprEvaluator()
8212 Result = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(E->getType())); in ZeroInitialization()
8230 static bool EvaluateFloat(const Expr* E, APFloat& Result, EvalInfo &Info) { in EvaluateFloat()
8239 llvm::APFloat &Result) { in TryEvaluateBuiltinNaN()
8255 Result = llvm::APFloat::getSNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
8257 Result = llvm::APFloat::getQNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
8265 Result = llvm::APFloat::getQNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
8267 Result = llvm::APFloat::getSNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
8286 Result = llvm::APFloat::getInf(Sem); in VisitCallExpr()
8325 APFloat RHS(0.); in VisitCallExpr()
8358 Result = llvm::APFloat::getZero(Sem); in VisitUnaryImag()
8379 APFloat RHS(0.0); in VisitBinaryOperator()
8465 APFloat Zero = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(ElemTy)); in ZeroInitialization()
8482 APFloat &Imag = Result.FloatImag; in VisitImaginaryLiteral()
8486 Result.FloatReal = APFloat(Imag.getSemantics()); in VisitImaginaryLiteral()
8562 APFloat &Real = Result.FloatReal; in VisitCastExpr()
8567 Result.FloatImag = APFloat(Real.getSemantics()); in VisitCastExpr()
8649 APFloat &Real = Result.FloatReal; in VisitBinaryOperator()
8653 Result.FloatImag = APFloat(Real.getSemantics()); in VisitBinaryOperator()
8664 APFloat &Real = RHS.FloatReal; in VisitBinaryOperator()
8668 RHS.FloatImag = APFloat(Real.getSemantics()); in VisitBinaryOperator()
8679 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8684 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8693 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8699 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8713 APFloat &A = LHS.getComplexFloatReal(); in VisitBinaryOperator()
8714 APFloat &B = LHS.getComplexFloatImag(); in VisitBinaryOperator()
8715 APFloat &C = RHS.getComplexFloatReal(); in VisitBinaryOperator()
8716 APFloat &D = RHS.getComplexFloatImag(); in VisitBinaryOperator()
8717 APFloat &ResR = Result.getComplexFloatReal(); in VisitBinaryOperator()
8718 APFloat &ResI = Result.getComplexFloatImag(); in VisitBinaryOperator()
8729 APFloat AC = A * C; in VisitBinaryOperator()
8730 APFloat BD = B * D; in VisitBinaryOperator()
8731 APFloat AD = A * D; in VisitBinaryOperator()
8732 APFloat BC = B * C; in VisitBinaryOperator()
8738 A = APFloat::copySign( in VisitBinaryOperator()
8739 APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); in VisitBinaryOperator()
8740 B = APFloat::copySign( in VisitBinaryOperator()
8741 APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); in VisitBinaryOperator()
8743 C = APFloat::copySign(APFloat(C.getSemantics()), C); in VisitBinaryOperator()
8745 D = APFloat::copySign(APFloat(D.getSemantics()), D); in VisitBinaryOperator()
8749 C = APFloat::copySign( in VisitBinaryOperator()
8750 APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); in VisitBinaryOperator()
8751 D = APFloat::copySign( in VisitBinaryOperator()
8752 APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); in VisitBinaryOperator()
8754 A = APFloat::copySign(APFloat(A.getSemantics()), A); in VisitBinaryOperator()
8756 B = APFloat::copySign(APFloat(B.getSemantics()), B); in VisitBinaryOperator()
8762 A = APFloat::copySign(APFloat(A.getSemantics()), A); in VisitBinaryOperator()
8764 B = APFloat::copySign(APFloat(B.getSemantics()), B); in VisitBinaryOperator()
8766 C = APFloat::copySign(APFloat(C.getSemantics()), C); in VisitBinaryOperator()
8768 D = APFloat::copySign(APFloat(D.getSemantics()), D); in VisitBinaryOperator()
8772 ResR = APFloat::getInf(A.getSemantics()) * (A * C - B * D); in VisitBinaryOperator()
8773 ResI = APFloat::getInf(A.getSemantics()) * (A * D + B * C); in VisitBinaryOperator()
8794 APFloat &A = LHS.getComplexFloatReal(); in VisitBinaryOperator()
8795 APFloat &B = LHS.getComplexFloatImag(); in VisitBinaryOperator()
8796 APFloat &C = RHS.getComplexFloatReal(); in VisitBinaryOperator()
8797 APFloat &D = RHS.getComplexFloatImag(); in VisitBinaryOperator()
8798 APFloat &ResR = Result.getComplexFloatReal(); in VisitBinaryOperator()
8799 APFloat &ResI = Result.getComplexFloatImag(); in VisitBinaryOperator()
8806 B = APFloat::getZero(A.getSemantics()); in VisitBinaryOperator()
8809 APFloat MaxCD = maxnum(abs(C), abs(D)); in VisitBinaryOperator()
8812 C = scalbn(C, -DenomLogB, APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8813 D = scalbn(D, -DenomLogB, APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8815 APFloat Denom = C * C + D * D; in VisitBinaryOperator()
8817 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8819 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8822 ResR = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * A; in VisitBinaryOperator()
8823 ResI = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * B; in VisitBinaryOperator()
8826 A = APFloat::copySign( in VisitBinaryOperator()
8827 APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); in VisitBinaryOperator()
8828 B = APFloat::copySign( in VisitBinaryOperator()
8829 APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); in VisitBinaryOperator()
8830 ResR = APFloat::getInf(ResR.getSemantics()) * (A * C + B * D); in VisitBinaryOperator()
8831 ResI = APFloat::getInf(ResI.getSemantics()) * (B * C - A * D); in VisitBinaryOperator()
8833 C = APFloat::copySign( in VisitBinaryOperator()
8834 APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); in VisitBinaryOperator()
8835 D = APFloat::copySign( in VisitBinaryOperator()
8836 APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); in VisitBinaryOperator()
8837 ResR = APFloat::getZero(ResR.getSemantics()) * (A * C + B * D); in VisitBinaryOperator()
8838 ResI = APFloat::getZero(ResI.getSemantics()) * (B * C - A * D); in VisitBinaryOperator()
9020 llvm::APFloat F(0.0); in Evaluate()
9186 bool Expr::EvaluateAsFloat(APFloat &Result, const ASTContext &Ctx, in EvaluateAsFloat()
9645 llvm::APFloat::rmTowardZero, in CheckICE()
9646 &Ignored) & APFloat::opInvalidOp) in CheckICE()