https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88497
--- Comment #7 from kelvin at gcc dot gnu.org --- Here is the original program that motivated my simplified reproducer: extern void first_dummy (); extern void dummy (double sacc, int n); extern void other_dummy (); extern float opt_value; extern char *opt_desc; #define M 128 #define N 512 double x [N]; double y [N]; int main (int argc, char *argv []) { double sacc; first_dummy (); for (int j = 0; j < M; j++) { sacc = 0.00; for (unsigned long long int i = 0; i < N; i++) { sacc += x[i] * y[i]; } dummy (sacc, N); } opt_value = ((float) N) * 2 * ((float) M); opt_desc = "flops"; other_dummy (); }