1 /* PR rtl-optimization/52060 */
2 /* { dg-do run { target int32plus } } */
4 extern void abort (void);
5 union U
{ float f
; unsigned int i
; };
7 static inline __attribute__((always_inline
)) unsigned int
15 d
= ((unsigned) u
.i
>> 23) & 0xFF;
18 a
= (u
.i
<< 8) | 0x80000000U
;
19 b
= a
& ((1 << e
) - 1);
21 c
&= (b
| (a
& 2)) ? ~0 : ~1;
22 a
= ((a
+ 1U) >> 1) & c
;
26 __attribute__((noinline
)) unsigned int
30 static const unsigned int d
[128] =
32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
33 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
35 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
36 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
37 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
38 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
39 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7
41 a
= foo (1048575.0f
* x
);
43 b
= (c
<< 13) | ((a
>> (7 - c
)) & 0x1fff);
52 if (sizeof (u
.i
) == sizeof (u
.f
)
54 && bar (1.0f
) != 65535)