/* { dg-do compile } */ /* { dg-options "-fdump-tree-gimple" } */ int f (int a) { return (a << 3) << 6; } int g (int b) { return (b >> 5) << 5; } unsigned long long h (unsigned long long c) { return (c << 60) >> 60; } int l (int d) { return (d << 6) >> 6; } /* { dg-final { scan-tree-dump "a << 9" "gimple" } } */ /* { dg-final { scan-tree-dump "b & -32" "gimple" } } */ /* { dg-final { scan-tree-dump "c & 15" "gimple" } } */ /* { dg-final { scan-tree-dump "d << 6" "gimple" } } */ /* { dg-final { cleanup-tree-dump "gimple" } } */