1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 #define vector __attribute__((vector_size(16) ))
5 
6 #define lowull (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1 : 0)
7 #define lowui (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 3 : 0)
8 
9 
10 vector unsigned long long
f1(vector unsigned long long b,vector unsigned int a)11 f1(vector unsigned long long b, vector unsigned int a)
12 {
13   b[lowull] = a[lowui];
14   return b;
15 }
16 
17 unsigned long long
f2(vector unsigned int a)18 f2(vector unsigned int a)
19 {
20   return a[lowui];
21 }
22 
23 /* { dg-final { scan-assembler-times {fmov} 2 } } */
24 /* { dg-final { scan-assembler-not {umov} } } */
25 /* { dg-final { scan-assembler-not {uxtw} } } */
26