/* PR target/104674 */ /* { dg-do run { target sse2_runtime } } */ /* { dg-options "-O2 -msse2 -mfpmath=sse" } */ __attribute__((noipa)) double bar (double x, double y) { return x + y; } __attribute__((noipa)) double foo (long long x) { long long a = x / 10000000; int b = x % 10000000; double s = (double) a; double n = (double) b / 1e7; double t = s + n; if (t == s + 1.0) t = bar (t, s); return t; } int main () { long long n = 888888; n = n * 10000000; if (foo (n) != 888888.0) __builtin_abort (); }