2 pr31169.c from the execute part of the gcc torture tests.
11 #define HOST_WIDE_INT long
12 #define HOST_BITS_PER_WIDE_INT (sizeof(long)*8)
14 #ifndef __SDCC_pic16 // TODO: enable when the pic16 ports supports bitfields of size greater than 8 bits!
17 unsigned int precision
: 9;
21 sign_bit_p (struct tree_type
*t
, HOST_WIDE_INT val_hi
, unsigned HOST_WIDE_INT val_lo
)
23 unsigned HOST_WIDE_INT mask_lo
, lo
;
24 HOST_WIDE_INT mask_hi
, hi
;
25 int width
= t
->precision
;
27 if (width
> HOST_BITS_PER_WIDE_INT
)
29 hi
= (unsigned HOST_WIDE_INT
) 1 << (width
- HOST_BITS_PER_WIDE_INT
- 1);
32 mask_hi
= ((unsigned HOST_WIDE_INT
) -1
33 >> (2 * HOST_BITS_PER_WIDE_INT
- width
));
39 lo
= (unsigned HOST_WIDE_INT
) 1 << (width
- 1);
42 mask_lo
= ((unsigned HOST_WIDE_INT
) -1
43 >> (HOST_BITS_PER_WIDE_INT
- width
));
46 if ((val_hi
& mask_hi
) == hi
47 && (val_lo
& mask_lo
) == lo
)
55 testTortureExecute (void)
57 #ifndef __SDCC_pic16 // TODO: enable when the pic16 ports supports bitfields of size greater than 8 bits!
60 if (!sign_bit_p (&t
, 0, -1))