| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| |
| int foo1(unsigned int x, unsigned int y) |
| { |
| return __builtin_popcount (x&y) + __builtin_popcount (x|y); |
| } |
| |
| int foo2(unsigned int x, unsigned int y) |
| { |
| return __builtin_popcount (x&y) + __builtin_popcount (y|x); |
| } |
| |
| int foo3(unsigned int x, unsigned int y) |
| { |
| return __builtin_popcount (x|y) + __builtin_popcount (x&y); |
| } |
| |
| int foo4(unsigned int x, unsigned int y) |
| { |
| return __builtin_popcount (x|y) + __builtin_popcount (y&x); |
| } |
| |
| /* { dg-final { scan-tree-dump-not " & " "optimized" } } */ |
| /* { dg-final { scan-tree-dump-not " \\| " "optimized" } } */ |