diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/i386.exp | 13 |
4 files changed, 23 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 76f13b5..43f137e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2018-01-01 Jakub Jelinek <jakub@redhat.com> + + * gcc.target/i386/i386.exp + (check_effective_target_avx512vpopcntdqvl): New proc. + * gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c: Use + avx512vpopcntdqvl effective target rather than avx512vpopcntdq. + * gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c: Likewise. + 2017-12-30 Tom de Vries <tom@codesourcery.com> PR testsuite/83612 diff --git a/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c b/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c index 95e43ce..709cd21 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c @@ -1,7 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -mavx512vpopcntdq -mavx512bw -mavx512vl" } */ /* { dg-require-effective-target avx512vl } */ -/* { dg-require-effective-target avx512vpopcntdq } */ +/* { dg-require-effective-target avx512vpopcntdqvl } */ /* { dg-require-effective-target avx512bw } */ #define AVX512VL diff --git a/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c b/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c index 6e110e1..b7f0e91 100644 --- a/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c @@ -1,7 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -mavx512vl -mavx512vpopcntdq" } */ /* { dg-require-effective-target avx512vl } */ -/* { dg-require-effective-target avx512vpopcntdq } */ +/* { dg-require-effective-target avx512vpopcntdqvl } */ #define AVX512VL #define AVX512F_LEN 256 diff --git a/gcc/testsuite/gcc.target/i386/i386.exp b/gcc/testsuite/gcc.target/i386/i386.exp index 79d97c3..226a70e 100644 --- a/gcc/testsuite/gcc.target/i386/i386.exp +++ b/gcc/testsuite/gcc.target/i386/i386.exp @@ -410,6 +410,19 @@ proc check_effective_target_avx512vpopcntdq { } { } "-mavx512vpopcntdq" ] } +# Return 1 if 128 or 256-bit avx512_vpopcntdq instructions can be compiled. +proc check_effective_target_avx512vpopcntdqvl { } { + return [check_no_compiler_messages avx512vpopcntdqvl object { + typedef int __v8si __attribute__ ((__vector_size__ (32))); + + __v8si + _mm256_popcnt_epi32 (__v8si __A) + { + return (__v8si) __builtin_ia32_vpopcountd_v8si ((__v8si) __A); + } + } "-mavx512vpopcntdq -mavx512vl" ] +} + # Return 1 if gfni instructions can be compiled. proc check_effective_target_gfni { } { return [check_no_compiler_messages gfni object { |