1 /* { dg-options "-O2" } */
4 extern void abort (void);
6 typedef unsigned int __u32
;
9 __rev16_32_alt (__u32 x
)
11 return (((__u32
)(x
) & (__u32
)0xff00ff00UL
) >> 8)
12 | (((__u32
)(x
) & (__u32
)0x00ff00ffUL
) << 8);
18 return (((__u32
)(x
) & (__u32
)0x00ff00ffUL
) << 8)
19 | (((__u32
)(x
) & (__u32
)0xff00ff00UL
) >> 8);
22 typedef unsigned long long __u64
;
25 __rev16_64_alt (__u64 x
)
27 return (((__u64
)(x
) & (__u64
)0xff00ff00ff00ff00UL
) >> 8)
28 | (((__u64
)(x
) & (__u64
)0x00ff00ff00ff00ffUL
) << 8);
34 return (((__u64
)(x
) & (__u64
)0x00ff00ff00ff00ffUL
) << 8)
35 | (((__u64
)(x
) & (__u64
)0xff00ff00ff00ff00UL
) >> 8);
41 volatile __u32 in32
= 0x12345678;
42 volatile __u32 expected32
= 0x34127856;
43 volatile __u64 in64
= 0x1234567890abcdefUL
;
44 volatile __u64 expected64
= 0x34127856ab90efcdUL
;
46 if (__rev16_32 (in32
) != expected32
)
49 if (__rev16_32_alt (in32
) != expected32
)
52 if (__rev16_64 (in64
) != expected64
)
55 if (__rev16_64_alt (in64
) != expected64
)