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)

Reply via email to