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.

Reply via email to