1124524Sume/* { dg-do compile } */
266776Skris/* { dg-options "-O2 -fschedule-insns -funroll-all-loops -fcompare-debug" } */
355163Sshin
455163Sshintypedef void block128_f (int *, int);
5222732Shrs
655163Sshinvoid
762632Skrisfoo (int *out, int *iv, block128_f block)
855163Sshin{
955163Sshin  while (1)
1055163Sshin    {
1155163Sshin      *out = *out ^ *iv;
1255163Sshin      block (out, *out);
1355163Sshin      iv = out;
1455163Sshin    }
1555163Sshin}
1655163Sshin