/* { dg-do compile } */ | |
/* { dg-options "-march=armv8-a+sve -O2 -fharden-conditional-branches -fno-tree-scev-cprop" } */ | |
/* -fharden-conditional-branches prevents optimization of its redundant | |
compares by detaching values from the operands with asm statements. They | |
used to require GENERAL_REGS, but the vectorized booleans, generated while | |
vectorizing this function, can't be held in GENERAL_REGS. */ | |
void | |
foo (int *p) | |
{ | |
while (*p < 1) | |
++*p; | |
} |