https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109701
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That is not that surprising. As mentioned in the linked in PR99928, that behavior is there only in OpenMP 5.0 and wasn't like that in OpenMP 4.5 and earlier; in OpenMP 4.5 you really need separate target (or target teams) with explicit map clause and then distribute ... with reduction. And this part of OpenMP 5.0 was only implemented in GCC starting with GCC 12, older versions supported the 4.5 behavior.