===================================================================
@@ -4,22 +4,21 @@
/* { dg-final { scan-assembler "\tbbit\[01\]\t" } } */
/* { dg-final { scan-assembler-not "\tbbit\[01\]l\t" } } */
/* { dg-final { scan-assembler "\tbnel\t" } } */
-/* { dg-final { scan-assembler-not "\tbne\t" } } */
NOMIPS16 int
-f (int n, int i)
+f (int *a, int *b)
{
- int s = 0;
- for (; i & 1; i++)
- s += i;
- return s;
+ do
+ if (__builtin_expect (*a & 1, 1))
+ *a = 0;
+ while (++a < b);
}
NOMIPS16 int
-g (int n, int i)
+g (int *a, int *b)
{
- int s = 0;
- for (i = 0; i < n; i++)
- s += i;
- return s;
+ do
+ if (__builtin_expect (*a == 3, 1))
+ *a = 0;
+ while (++a < b);
}