https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108749
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Perhaps it is implementable also for taskloop, but with a lot of work. The way how e.g. for/do works with inscan is that the two parts of the loop are split up, and one essentially gets two worksharing loops with the same number of iterations, one doing one part, then some single (or in parallel) middle-part and then another doing the other part. With tasks, perhaps we could create separate tasks for the two halves, spawn a taskloop that does one part, then a task that depends on all those tasks and does the merging in the middle and finally another taskloop that does the other part. But I think this is something that hasn't been even considered when just tweaking the wording. After all, if we want to allow inscan on taskloop simd and constructs combined with that, we'd first want to allow it on taskloop itself.