| /* { dg-options "-O2 -fdump-tree-optimized-raw" } */ |
| |
| #define TEST_CMP(FN, DIV, MUL) \ |
| int \ |
| FN (int x) \ |
| { \ |
| if (x & 7) \ |
| __builtin_unreachable (); \ |
| x /= DIV; \ |
| return x * MUL; \ |
| } |
| |
| TEST_CMP (f1, 2, 6) |
| TEST_CMP (f2, 2, 10) |
| TEST_CMP (f3, 4, 80) |
| TEST_CMP (f4, 8, 200) |
| |
| /* { dg-final { scan-tree-dump-not {<[a-z]*_div_expr, } "optimized" } } */ |
| /* { dg-final { scan-tree-dump-not {<rshift_expr, } "optimized" } } */ |
| /* { dg-final { scan-tree-dump {<mult_expr, [^,]*, [^,]*, 3,} "optimized" } } */ |
| /* { dg-final { scan-tree-dump {<mult_expr, [^,]*, [^,]*, 5,} "optimized" } } */ |
| /* { dg-final { scan-tree-dump {<mult_expr, [^,]*, [^,]*, 20,} "optimized" } } */ |
| /* { dg-final { scan-tree-dump {<mult_expr, [^,]*, [^,]*, 25,} "optimized" } } */ |