[PATCH] D78827: Add support for #pragma clang fp reassociate(on|off) -- floating point control of associative math transformations
Steve Canon via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 6 14:09:21 PDT 2020
scanon added a comment.
TS18661-5 is quite vague on what the intended semantics for the pragma are.
These pragmas are intended to be bindings of clause 10.4 of IEEE 754, which is also pretty wishy-washy on the whole, but it's worth noting that clause 10 is titled *expression evaluation* specifically. The relevant text here is:
> A language standard should also define, and require implementations to provide, attributes that allow and disallow value-changing optimizations, separately or collectively, for a block. These optimizations might include, but are not limited to:
> ― Applying the associative or distributive laws.
> ― Synthesis of a fusedMultiplyAdd operation from a multiplication and an addition.
> ― Synthesis of a formatOf operation from an operation and a conversion of the result of the 40 operation.
> ― Use of wider intermediate results in expression evaluation.
So IEEE-754 appears to view this as being "just like" contraction. (Note that this is all under a "should", so #yolo).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D78827/new/
https://reviews.llvm.org/D78827
More information about the cfe-commits
mailing list