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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits