| /* { dg-do compile } */ |
| /* { dg-options "-O2" } */ |
| |
| unsigned int |
| test_csinc32_ifcvt(unsigned int w0, |
| unsigned int w1, |
| unsigned int w2) { |
| /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */ |
| if (w0 == w1) |
| ++ w2; |
| |
| return w2; |
| } |
| |
| unsigned int |
| test_csinc32_condasn1(unsigned int w0, |
| unsigned int w1, |
| unsigned int w2, |
| unsigned int w3) { |
| unsigned int w4; |
| |
| /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */ |
| w4 = (w0 == w1) ? (w3 + 1) : w2; |
| return w4; |
| } |
| |
| unsigned int |
| test_csinc32_condasn2(unsigned int w0, |
| unsigned int w1, |
| unsigned int w2, |
| unsigned int w3) { |
| unsigned int w4; |
| |
| /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*eq" } } */ |
| w4 = (w0 == w1) ? w2 : (w3 + 1); |
| return w4; |
| } |
| |
| unsigned long long |
| test_csinc64_ifcvt(unsigned long long x0, |
| unsigned long long x1, |
| unsigned long long x2) { |
| /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */ |
| if (x0 == x1) |
| ++ x2; |
| |
| return x2; |
| } |
| |
| unsigned long long |
| test_csinc64_condasn1(unsigned long long x0, |
| unsigned long long x1, |
| unsigned long long x2, |
| unsigned long long x3) { |
| unsigned long long x4; |
| |
| /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */ |
| x4 = (x0 == x1) ? (x3 + 1) : x2; |
| return x4; |
| } |
| |
| unsigned long long |
| test_csinc64_condasn2(unsigned long long x0, |
| unsigned long long x1, |
| unsigned long long x2, |
| unsigned long long x3) { |
| unsigned long long x4; |
| |
| /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*eq" } } */ |
| x4 = (x0 == x1) ? x2 : (x3 + 1); |
| return x4; |
| } |