This patch fixes the 4 FAILs of gcc.target/i386/pr192464-vrndscaleph.c with --target_board='unix{-m32}' on RedHat 7.x. The issue is that this AVX512 test includes the system math.h, and on older systems this provides inline versions of floor, ceil and rint (for the 387). The work around is to define __NO_MATH_INLINES before #include <math.h> (or alternatively use __builtin_floor, __builtin_ceil, etc.).
This patch has been tested on x86_64-pc-linux-gnu with make -k check, with and without --target_board=unix{-m32}. Ok for mainline? 2024-06-30 Roger Sayle <ro...@nextmovesoftware.com> gcc/testsuite/ChangeLog PR middle-end/102464 * gcc.target/i386/pr102464-vrndscaleph.c: Define __NO_MATH_INLINES to resovle FAILs with -m32 on older RedHat systems. Thanks in advance, Roger --
diff --git a/gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c b/gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c index a76d9e7..9eb8124 100644 --- a/gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c +++ b/gcc/testsuite/gcc.target/i386/pr102464-vrndscaleph.c @@ -1,6 +1,9 @@ /* PR target/102464. */ /* { dg-do compile } */ /* { dg-options "-Ofast -mavx512fp16 -mavx512vl -mprefer-vector-width=512" } */ +#ifndef __NO_MATH_INLINES +#define __NO_MATH_INLINES +#endif #include<math.h> void foo (_Float16* __restrict a, _Float16* b)