[Bug target/70293] [ICE, AVX-512] Wrong reg constraints in vec_dup
kyukhin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 18 13:55:00 GMT 2016
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.
More information about the Gcc-bugs
mailing list