/* { 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} } } */