[PATCH] D102672: [ConstantFolding] Use APFloat for constant folding. NFC
Serge Pavlov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 18 22:40:32 PDT 2021
sepavloff added inline comments.
================
Comment at: llvm/lib/Analysis/ConstantFolding.cpp:2146
case LibFunc_logf_finite:
- if (V > 0.0 && TLI->has(Func))
- return ConstantFoldFP(log, V, Ty);
+ if (!APF.isNegative() && !APF.isZero() && TLI->has(Func))
+ return ConstantFoldFP(log, APF, Ty);
----------------
efriedma wrote:
> sepavloff wrote:
> > efriedma wrote:
> > > This isn't precisely equivalent to the existing code.
> > Could you please point out the case when this code behaves differently from the existing one?
> This handles NaNs differently.
Strictly speaking you are right. Comparison in C is ordered, so `V > 0.0` gives `false for NaN and `ConstantFoldFP` is not called. However all these functions (`log*` and `sqrt*`) have specified behavior when their argument is NaN, so the final result must be the same. Other similar functions like `sin` are called for NaN arguments.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D102672/new/
https://reviews.llvm.org/D102672
More information about the llvm-commits
mailing list