https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81887
Bug ID: 81887 Summary: pragma omp ordered simd ignored under -fopenmp-simd Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: openmp, wrong-code Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Under -fopenmp-simd, OpenMP pragma 'ordered' is not added to IR, but it should be. void f(int *out) { #pragma omp simd for (int i = 0; i < 100; i++) #pragma omp ordered simd out[i/2] = i; } $ gcc/cc1 -O2 -fopenmp-simd -fdump-tree-gimple t.c $ cat t.c.004t.gimple void f(int*) (int * out) { { int i; #pragma omp simd linear(i:1) for (i = 0; i < 100; i = i + 1) { _1 = i / 2; _2 = (long unsigned int) _1; _3 = _2 * 4; _4 = out + _3; *_4 = i; } } }