/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -msse2" } */

#include "sse2-check.h"

#include <emmintrin.h>

static void
sse2_test (void)
{
  union
    {
      __m128i x;
      char c[16];
      short s[8];
      int i[4];
      long long ll[2];
    } val1;
  char res[16];
  int masks[16];
  int i;

  for (i = 0; i < 16; i++)
    val1.c[i] = i;

  res[0] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 0);
  res[1] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 1);
  res[2] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 2);
  res[3] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 3);
  res[4] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 4);
  res[5] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 5);
  res[6] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 6);
  res[7] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 7);
  res[8] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 8);
  res[9] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 9);
  res[10] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 10);
  res[11] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 11);
  res[12] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 12);
  res[13] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 13);
  res[14] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 14);
  res[15] = __builtin_ia32_vec_ext_v16qi ((__v16qi)val1.x, 15);

  for (i = 0; i < 16; i++)
    masks[i] = i;

  for (i = 0; i < 16; i++)
    if (res[i] != val1.c [masks[i]])
      abort ();
}
