https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- Valid testcase (well, assign sth useful to g...) #define N 10000000 int a[N], b[N], c[N]; main() { int i, g; #pragma omp parallel for num_threads(4) for (i = 0; i < N; i++) { a[i] = b[i] + c[i] + g; } } in the OMP fn we fail to hoist the load of .omp_child_i->g out of the loop and thus generate inferior code.