1187767Sluigi/* { dg-do run } */
2187767Sluigi/* { dg-require-effective-target avx } */
3187767Sluigi/* { dg-options "-O2 -mavx" } */
4187767Sluigi
5187767Sluigi#include "avx-check.h"
6187767Sluigi
7187767Sluigivoid static
8187767Sluigiavx_test (void)
9187767Sluigi{
10187767Sluigi  int s1i[8] = {0, 0, 0, 0, 0, 0, 0, 0};
11187767Sluigi  int s2i[8] = {1, 2, 3, 4, 5, 6, 7, 8};
12187767Sluigi  int d;
13187767Sluigi  int e;
14187767Sluigi  int i;
15187767Sluigi  union256i_d s1, s2;
16187767Sluigi
17187767Sluigi  s1.x = _mm256_loadu_si256 ((__m256i*)s1i);
18187767Sluigi  s2.x = _mm256_loadu_si256 ((__m256i*)s2i);
19187767Sluigi  d = _mm256_testc_si256 (s1.x, s2.x);
20187767Sluigi
21187767Sluigi  e = 1;
22187767Sluigi  for (i = 0; i < 8; i++)
23187767Sluigi    if ((~s1i[i] & s2i[i]) != 0)
24187767Sluigi      e = 0;
25187767Sluigi
26187767Sluigi  if (d != e)
27187767Sluigi    abort ();
28187767Sluigi}
29187767Sluigi