Viewing file: avx512f-kortestw-2.c (1.4 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-do run } */ /* { dg-options "-O2 -mavx512f" } */ /* { dg-require-effective-target avx512f } */
#include "avx512f-check.h"
void avx512f_test () { volatile __mmask16 k1; __mmask16 k2; volatile short r = 0; volatile unsigned char r1 = 0; unsigned char r2;
/* Test kortestc. */ __asm__( "kmovw %1, %0" : "=k" (k1) : "r" (0) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (45) );
r += _mm512_kortestc (k1, k2);
__asm__( "kmovw %1, %0" : "=k" (k1) : "r" (0) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (0) );
r += _mm512_kortestc (k1, k2); if (r) abort ();
__asm__( "kmovw %1, %0" : "=k" (k1) : "r" (-1) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (0) );
r += _mm512_kortestc (k1, k2); if (!r) abort ();
r = 0; /* Test kortestz. */ __asm__( "kmovw %1, %0" : "=k" (k1) : "r" (0) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (45) );
r += _mm512_kortestz (k1, k2);
__asm__( "kmovw %1, %0" : "=k" (k1) : "r" (-1) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (0) );
r += _mm512_kortestz (k1, k2); if (r) abort ();
__asm__( "kmovw %1, %0" : "=k" (k1) : "r" (0) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (0) );
r += _mm512_kortestz (k1, k2); if (!r) abort ();
__asm__( "kmovw %1, %0" : "=k" (k1) : "r" (0) ); __asm__( "kmovw %1, %0" : "=k" (k2) : "r" (-1) );
r1 = _kortest_mask16_u8 (k1, k2, &r2); if (r1 != 0 || r2 != 1) abort (); }
|