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

Reply via email to