/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ unsigned int test1(unsigned int a , unsigned int b) { return (a << 2) + (b << 2) == a * 4 + b * 4; } unsigned int test2(unsigned int a , unsigned int b) { return (a << 2) + (b << 2) == (a + b) << 2; } unsigned int test3(unsigned int a , unsigned int b) { return a * 4 + b * 4 == (a + b) * 4; } unsigned int test4(unsigned int a , unsigned int b) { return (a + b) << 2 == (a + b) * 4; } unsigned int test5(unsigned int a , unsigned int b) { return (a << 2) + (b << 2) == (a + b) * 4; } unsigned int test6(unsigned int a , unsigned int b) { return (a + b) << 2 == a * 4 + b * 4; } /* { dg-final { scan-tree-dump-times "return 1" 6 "optimized" } } */