1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3
4 unsigned int test1(unsigned int a , unsigned int b)
5 {
6 return (a << 2) + (b << 2) == a * 4 + b * 4;
7 }
8
9 unsigned int test2(unsigned int a , unsigned int b)
10 {
11 return (a << 2) + (b << 2) == (a + b) << 2;
12 }
13
14 unsigned int test3(unsigned int a , unsigned int b)
15 {
16 return a * 4 + b * 4 == (a + b) * 4;
17 }
18
19 unsigned int test4(unsigned int a , unsigned int b)
20 {
21 return (a + b) << 2 == (a + b) * 4;
22 }
23
24 unsigned int test5(unsigned int a , unsigned int b)
25 {
26 return (a << 2) + (b << 2) == (a + b) * 4;
27 }
28
29 unsigned int test6(unsigned int a , unsigned int b)
30 {
31 return (a + b) << 2 == a * 4 + b * 4;
32 }
33
34 /* { dg-final { scan-tree-dump-times "return 1" 6 "optimized" } } */