| /* Check that the SH specific sh_optimize_sett_clrt RTL optimization pass |
| works as expected. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2" } */ |
| /* { dg-final { scan-assembler-times "clrt" 2 } } */ |
| /* { dg-final { scan-assembler-times "sett" 1 } } */ |
| |
| long long |
| test_00 (long long a, long long b, long long c, int d) |
| { |
| /* One of the blocks should have a clrt and the other one should not. */ |
| if (d > 5) |
| return a + b; |
| else |
| return a + c; |
| } |
| |
| long long |
| test_01 (long long a, long long b) |
| { |
| /* Must see a clrt because T bit is undefined at function entry. */ |
| return a + b; |
| } |
| |
| int |
| test_02 (int a, int b, int c, int d) |
| { |
| /* One of the blocks should have a sett and the other one should not. */ |
| if (d > 4) |
| return a + b + 1; |
| else |
| return a + c + 1; |
| } |