[PATCH] D106959: [PowerPC] swdiv builtins for XL compatibility
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 30 13:39:09 PDT 2021
efriedma added inline comments.
================
Comment at: llvm/test/CodeGen/PowerPC/LowerCheckedFPArith.ll:36
+; CHECK-NEXT: %2 = fdiv fast float %0, %1
+; CHECK-NEXT: %3 = fcmp une float %2, %2
+; CHECK-NEXT: br i1 %3, label %swdiv_HWDIV, label %swdiv_MERGE
----------------
quinnp wrote:
> efriedma wrote:
> > A "fast" fdiv never produces NaN, per LangRef. Using fcmp like this is fragile at best.
> >
> > (Maybe you want "fdiv arcp"?)
> Thank you, I see what you mean. I have changed it to emit a `fdiv ninf arcp` instead of a `fdiv fast`. I included the `ninf` flag because without it the compiler doesn't produce the software div estimate.
ninf is also an issue, although maybe less likely to bite in practice. Consider what happens if someone passes infinity to swdivs: the fdiv reduces to poison, so the branch is undefined behavior.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106959/new/
https://reviews.llvm.org/D106959
More information about the llvm-commits
mailing list