/* { dg-do compile } */ | |
/* { dg-options "-O2" } */ | |
/* X is both compared against zero and used. Make sure we can still | |
generate an ADDS and avoid an explicit comparison against zero. */ | |
int | |
foo (int x, int y) | |
{ | |
x += y; | |
if (x != 0) | |
x = x + 2; | |
return x; | |
} | |
/* { dg-final { scan-assembler-times "adds\\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" 1 } } */ | |
/* { dg-final { scan-assembler-not "cmp\\tw\[0-9\]+, 0" } } */ |