Lines Matching refs:APFloat

53 using llvm::APFloat;
389 OptionalDiagnostic &operator<<(const APFloat &F) { in operator <<()
398 llvm::APFloat::semanticsPrecision(F.getSemantics()); in operator <<()
958 APFloat FloatReal, FloatImag;
960 ComplexValue() : FloatReal(APFloat::Bogus), FloatImag(APFloat::Bogus) {} in ComplexValue()
964 APFloat &getComplexFloatReal() { return FloatReal; } in getComplexFloatReal()
965 APFloat &getComplexFloatImag() { return FloatImag; } in getComplexFloatImag()
1186 static bool EvaluateFloat(const Expr *E, APFloat &Result, EvalInfo &Info);
1582 QualType SrcType, const APFloat &Value, in HandleFloatToIntCast()
1590 if (Value.convertToInteger(Result, llvm::APFloat::rmTowardZero, &ignored) in HandleFloatToIntCast()
1591 & APFloat::opInvalidOp) in HandleFloatToIntCast()
1598 APFloat &Result) { in HandleFloatToFloatCast()
1599 APFloat Value = Result; in HandleFloatToFloatCast()
1602 APFloat::rmNearestTiesToEven, &ignored) in HandleFloatToFloatCast()
1603 & APFloat::opOverflow) in HandleFloatToFloatCast()
1622 QualType DestType, APFloat &Result) { in HandleIntToFloatCast()
1623 Result = APFloat(Info.Ctx.getFloatTypeSemantics(DestType), 1); in HandleIntToFloatCast()
1625 APFloat::rmNearestTiesToEven) in HandleIntToFloatCast()
1626 & APFloat::opOverflow) in HandleIntToFloatCast()
1825 APFloat &LHS, BinaryOperatorKind Opcode, in handleFloatFloatBinOp()
1826 const APFloat &RHS) { in handleFloatFloatBinOp()
1832 LHS.multiply(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
1835 LHS.add(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
1838 LHS.subtract(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
1841 LHS.divide(RHS, APFloat::rmNearestTiesToEven); in handleFloatFloatBinOp()
2450 bool found(APFloat &Value, QualType SubobjType) { in found()
2510 bool found(APFloat &Value, QualType SubobjType) { in found()
2910 bool found(APFloat &Value, QualType SubobjType) { in found()
3062 bool found(APFloat &Value, QualType SubobjType) { in found()
3068 APFloat One(Value.getSemantics(), 1); in found()
3070 Value.add(One, APFloat::rmNearestTiesToEven); in found()
3072 Value.subtract(One, APFloat::rmNearestTiesToEven); in found()
5674 APFloat FloatResult(0.0); in VisitCastExpr()
5699 if (&Sem == &APFloat::x87DoubleExtended) in VisitCastExpr()
5707 Elts.push_back(APValue(APFloat(Sem, Elt))); in VisitCastExpr()
5763 llvm::APFloat f(0.0); in VisitInitListExpr()
5768 f = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy)); in VisitInitListExpr()
5786 APValue(APFloat::getZero(Info.Ctx.getFloatTypeSemantics(EltTy))); in ZeroInitialization()
6666 APFloat Val(0.0); in VisitCallExpr()
6671 case APFloat::fcNaN: Arg = 0; break; in VisitCallExpr()
6672 case APFloat::fcInfinity: Arg = 1; break; in VisitCallExpr()
6673 case APFloat::fcNormal: Arg = Val.isDenormal() ? 3 : 2; break; in VisitCallExpr()
6674 case APFloat::fcZero: Arg = 4; break; in VisitCallExpr()
6680 APFloat Val(0.0); in VisitCallExpr()
6686 APFloat Val(0.0); in VisitCallExpr()
6692 APFloat Val(0.0); in VisitCallExpr()
6698 APFloat Val(0.0); in VisitCallExpr()
6704 APFloat Val(0.0); in VisitCallExpr()
7209 LHS.FloatImag = APFloat(LHS.FloatReal.getSemantics()); in VisitBinaryOperator()
7221 RHS.FloatImag = APFloat(RHS.FloatReal.getSemantics()); in VisitBinaryOperator()
7226 APFloat::cmpResult CR_r = in VisitBinaryOperator()
7228 APFloat::cmpResult CR_i = in VisitBinaryOperator()
7232 return Success((CR_r == APFloat::cmpEqual && in VisitBinaryOperator()
7233 CR_i == APFloat::cmpEqual), E); in VisitBinaryOperator()
7237 return Success(((CR_r == APFloat::cmpGreaterThan || in VisitBinaryOperator()
7238 CR_r == APFloat::cmpLessThan || in VisitBinaryOperator()
7239 CR_r == APFloat::cmpUnordered) || in VisitBinaryOperator()
7240 (CR_i == APFloat::cmpGreaterThan || in VisitBinaryOperator()
7241 CR_i == APFloat::cmpLessThan || in VisitBinaryOperator()
7242 CR_i == APFloat::cmpUnordered)), E); in VisitBinaryOperator()
7259 APFloat RHS(0.0), LHS(0.0); in VisitBinaryOperator()
7268 APFloat::cmpResult CR = LHS.compare(RHS); in VisitBinaryOperator()
7274 return Success(CR == APFloat::cmpLessThan, E); in VisitBinaryOperator()
7276 return Success(CR == APFloat::cmpGreaterThan, E); in VisitBinaryOperator()
7278 return Success(CR == APFloat::cmpLessThan || CR == APFloat::cmpEqual, E); in VisitBinaryOperator()
7280 return Success(CR == APFloat::cmpGreaterThan || CR == APFloat::cmpEqual, in VisitBinaryOperator()
7283 return Success(CR == APFloat::cmpEqual, E); in VisitBinaryOperator()
7285 return Success(CR == APFloat::cmpGreaterThan in VisitBinaryOperator()
7286 || CR == APFloat::cmpLessThan in VisitBinaryOperator()
7287 || CR == APFloat::cmpUnordered, E); in VisitBinaryOperator()
7845 APFloat F(0.0); in VisitCastExpr()
7901 APFloat &Result;
7903 FloatExprEvaluator(EvalInfo &info, APFloat &result) in FloatExprEvaluator()
7912 Result = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(E->getType())); in ZeroInitialization()
7930 static bool EvaluateFloat(const Expr* E, APFloat& Result, EvalInfo &Info) { in EvaluateFloat()
7939 llvm::APFloat &Result) { in TryEvaluateBuiltinNaN()
7955 Result = llvm::APFloat::getSNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
7957 Result = llvm::APFloat::getQNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
7965 Result = llvm::APFloat::getQNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
7967 Result = llvm::APFloat::getSNaN(Sem, false, &fill); in TryEvaluateBuiltinNaN()
7986 Result = llvm::APFloat::getInf(Sem); in VisitCallExpr()
8025 APFloat RHS(0.); in VisitCallExpr()
8058 Result = llvm::APFloat::getZero(Sem); in VisitUnaryImag()
8079 APFloat RHS(0.0); in VisitBinaryOperator()
8165 APFloat Zero = APFloat::getZero(Info.Ctx.getFloatTypeSemantics(ElemTy)); in ZeroInitialization()
8182 APFloat &Imag = Result.FloatImag; in VisitImaginaryLiteral()
8186 Result.FloatReal = APFloat(Imag.getSemantics()); in VisitImaginaryLiteral()
8261 APFloat &Real = Result.FloatReal; in VisitCastExpr()
8266 Result.FloatImag = APFloat(Real.getSemantics()); in VisitCastExpr()
8348 APFloat &Real = Result.FloatReal; in VisitBinaryOperator()
8352 Result.FloatImag = APFloat(Real.getSemantics()); in VisitBinaryOperator()
8363 APFloat &Real = RHS.FloatReal; in VisitBinaryOperator()
8367 RHS.FloatImag = APFloat(Real.getSemantics()); in VisitBinaryOperator()
8378 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8383 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8392 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8398 APFloat::rmNearestTiesToEven); in VisitBinaryOperator()
8412 APFloat &A = LHS.getComplexFloatReal(); in VisitBinaryOperator()
8413 APFloat &B = LHS.getComplexFloatImag(); in VisitBinaryOperator()
8414 APFloat &C = RHS.getComplexFloatReal(); in VisitBinaryOperator()
8415 APFloat &D = RHS.getComplexFloatImag(); in VisitBinaryOperator()
8416 APFloat &ResR = Result.getComplexFloatReal(); in VisitBinaryOperator()
8417 APFloat &ResI = Result.getComplexFloatImag(); in VisitBinaryOperator()
8428 APFloat AC = A * C; in VisitBinaryOperator()
8429 APFloat BD = B * D; in VisitBinaryOperator()
8430 APFloat AD = A * D; in VisitBinaryOperator()
8431 APFloat BC = B * C; in VisitBinaryOperator()
8437 A = APFloat::copySign( in VisitBinaryOperator()
8438 APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); in VisitBinaryOperator()
8439 B = APFloat::copySign( in VisitBinaryOperator()
8440 APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); in VisitBinaryOperator()
8442 C = APFloat::copySign(APFloat(C.getSemantics()), C); in VisitBinaryOperator()
8444 D = APFloat::copySign(APFloat(D.getSemantics()), D); in VisitBinaryOperator()
8448 C = APFloat::copySign( in VisitBinaryOperator()
8449 APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); in VisitBinaryOperator()
8450 D = APFloat::copySign( in VisitBinaryOperator()
8451 APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); in VisitBinaryOperator()
8453 A = APFloat::copySign(APFloat(A.getSemantics()), A); in VisitBinaryOperator()
8455 B = APFloat::copySign(APFloat(B.getSemantics()), B); in VisitBinaryOperator()
8461 A = APFloat::copySign(APFloat(A.getSemantics()), A); in VisitBinaryOperator()
8463 B = APFloat::copySign(APFloat(B.getSemantics()), B); in VisitBinaryOperator()
8465 C = APFloat::copySign(APFloat(C.getSemantics()), C); in VisitBinaryOperator()
8467 D = APFloat::copySign(APFloat(D.getSemantics()), D); in VisitBinaryOperator()
8471 ResR = APFloat::getInf(A.getSemantics()) * (A * C - B * D); in VisitBinaryOperator()
8472 ResI = APFloat::getInf(A.getSemantics()) * (A * D + B * C); in VisitBinaryOperator()
8493 APFloat &A = LHS.getComplexFloatReal(); in VisitBinaryOperator()
8494 APFloat &B = LHS.getComplexFloatImag(); in VisitBinaryOperator()
8495 APFloat &C = RHS.getComplexFloatReal(); in VisitBinaryOperator()
8496 APFloat &D = RHS.getComplexFloatImag(); in VisitBinaryOperator()
8497 APFloat &ResR = Result.getComplexFloatReal(); in VisitBinaryOperator()
8498 APFloat &ResI = Result.getComplexFloatImag(); in VisitBinaryOperator()
8505 B = APFloat::getZero(A.getSemantics()); in VisitBinaryOperator()
8508 APFloat MaxCD = maxnum(abs(C), abs(D)); in VisitBinaryOperator()
8514 APFloat Denom = C * C + D * D; in VisitBinaryOperator()
8519 ResR = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * A; in VisitBinaryOperator()
8520 ResI = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * B; in VisitBinaryOperator()
8523 A = APFloat::copySign( in VisitBinaryOperator()
8524 APFloat(A.getSemantics(), A.isInfinity() ? 1 : 0), A); in VisitBinaryOperator()
8525 B = APFloat::copySign( in VisitBinaryOperator()
8526 APFloat(B.getSemantics(), B.isInfinity() ? 1 : 0), B); in VisitBinaryOperator()
8527 ResR = APFloat::getInf(ResR.getSemantics()) * (A * C + B * D); in VisitBinaryOperator()
8528 ResI = APFloat::getInf(ResI.getSemantics()) * (B * C - A * D); in VisitBinaryOperator()
8530 C = APFloat::copySign( in VisitBinaryOperator()
8531 APFloat(C.getSemantics(), C.isInfinity() ? 1 : 0), C); in VisitBinaryOperator()
8532 D = APFloat::copySign( in VisitBinaryOperator()
8533 APFloat(D.getSemantics(), D.isInfinity() ? 1 : 0), D); in VisitBinaryOperator()
8534 ResR = APFloat::getZero(ResR.getSemantics()) * (A * C + B * D); in VisitBinaryOperator()
8535 ResI = APFloat::getZero(ResI.getSemantics()) * (B * C - A * D); in VisitBinaryOperator()
8717 llvm::APFloat F(0.0); in Evaluate()
9327 llvm::APFloat::rmTowardZero, in CheckICE()
9328 &Ignored) & APFloat::opInvalidOp) in CheckICE()