https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80359
--- Comment #1 from David Binderman <dcb314 at hotmail dot com> --- Reduced file is this: FFT(_Complex *X, int length) { unsigned i, j; for (; i < length; i++) { X[i] = 0; for (j = 0; j < length; j++) X[i] = X[i] / length; } } Interestingly, it seems to go wrong with -O2, not just -O3.