/* { dg-do compile { target longlong64 } } */
/* { dg-options "-O" } */
/* { dg-additional-options "-msse2" { target x86_64-*-* i?86-*-* } } */

typedef __INT8_TYPE__ __attribute__((__vector_size__ (4))) U;
typedef __INT32_TYPE__ __attribute__((__vector_size__ (4))) V;
typedef __UINT64_TYPE__ __attribute__((__vector_size__ (8))) W;

int i;
U h;
W g;

U
foo (void)
{
  W w = i != g;
  V v = __builtin_convertvector (i | w >> 2, V);
  U u = (U) v[0] + h;
  return u;
}