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.