Why don't we switch to C like floating pointed arithmetic instead of automatic expansion to reals?
Ilya Yaroshenko via Digitalmars-d
digitalmars-d at puremagic.com
Sat Aug 6 02:48:25 PDT 2016
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.
More information about the Digitalmars-d
mailing list