1 /* { dg-do compile } */
2 /* { dg-options "-fdump-tree-gimple" } */
3
f(int a)4 int f (int a) {
5 return (a << 3) << 6;
6 }
7
g(int b)8 int g (int b) {
9 return (b >> 5) << 5;
10 }
11
h(unsigned long long c)12 unsigned long long h (unsigned long long c) {
13 return (c << 60) >> 60;
14 }
15
l(int d)16 int l (int d) {
17 return (d << 6) >> 6;
18 }
19
20 /* { dg-final { scan-tree-dump "a << 9" "gimple" } } */
21 /* { dg-final { scan-tree-dump "b & -32" "gimple" } } */
22 /* { dg-final { scan-tree-dump "c & 15" "gimple" } } */
23 /* { dg-final { scan-tree-dump "d << 6" "gimple" } } */
24 /* { dg-final { cleanup-tree-dump "gimple" } } */
25