| /* PR tree-optimization/95527 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-original" } */ |
| /* { dg-final { scan-tree-dump "a & 7\\) == 0" "original" } } */ |
| /* { dg-final { scan-tree-dump "b & 63\\) != 0" "original" } } */ |
| /* { dg-final { scan-tree-dump-times "return 0;" 2 "original" } } */ |
| /* { dg-final { scan-tree-dump-times "return 1;" 2 "original" } } */ |
| /* { dg-final { scan-tree-dump "g & 15\\) == 8" "original" } } */ |
| /* { dg-final { scan-tree-dump "h & 255\\) != 128" "original" } } */ |
| |
| int |
| f1 (int a) |
| { |
| return __builtin_ctz (a) >= 3; |
| } |
| |
| int |
| f2 (int b) |
| { |
| return __builtin_ctz (b) < 6; |
| } |
| |
| int |
| f3 (int c) |
| { |
| return __builtin_ctz (c) < 0; |
| } |
| |
| int |
| f4 (int d) |
| { |
| return __builtin_ctz (d) >= 0; |
| } |
| |
| int |
| f5 (int e) |
| { |
| return __builtin_ctz (e) >= __SIZEOF_INT__ * __CHAR_BIT__; |
| } |
| |
| int |
| f6 (int f) |
| { |
| return __builtin_ctz (f) < __SIZEOF_INT__ * __CHAR_BIT__; |
| } |
| |
| int |
| f7 (int g) |
| { |
| return __builtin_ctz (g) == 3; |
| } |
| |
| int |
| f8 (int h) |
| { |
| return __builtin_ctz (h) != 7; |
| } |