On 6 August 2016 at 11:48, Ilya Yaroshenko via Digitalmars-d <[email protected]> wrote: > On Saturday, 6 August 2016 at 09:35:32 UTC, Walter Bright wrote: >> >> On 8/6/2016 1:21 AM, Ilya Yaroshenko wrote: >>> >>> We need 2 new pragmas with the same syntax as `pragma(inline, xxx)`: >>> >>> 1. `pragma(fusedMath)` allows fused mul-add, mul-sub, div-add, div-sub >>> operations. >>> 2. `pragma(fastMath)` equivalents to [1]. This pragma can be used to >>> allow >>> extended precision. >> >> >> >> The LDC fastmath bothers me a lot. It throws away proper NaN and infinity >> handling, and throws away precision by allowing reciprocal and algebraic >> transformations. As I've said before, correctness should be first, not >> speed, and fastmath has nothing to do with this thread. > > > OK, then we need a third pragma,`pragma(ieeeRound)`. But `pragma(fusedMath)` > and `pragma(fastMath)` should be presented too. > >> I don't know what the point of fusedMath is. > > > It allows a compiler to replace two arithmetic operations with single > composed one, see AVX2 (FMA3 for intel and FMA4 for AMD) instruction set.
No pragmas tied to a specific architecture should be allowed in the language spec, please.
