1/* { dg-do compile } */ 2/* { dg-options "-O2 -fdump-tree-original" } */ 3 4int test1(int a, int b) 5{ 6 return (a & b) | b; 7} 8 9int test2(int c, int d) 10{ 11 return (c & d) | c; 12} 13 14int test3(int e, int f) 15{ 16 return e | (e & f); 17} 18 19int test4(int g, int h) 20{ 21 return g | (h & g); 22} 23 24int test5(int i, int j) 25{ 26 return (i | j) & j; 27} 28 29int test6(int k, int l) 30{ 31 return (k | l) & k; 32} 33 34int test7(int m, int n) 35{ 36 return m & (m | n); 37} 38 39int test8(int o, int p) 40{ 41 return o & (p | o); 42} 43 44/* { dg-final { scan-tree-dump-times "return b;" 1 "original" } } */ 45/* { dg-final { scan-tree-dump-times "return c;" 1 "original" } } */ 46/* { dg-final { scan-tree-dump-times "return e;" 1 "original" } } */ 47/* { dg-final { scan-tree-dump-times "return g;" 1 "original" } } */ 48/* { dg-final { scan-tree-dump-times "return j;" 1 "original" } } */ 49/* { dg-final { scan-tree-dump-times "return k;" 1 "original" } } */ 50/* { dg-final { scan-tree-dump-times "return m;" 1 "original" } } */ 51/* { dg-final { scan-tree-dump-times "return o;" 1 "original" } } */ 52/* { dg-final { cleanup-tree-dump "original" } } */ 53