1 /* { dg-do compile } */
2 /* { dg-require-effective-target int32plus } */
3 /* { dg-options "-fdump-tree-gimple" } */
4 
f(int a)5 int f (int a) {
6 	return (a << 31) << 6;
7 }
8 
g(unsigned int a)9 unsigned int g (unsigned int a) {
10 	return (a >> 7) >> 25;
11 }
12 
h(int b)13 int h (int b) {
14 	return (b >> 30) >> 30;
15 }
16 
j(long long c)17 long long j (long long c) {
18 	return (c >> 35) << 35;
19 }
20 /* { dg-final { scan-tree-dump-times "= 0" 2 "gimple" } } */
21 /* { dg-final { scan-tree-dump "b >> 31" "gimple" } } */
22 /* { dg-final { scan-tree-dump "c & -(34359738368|0x800000000)" "gimple" } } */
23 /* { dg-final { cleanup-tree-dump "gimple" } } */
24