/* { dg-do compile } */
/* { dg-options "-O2 -msse2 -mtune=k8" } */

typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16)));
extern int memcmp (const void *, const void *, __SIZE_TYPE__);

void sse2_test (void)
{
  union
  {
    __m128i x;
  } val1, res[8], tmp;
  short ins[8] = { 8, 5, 9, 4, 2, 6, 1, 20 };
  int i;

  for (i = 0; i < 8; i++)
    {
      tmp.x = val1.x;
      if (memcmp (&tmp, &res[i], sizeof (tmp)))
        (__m128i) __builtin_ia32_vec_set_v8hi ((__v8hi) val1.x, ins[i], 0);
    }
}
