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

--- Comment #1 from Jeffrey A. Law <law at gcc dot gnu.org> ---
It looks like we're unconditionally trying to get the merge_op_idx on an insn
that doesn't support that:


(insn 16 15 17 2 (set (subreg:V1DF (reg:RVVM1DF 149 [ _4 ]) 0)
        (mem:V1DF (reg/f:DI 151 [ q ]) [2 *q.1_5+0 S8 A64])) "j.c":9:8 3244
{*movv1df}
     (expr_list:REG_DEAD (reg/f:DI 151 [ q ])
        (nil)))

(define_insn_and_split "*mov<mode>"
  [(set (match_operand:VLS_AVL_IMM 0 "reg_or_mem_operand" "=vr, m, vr")
        (match_operand:VLS_AVL_IMM 1 "reg_or_mem_operand" "  m,vr, vr"))]
  "TARGET_VECTOR
[ ... ]
  [(set_attr "type" "vlde,vste,vmov")
   (set_attr "mode" "<MODE>")
   (set (attr "avl_type_idx") (const_int INVALID_ATTRIBUTE))
   (set (attr "mode_idx") (const_int INVALID_ATTRIBUTE))]


I suspect a suitable attribute setting would be sufficient here.  But I also
suspect there's other insns that will need similar handling.  We should discuss
this in tomorrow's patchwork meeting.

Reply via email to