Hi,
The core of the powerpc-FPU manipulation is okay for me. Some comments below.
> --- a/gcc/testsuite/gfortran.dg/ieee/signaling_2_c.c
> +++ b/gcc/testsuite/gfortran.dg/ieee/signaling_2_c.c
> @@ -1,3 +1,11 @@
> +#ifdef __POWERPC__ // No support for issignaling in math.h on Darwin PPC
Two things:
1. I don’t understand why that needs to be added. The companion test in
signaling_2.f90 has:
! { dg-require-effective-target issignaling } */
! The companion C source needs access to the issignaling macro.
Therefore, if the issignaling macro is not available, the test should not even
be run.
2. Maybe this is actually moot. Is the __builtin_issignaling() macro available
on all targets? The test was written before it was added to the middle-end. If
the answer to the previous question is yes, we should simply use it in instead
of the macro.
> +/* There is no consistency re what is to be included in all_invalid.
> + Apple libm has 0x01f80300, Openlibm/FreeBSD/NetBSD has 0x21f80700
> + and OpenBSD has 0x01f80700. In particular, FE_INVALID_SOFT and
> + FE_INVALID are contested. */
> +#define FE_ALL_INVALID 0x01F80700
> +#define FE_NO_INVALID 0xFE07F8FF
> +
> +/* Apple libm has 0xFFF80300 and 0x0007FCFF here. */
> +#define FE_ALL_FLAGS 0xFFF80700
> +#define FE_NO_FLAGS 0x0007F8FF
Since it’s a darwin-only file, why not follow Apple libm conventions?
> There is one test which changes from PASS to FAIL (round_4), however I think
> this is not a real regression, and the test in its present form is expected
> to fail.
> See comments in the test code in the source and my post:
> https://gcc.gnu.org/pipermail/fortran/2024-July/060612.html
I agree that round_4.f90 should be added to the dg-skip-if.
But I’d like to understand better what are the other new failures, and why
there arise?
FX