The intended broadcast (with AVX512) can very well be done right from memory.
gcc/ * config/i386/sse.md: Permit non-immediate operand 1 in AVX2 form of splitter for PR target/100711. --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -17356,7 +17356,7 @@ (and:VI_AVX2 (vec_duplicate:VI_AVX2 (not:<ssescalarmode> - (match_operand:<ssescalarmode> 1 "register_operand"))) + (match_operand:<ssescalarmode> 1 "nonimmediate_operand"))) (match_operand:VI_AVX2 2 "vector_operand")))] "TARGET_AVX2" [(set (match_dup 3)