]> gcc.gnu.org Git - gcc.git/commitdiff
i386: Fix _mm512_fpclass_ps_mask in O0 [PR 101471]
authorkonglin1 <lingling.kong@intel.com>
Mon, 9 Aug 2021 02:58:24 +0000 (10:58 +0800)
committerliuhongt <hongtao.liu@intel.com>
Wed, 25 Aug 2021 07:15:04 +0000 (15:15 +0800)
gcc/ChangeLog:

PR target/101471
* config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix
macro define in O0.
(_mm512_mask_fpclass_ps_mask): Ditto.

gcc/testsuite/ChangeLog:

PR target/101471
* gcc.target/i386/avx512f-pr101471.c: New test.

gcc/config/i386/avx512dqintrin.h
gcc/testsuite/gcc.target/i386/avx512f-pr101471.c [new file with mode: 0644]

index 51c0b1249ae187133d8687b55ad696b3fafbe7eb..9794f5d3e8b7548d54fa6bdba67704ce0c5bec74 100644 (file)
@@ -2814,7 +2814,7 @@ _mm512_fpclass_ps_mask (__m512 __A, const int __imm)
 
 #define _mm512_mask_fpclass_ps_mask(u, x, c)                           \
   ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
-                                                (int) (c),(__mmask8)(u)))
+                                                (int) (c),(__mmask16)(u)))
 
 #define _mm512_fpclass_pd_mask(X, C)                                    \
   ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \
@@ -2822,7 +2822,7 @@ _mm512_fpclass_ps_mask (__m512 __A, const int __imm)
 
 #define _mm512_fpclass_ps_mask(x, c)                                    \
   ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\
-                                                (int) (c),(__mmask8)-1))
+                                                (int) (c),(__mmask16)-1))
 
 #define _mm_reduce_sd(A, B, C)                                         \
   ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A),       \
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-pr101471.c b/gcc/testsuite/gcc.target/i386/avx512f-pr101471.c
new file mode 100644 (file)
index 0000000..4a0057b
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do run } */
+/* { dg-options "-mavx512dq -O0" } */
+/* { dg-require-effective-target avx512dq } */
+
+#include "avx512f-check.h"
+
+static void
+avx512f_test (void)
+{
+  __m512 x = {
+      1, 1, 1, 1,
+      1, 1, 1, 1,
+      0, 0, 0, 0,
+      0, 0, 0, 0,  };
+  int ret = _mm512_fpclass_ps_mask(x, 0x26);
+  if (ret != 65280)
+    __builtin_abort();
+}
This page took 0.07682 seconds and 5 git commands to generate.