/* PR rtl-optimization/87759 */ /* { dg-do compile { target int128 } } */ /* { dg-options "-O2 -w -fschedule-insns -fselective-scheduling -ftrapv -fno-dce -fno-expensive-optimizations -fno-ipa-ra -fno-tree-dce -fno-tree-ter" } */ int cc; void rc (__int128 *oi) { __int128 qz = (__int128)2 << cc; if (qz != 0) { if (cc != 0) { __int128 zp = 1; for (;;) { unsigned __int128 *ar = &cc; int y5; if (oi != 0) { y3: zp = *oi + *ar; } y5 = (cc + 1) == ((*ar /= *oi) << ((zp >>= 128) / cc)); qz += !!y5 ? 1 : qz == (*ar ^ zp + 1); ++*oi; } } else ++qz; } goto y3; }