2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mtune=generic -masm=att" } */
4 /* { dg-final { scan-assembler-not {\mand[bwlq]\M} } } */
7 f1 (unsigned x
, unsigned char y
)
11 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
12 return (x
<< y
) | (x
>> (__CHAR_BIT__
* __SIZEOF_INT__
- y
));
16 f2 (unsigned x
, unsigned y
)
20 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
21 return (x
<< y
) | (x
>> (__CHAR_BIT__
* __SIZEOF_INT__
- y
));
25 f3 (unsigned x
, unsigned short y
)
29 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
30 return (x
<< y
) | (x
>> (__CHAR_BIT__
* __SIZEOF_INT__
- y
));
34 f4 (unsigned x
, unsigned char y
)
36 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
37 return (x
<< y
) | (x
>> (-y
& (__CHAR_BIT__
* __SIZEOF_INT__
- 1)));
41 f5 (unsigned x
, unsigned int y
)
43 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
44 return (x
<< y
) | (x
>> (-y
& (__CHAR_BIT__
* __SIZEOF_INT__
- 1)));
48 f6 (unsigned x
, unsigned short y
)
50 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
51 return (x
<< y
) | (x
>> (-y
& (__CHAR_BIT__
* __SIZEOF_INT__
- 1)));