https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70293
--- Comment #1 from Kirill Yukhin <kyukhin at gcc dot gnu.org> --- We've got duplication of patterns (make mddump): ;; /export/users/kyukhin/gcc/git/gcc2/gcc/config/i386/sse.md: 17107 (define_insn ("avx2_pbroadcastv8hi") [ (set (match_operand:V8HI 0 ("register_operand") ("=x")) (vec_duplicate:V8HI (vec_select:HI (match_operand:V8HI 1 ("nonimmediate_operand") ("xm")) (parallel [ (const_int 0 [0]) ])))) ] ("TARGET_AVX2") ("vpbroadcastw\t{%1, %0|%0, %w1}") [ (set_attr ("type") ("ssemov")) (set_attr ("prefix_extra") ("1")) (set_attr ("prefix") ("vex")) (set_attr ("mode") ("TI")) ]) ... (define_insn ("avx512vl_vec_dupv8hi") [ (set (match_operand:V8HI 0 ("register_operand") ("=v")) (vec_duplicate:V8HI (vec_select:HI (match_operand:V8HI 1 ("nonimmediate_operand") ("vm")) (parallel [ (const_int 0 [0]) ])))) ] ("(TARGET_AVX512BW) && (TARGET_AVX512VL)") ("vpbroadcastw\t{%1, %0|%0, %1}") [ (set_attr ("type") ("ssemov")) (set_attr ("prefix") ("evex")) (set_attr ("mode") ("TI")) ]) That's why we've got unsatisfied constraints on xmmN, N>15.