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

--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
;; 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?

Reply via email to