diff mbox series

[i386,AVX] PR target/83828: fix AVX-512BITALG test failures

Message ID 20180130082120.GC9570@titus
State New
Headers show
Series [i386,AVX] PR target/83828: fix AVX-512BITALG test failures | expand

Commit Message

Kirill Yukhin Jan. 30, 2018, 8:21 a.m. UTC
Hello,
If masked variant of vpopcnt[w,q] is being issued: there's no way for reload
to put 32/64 bit mask into mask register, since kmov[d,q] are only available
under -mavx512bw switch.

We can insist user to issue -mavx512bw along w/ -mavx512bitalg if she is
going to use masked variants of corresponding intrinsics.

gcc/testsuite
	PR target/83828
	* gcc.target/i386/avx512bitalg-vpopcntb-1.c: Fix test.
	* gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto.
	* gcc.target/i386/avx512bitalgvl-vpopcntb-1.c: Ditto.
	* gcc.target/i386/avx512bitalgvl-vpopcntw-1.c: Ditto.

Bootstrapped & regtested. Checked into main trunk.

--
Thanks, K
diff mbox series

Patch

Index: gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c	(revision 257172)
+++ gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do run } */
-/* { dg-options "-O2 -mavx512bitalg" } */
+/* { dg-options "-O2 -mavx512bitalg -mavx512bw" } */
 /* { dg-require-effective-target avx512bitalg } */
+/* { dg-require-effective-target avx512bw } */
 
 #include "avx512f-helper.h"
 
Index: gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c	(revision 257172)
+++ gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do run } */
-/* { dg-options "-O2 -mavx512bitalg" } */
+/* { dg-options "-O2 -mavx512bitalg -mavx512bw" } */
 /* { dg-require-effective-target avx512bitalg } */
+/* { dg-require-effective-target avx512bw } */
 
 #include "avx512f-helper.h"
 
Index: gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c	(revision 257172)
+++ gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c	(working copy)
@@ -1,7 +1,8 @@ 
 /* { dg-do run } */
-/* { dg-options "-O2 -mavx512vl -mavx512bitalg" } */
+/* { dg-options "-O2 -mavx512vl -mavx512bitalg -mavx512bw" } */
 /* { dg-require-effective-target avx512vl } */
 /* { dg-require-effective-target avx512bitalg } */
+/* { dg-require-effective-target avx512bw } */
 
 #define AVX512VL
 #define AVX512F_LEN 256
Index: gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c
===================================================================
--- gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c	(revision 257172)
+++ gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntw-1.c	(working copy)
@@ -1,7 +1,8 @@ 
 /* { dg-do run } */
-/* { dg-options "-O2 -mavx512vl -mavx512bitalg" } */
+/* { dg-options "-O2 -mavx512vl -mavx512bitalg -mavx512bw" } */
 /* { dg-require-effective-target avx512vl } */
 /* { dg-require-effective-target avx512bitalg } */
+/* { dg-require-effective-target avx512bw } */
 
 #define AVX512VL
 #define AVX512F_LEN 256