2 /* { dg-options "-O3" } */
3 /* { dg-require-effective-target ilp32 } */
5 typedef unsigned int u32
;
6 typedef unsigned long long u64
;
8 u64
__attribute__((noinline
))
9 foo (u32 high
, u32 low
)
11 return ((u64
)high
<< 32) | low
;
14 u32
__attribute__((noinline
))
17 return (u32
)(t
>> 32);
20 u64
__attribute__((noinline
))
26 u32
__attribute__((noinline
))
29 return (u32
)(t
>> 40);
32 u64
__attribute__((noinline
))
38 u64
__attribute__((noinline
))
49 if (foo (13000, 12000) != 55834574860000ULL)
52 if (right (55834574860000ULL) != 13000)
55 if (left (13000) != 55834574848000ULL)
58 if (right2 (55834574860000ULL) != 50)
61 if (left2 (13000) != 14293651161088000ULL)
64 if (zeroextend (13000) != 13000ULL)