[PATCH] D62731: Add support for options -frounding-math, -ftrapping-math, -ffp-model=, and -ffp-exception-behavior=, : Specify floating point behavior
Craig Topper via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 26 20:41:30 PST 2019
craig.topper added a comment.
In D62731#1796962 <https://reviews.llvm.org/D62731#1796962>, @AntonYudintsev wrote:
> I have found bug in clang-cl (win32 clang), related to recent inroduction of ffp-exception-behavior.
> Unfortunately, I don't have a working patch yet, and since LLVM bugtracker registration is closed, I can not even submit a bug.
>
> So, if it is not a trouble for you, I will email the bug description here.
>
> Please let me know if it isn't appropriate. Bug description:
> ========================================================
>
> Windows: clang-cl is generating call to non-existing lib function for win32 with /fp:except option.
> With recent ffp-exception-behavior=maytrap/strict, fp:except in clang-cl became generate FPE aware code.
>
> But in case of floorf and ceilf it generates call to non-existing library function.
>
> clang-cl.exe -m32 /Ox /fp:except testFloor.cpp /FA
> testFloor.cpp:
>
> #include <math.h>
> float ret(float v) { return floorf(v); }
>
>
> resulting assember:
>
> push eax
> movss xmm0, dword ptr [esp + 8]
> movss dword ptr [esp], xmm0
> call _floorf #no such function!!!
> pop eax
> ret
>
>
> Expected behaviour:
>
> there is no floorf lib function. Like with cosf and other math functions, floorf in MSVC is implemented as inline function.
>
> So, it should be call to _floor (with apropriate conversion first).
Hopefully fixed by 53ee806d93e8d2371726ec5ce59b0e68b309c258 <https://reviews.llvm.org/rG53ee806d93e8d2371726ec5ce59b0e68b309c258>
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62731/new/
https://reviews.llvm.org/D62731
More information about the cfe-commits
mailing list