On Wed, Jun 26, 2019 at 5:21 PM Martin Liška <mli...@suse.cz> wrote:
>
> Hi.
>
> Started from r272668 I see:
>
> /tmp/ccqxwVjt.s: Assembler messages:
>
> /tmp/ccqxwVjt.s:22: Error: no such instruction: `vp2intersectq 
> .LC1(%rip),%zmm0,%k0'
>
> /tmp/ccqxwVjt.s:33: Error: no such instruction: `vp2intersectd 
> .LC3(%rip),%zmm0,%k0'
>
> compiler exited with status 1
> FAIL: gcc.target/i386/avx512vp2intersect-2intersect-1b.c (test for excess 
> errors)
> Excess errors:
> /tmp/ccqxwVjt.s:22: Error: no such instruction: `vp2intersectq 
> .LC1(%rip),%zmm0,%k0'
> /tmp/ccqxwVjt.s:33: Error: no such instruction: `vp2intersectd 
> .LC3(%rip),%zmm0,%k0'
>
> You'll need a dg-require detection I guess.
Yes, thank you.

>
> Thanks,
> Martin

Patch:
Index: testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1b.c
===================================================================
--- testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1b.c
(revision 272668)
+++ testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1b.c (working copy)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -mavx512vp2intersect" } */
+/* { dg-require-effective-target "avx512vp2intersect" } */

 #define AVX512F
 #include <x86intrin.h>
Index: testsuite/gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c
===================================================================
--- testsuite/gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c
(revision 272668)
+++ testsuite/gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c
(working copy)
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2 -mavx512vp2intersect -mavx512vl" } */
+/* { dg-require-effective-target "avx512vp2intersect" } */

 #define AVX512F
 #include <x86intrin.h>
Index: testsuite/lib/target-supports.exp
===================================================================
--- testsuite/lib/target-supports.exp (revision 272667)
+++ testsuite/lib/target-supports.exp (working copy)
@@ -7963,6 +7963,20 @@
     } "-mavx512bw" ]
 }

+# Return 1 if avx512vp2intersect instructions can be compiled.
+proc check_effective_target_avx512vp2intersect { } {
+    return [check_no_compiler_messages avx512vp2intersect object {
+ typedef int __v16si __attribute__ ((__vector_size__ (64)));
+ typedef short __mmask16;
+ void
+ _mm512_2intersect_epi32 (__v16si __A, __v16si __B, __mmask16 *__U,
+ __mmask16 *__M)
+ {
+     __builtin_ia32_2intersectd512 (__U, __M, (__v16si) __A, (__v16si) __B);
+ }
+    } "-mavx512vp2intersect" ]
+}
+
 # Return 1 if avx512ifma instructions can be compiled.
 proc check_effective_target_avx512ifma { } {
     return [check_no_compiler_messages avx512ifma object {



-- 
BR,
Hongtao

Reply via email to