questionnable nint() behavior

Dominique Dhumieres dominiq@lps.ens.fr
Sat Mar 25 15:58:00 GMT 2006


> I am fully in agreement that the long
> standing gcc rules, where even -ffast-math falls short of violating
> parentheses, are better from a usability point of view.

As far as I can tell this is not true, -ffast-math is under the
"SPEC benchmark ... pressure". The comparison between the assembly
with (<) and without (>) -ffast-math gives:

...
33,34c33,36
< L15:
<       addis r2,r31,ha16(LC0-"L00000000001$pb")
---
> L14:
>       fadds f0,f13,f12
>       addis r2,r31,ha16(LC1-"L00000000001$pb")
>       la r2,lo16(LC1-"L00000000001$pb")(r2)
36,37d37
<       la r2,lo16(LC0-"L00000000001$pb")(r2)
<       stw r0,76(r1)
39,40c39,43
<       li r0,128
<       li r2,6
---
>       li r2,128
>       fsubs f1,f0,f12
>       stw r0,76(r1)
>       li r0,6
>       stw r2,64(r1)
...

the 'fadds f0,f13,f12' and 'fsubs f1,f0,f12' are missing
with -ffast-math and the code gives the wrong answer.

Dominique



More information about the Fortran mailing list