/* PR tree-optimization/69546 */ /* { dg-do run { target int128 } } */ unsigned __int128 __attribute__ ((noinline, noclone)) foo (unsigned long long x) { unsigned __int128 y = ~0ULL; x >>= 63; return y / (x | 1); } unsigned __int128 __attribute__ ((noinline, noclone)) bar (unsigned long long x) { unsigned __int128 y = ~33ULL; x >>= 63; return y / (x | 1); } int main () { if (foo (1) != ~0ULL || bar (17) != ~33ULL) __builtin_abort (); return 0; }