The upcoming c[lt]z idiom recognition patch eliminates the need for a
brute force computation of the iteration count of these loops. The test
is intended to verify that ivcanon can determine the loop count when the
condition is given by a chain of constant computations.
We replace the constant operations with a more complicated chain that should
resist future idiom recognition.
gcc/testsuite/ChangeLog:
* gcc.dg/pr77975.c: Make tests more robust.
unsigned int
foo (unsigned int *b)
{
- unsigned int a = 3;
+ unsigned int a = 8;
while (a)
{
- a >>= 1;
+ a += 5;
+ a &= 44;
*b += a;
}
return a;
unsigned int
bar (unsigned int *b)
{
- unsigned int a = 7;
+ unsigned int a = 3;
while (a)
{
- a >>= 1;
+ a += 5;
+ a &= 44;
*b += a;
}
return a;