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