https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126771
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |crazylht at gmail dot com
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Oh, this is also a x86 target issue as we miss vcond_mask_v2siqi for
MMX-with-SSE. We have vcond_mask_v2siv2si and vcond_mask_v2diqi but I'll note
the
vectorizer isn't able to switch between AVX512 and SSE style masking at will.
We also miss vec_cmpv2sfqi, in practice this degrades MMX-with-SSE
vectorization
once AVX512VL is enabled.
On the vectorizer side it's probably best to always elide the conversion
during pattern recognition and instead have vectorizable_condition consider
an intermediate conversion? In general I'd move away from handling
everything with patterns towards more intelligence in vectorizable_* since
that is a point where we eventually want to commit to vector types used
while pattern recognition is too early for that.