PR rtl-optimization/87918
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr82498-1.c
blob78a6698f607e1cec747d2a80ffa5a41126b3c3f7
1 /* PR target/82498 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -mtune=generic -masm=att" } */
4 /* { dg-final { scan-assembler-not {\mand[bwlq]\M} } } */
6 unsigned
7 f1 (unsigned x, unsigned char y)
9 if (y == 0)
10 return x;
11 y &= __CHAR_BIT__ * __SIZEOF_INT__ - 1;
12 return (x << y) | (x >> (__CHAR_BIT__ * __SIZEOF_INT__ - y));
15 unsigned
16 f2 (unsigned x, unsigned y)
18 if (y == 0)
19 return x;
20 y &= __CHAR_BIT__ * __SIZEOF_INT__ - 1;
21 return (x << y) | (x >> (__CHAR_BIT__ * __SIZEOF_INT__ - y));
24 unsigned
25 f3 (unsigned x, unsigned short y)
27 if (y == 0)
28 return x;
29 y &= __CHAR_BIT__ * __SIZEOF_INT__ - 1;
30 return (x << y) | (x >> (__CHAR_BIT__ * __SIZEOF_INT__ - y));
33 unsigned
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)));
40 unsigned
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)));
47 unsigned
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)));