https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94694

--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The dec_math.f90 FAILs are at all opt levels:
( ) qsind( 60.000000000000000000000000000000)  0.866025403784438646763723170753
 0.866025403784438596588302061718
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
STOP 1

If I preprocess trigd.c before/after the #c21 patch, the difference (appart
from lines/whitespace) are:
-   (x = fmaf(((x)), (1.74560547e-02f), ((x) * -2.76216747e-06f)));
+   (x = fmaf((x), 1.74560547e-02, (x) * -2.76216747e-06));

-       (x = 8.66025388e-01f);
+       (x = 8.66025388e-01);

-   (x = fmaf(((x)), (1.74560547e-02f), ((x) * -2.76216747e-06f)));
+   (x = fmaf((x), 1.74560547e-02, (x) * -2.76216747e-06));

-       (x = 8.66025388e-01f);
+       (x = 8.66025388e-01);

...
-  static const volatile GFC_REAL_10 tiny = 0x1.p-16400L;
+  static const volatile GFC_REAL_10 tiny = 0x1.p-16400l;
...
-       (x = 8.66025403784438646787e-01L);
+       (x = 8.66025403784438646787e-01);
...
-   (x = fmal(((x)), (1.74532925229868851602e-02L), ((x) *
-3.04358939097084072823e-12L)));
+   (x = fmal((x), 1.74532925229868851602e-02, (x) *
-3.04358939097084072823e-12));
...
-       (x = 8.66025403784438646763723170752936183e-01q);
+       (x = 8.66025403784438646763723170752936183e-01);

etc., so all that matters is that some float suffixes (f, , L, q) are gone from
the constants (and the L -> l change on tiny and a few others), which of course
matters a lot.

Reply via email to