https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119325
--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> --- For both the reduced and the full example: If I write the pragma as: #pragma omp target map(to:a,b) map(from:res) #pragma omp for simd (i.e. I remove the 'parallel' before 'for simd') the code starts to PASS again. This also explains why direct execution without OpenMP but just -fopenmp-simd (my comment, comment 3) works.