_mm512_abs_pd takes __m512d, not __m512. OK for trunk and release branches?
Thanks. H.J. -- gcc/ PR target/87467 * config/i386/avx512fintrin.h (_mm512_abs_pd): Replace __m512 with __m512d. gcc/testsuite/ * gcc.target/i386/pr87467.c: New test. --- gcc/config/i386/avx512fintrin.h | 2 +- gcc/testsuite/gcc.target/i386/pr87467.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr87467.c diff --git a/gcc/config/i386/avx512fintrin.h b/gcc/config/i386/avx512fintrin.h index 80525f9fb4d..599701e10b3 100644 --- a/gcc/config/i386/avx512fintrin.h +++ b/gcc/config/i386/avx512fintrin.h @@ -7798,7 +7798,7 @@ _mm512_mask_abs_ps (__m512 __W, __mmask16 __U, __m512 __A) extern __inline __m512d __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) -_mm512_abs_pd (__m512 __A) +_mm512_abs_pd (__m512d __A) { return (__m512d) _mm512_and_epi64 ((__m512i) __A, _mm512_set1_epi64 (0x7fffffffffffffffLL)); diff --git a/gcc/testsuite/gcc.target/i386/pr87467.c b/gcc/testsuite/gcc.target/i386/pr87467.c new file mode 100644 index 00000000000..6a298d1746e --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr87467.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-mavx512f -O2" } */ +/* { dg-final { scan-assembler-times "vpandq\[ \\t\]+\[^\{\n\]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */ + +#include <immintrin.h> + +__m512d +avx512f_test (__m512d x) +{ + return _mm512_abs_pd (x); +} -- 2.17.1