https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119114

--- Comment #15 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #14)
> ;; Same for a BImode but still return a QImode.
> (define_expand "vec_extract<mode>bi"
>   [(set (match_operand:QI         0 "register_operand")
>      (vec_select:QI
>        (match_operand:VB_VLS      1 "register_operand")
>        (parallel
>          [(match_operand          2 "nonmemory_operand")])))]
>   "TARGET_VECTOR"
> {
>   emit_insn (gen_vec_extract<mode>qi (operands[0], operands[1],
> operands[2]));
>   DONE;
> })
> 
> 
> This seems like always does a zero_extend instead of assuming there needs
> some other extends.
> 
> It also means the BImode extend is lost.
> What happens if the backend does not expose vec_extract for bi extraction?

Wait it is not the above but rather vec_extract<mode><vel> pattern.

Reply via email to