2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mtune=generic -masm=att" } */
4 /* { dg-final { scan-assembler-not {\mand[bwlq]\M} } } */
7 f1 (int x
, unsigned char y
)
9 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
14 f2 (unsigned x
, unsigned char y
)
16 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
21 f3 (unsigned x
, unsigned char y
)
23 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
28 f4 (unsigned x
, unsigned char y
)
30 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
35 f5 (unsigned x
, unsigned char y
)
37 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
42 f6 (unsigned x
, unsigned char y
)
44 y
&= __CHAR_BIT__
* __SIZEOF_INT__
- 1;
45 return (x
+ 2) & ~(1U << y
);