https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100711
jbeulich at suse dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jbeulich at suse dot com --- Comment #8 from jbeulich at suse dot com --- Since the commit doesn't really explain it (maybe it's obvious to others, but it isn't to me), may I ask why two splitters were introduced, yet then still not covering all possible modes? VI48_128 only covers two of the four possible SSE2 modes, while VI124_AVX2 leaves out all DI-element-size ones as well as all 512-bit ones. Shouldn't both be folded, using VI_AVX2 as the mode iterator? As an aside, it is also interesting that the 1st splitter uses TARGET_SSE without the corresponding testcase limiting itself to just SSE. When building that testcase with SSE2 turned off, foo() uses shufps and andnps as expected, but the splitter doesn't appear to come into play at all for bar(), when really it is only the broadcast that needs synthesizing, while andnps can be used regardless of mode.