aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/avx512f-undefined-1.c
blob: 256401cd38772ae8a7afdf5bd587e5f8ef851392 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* { dg-do run } */
/* { dg-options "-mavx512f -O2" } */
/* { dg-require-effective-target avx512f } */

#include "avx512f-check.h"

static void
avx512f_test (void)
{
  __m512 a = _mm512_undefined_ps ();
  __m512 b = _mm512_undefined ();
  __m512d c = _mm512_undefined_pd ();
  __m512i d = _mm512_undefined_epi32 ();
  __m512i e = _mm512_set1_epi32 (0);
  __m512i f = _mm512_and_epi32 ((__m512i) a, e);
  __m512i g = _mm512_and_epi32 ((__m512i) b, e);
  __m512i h = _mm512_and_epi32 ((__m512i) c, e);
  __m512i i = _mm512_and_epi32 (d, e);
  if (_mm512_cmpeq_epi32_mask (f, e) != 0xffff
      || _mm512_cmpeq_epi32_mask (g, e) != 0xffff
      || _mm512_cmpeq_epi32_mask (h, e) != 0xffff
      || _mm512_cmpeq_epi32_mask (i, e) != 0xffff)
    __builtin_abort ();
}