2 /* { dg-options "-O2 -fno-unit-at-a-time" } */
4 typedef unsigned char u8
;
5 typedef unsigned long long u64
;
7 static inline __attribute__((always_inline
)) u64
__swab64p(const u64
*p
)
9 return (__builtin_constant_p((u64
)(*p
)) ? ((u64
)( (((u64
)(*p
) & (u64
)0x00000000000000ffULL
) << 56) | (((u64
)(*p
) & (u64
)0x000000000000ff00ULL
) << 40) | (((u64
)(*p
) & (u64
)0x0000000000ff0000ULL
) << 24) | (((u64
)(*p
) & (u64
)0x00000000ff000000ULL
) << 8) | (((u64
)(*p
) & (u64
)0x000000ff00000000ULL
) >> 8) | (((u64
)(*p
) & (u64
)0x0000ff0000000000ULL
) >> 24) | (((u64
)(*p
) & (u64
)0x00ff000000000000ULL
) >> 40) | (((u64
)(*p
) & (u64
)0xff00000000000000ULL
) >> 56))) : __builtin_bswap64(*p
));
12 static inline u64
wwn_to_u64(void *wwn
)
14 return __swab64p(wwn
);
17 void __attribute__((noinline
,noclone
)) broken(u64
* shost
)
19 u8 node_name
[8] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
20 *shost
= wwn_to_u64(node_name
);
23 void __attribute__((noinline
,noclone
)) dummy(void)
28 int main(int argc
, char* argv
[])