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.