https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85919

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
To summarize the main issue was around the fact that the x86 backend supports
two distinct mask_gather_load differing only in the mode of the _mask_ but

OPTAB_CD(mask_gather_load_optab, "mask_gather_load$a$b")

only has modes for the index and data vector.  I think it's a non-problem
solvable in the vectorizer though, for example by looking at predicates
for the mask operand.

Another complication is that the ISA has V4SF[V4DI] gathers thus mixed size
operation - the vectorizer needs to deal with this by splitting.  Most of
this is implemented for the open-coded path already but the IFN path still
lacks this ability, so does the optab query part.

Scatters are going to be "easier" since at least there's only AVX512 thus
a single kind of mask mode.

Reply via email to