diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-13 05:12:47 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-13 05:12:47 +0000 |
commit | c477f48f03898f0a6ed6e99f1245ae84b5aec4f2 (patch) | |
tree | c16e245d23bdaf1cb060d3732933896b565551fd /clang/lib/AST/ExprConstant.cpp | |
parent | 69fdf9b2e4669ffc69352f358b3b36828a9f4b57 (diff) | |
download | bcm5719-llvm-c477f48f03898f0a6ed6e99f1245ae84b5aec4f2.tar.gz bcm5719-llvm-c477f48f03898f0a6ed6e99f1245ae84b5aec4f2.zip |
Update for new argument to scalbn
llvm-svn: 263371
Diffstat (limited to 'clang/lib/AST/ExprConstant.cpp')
-rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 7cc9512d800..4d5a772fc8e 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -8641,12 +8641,14 @@ bool ComplexExprEvaluator::VisitBinaryOperator(const BinaryOperator *E) { APFloat MaxCD = maxnum(abs(C), abs(D)); if (MaxCD.isFinite()) { DenomLogB = ilogb(MaxCD); - C = scalbn(C, -DenomLogB); - D = scalbn(D, -DenomLogB); + C = scalbn(C, -DenomLogB, APFloat::rmNearestTiesToEven); + D = scalbn(D, -DenomLogB, APFloat::rmNearestTiesToEven); } APFloat Denom = C * C + D * D; - ResR = scalbn((A * C + B * D) / Denom, -DenomLogB); - ResI = scalbn((B * C - A * D) / Denom, -DenomLogB); + ResR = scalbn((A * C + B * D) / Denom, -DenomLogB, + APFloat::rmNearestTiesToEven); + ResI = scalbn((B * C - A * D) / Denom, -DenomLogB, + APFloat::rmNearestTiesToEven); if (ResR.isNaN() && ResI.isNaN()) { if (Denom.isPosZero() && (!A.isNaN() || !B.isNaN())) { ResR = APFloat::getInf(ResR.getSemantics(), C.isNegative()) * A; |