1 /* Check that for dynamic logical right shifts with a constant the negated
2 constant is loaded directly, instead of loading the postitive constant
3 and negating it separately. This was a case that happened at optimization
4 level -O2 and looked like:
12 /* { dg-do compile { target { has_dyn_shift } } } */
13 /* { dg-options "-O2" } */
14 /* { dg-final { scan-assembler-not "neg" } } */
17 test (unsigned int a
, int b
, int c
)
19 unsigned char r
= b
== c
;
20 return ((a
>> 31) | (r
<< 31));