/* { dg-do compile } */
/* { dg-options "-O2" } */

#define vector __attribute__((vector_size(16) ))

#define lowull (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1 : 0)
#define lowui (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 3 : 0)


vector unsigned long long
f1(vector unsigned long long b, vector unsigned int a)
{
  b[lowull] = a[lowui];
  return b;
}

unsigned long long
f2(vector unsigned int a)
{
  return a[lowui];
}

/* { dg-final { scan-assembler-times {fmov} 2 } } */
/* { dg-final { scan-assembler-not {umov} } } */
/* { dg-final { scan-assembler-not {uxtw} } } */