I have noticed that the "length" "8" attribute is missing in a few patterns in mve.md.
gcc/ * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length attribute. (mve_vqshluq_m_n_s<mode>): Likewise. (mve_vshlq_m_<supf><mode>): Likewise. (mve_vsriq_m_n_<supf><mode>): Likewise. (mve_vsubq_m_<supf><mode>): Likewise. --- gcc/config/arm/mve.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md index 555ad1b66c8..8a05371e14a 100644 --- a/gcc/config/arm/mve.md +++ b/gcc/config/arm/mve.md @@ -4979,7 +4979,7 @@ (define_insn "mve_vabavq_p_<supf><mode>" "TARGET_HAVE_MVE" "vpst\;vabavt.<supf>%#<V_sz_elem>\t%0, %q2, %q3" [(set_attr "type" "mve_move") -]) + (set_attr "length" "8")]) ;; ;; [vqshluq_m_n_s]) @@ -4995,7 +4995,8 @@ (define_insn "mve_vqshluq_m_n_s<mode>" ] "TARGET_HAVE_MVE" "vpst\n\tvqshlut.s%#<V_sz_elem>\t%q0, %q2, %3" - [(set_attr "type" "mve_move")]) + [(set_attr "type" "mve_move") + (set_attr "length" "8")]) ;; ;; [vshlq_m_s, vshlq_m_u]) @@ -5011,7 +5012,8 @@ (define_insn "mve_vshlq_m_<supf><mode>" ] "TARGET_HAVE_MVE" "vpst\;vshlt.<supf>%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move")]) + [(set_attr "type" "mve_move") + (set_attr "length" "8")]) ;; ;; [vsriq_m_n_s, vsriq_m_n_u]) @@ -5027,7 +5029,8 @@ (define_insn "mve_vsriq_m_n_<supf><mode>" ] "TARGET_HAVE_MVE" "vpst\;vsrit.%#<V_sz_elem>\t%q0, %q2, %3" - [(set_attr "type" "mve_move")]) + [(set_attr "type" "mve_move") + (set_attr "length" "8")]) ;; ;; [vsubq_m_u, vsubq_m_s]) @@ -5043,7 +5046,8 @@ (define_insn "mve_vsubq_m_<supf><mode>" ] "TARGET_HAVE_MVE" "vpst\;vsubt.i%#<V_sz_elem>\t%q0, %q2, %q3" - [(set_attr "type" "mve_move")]) + [(set_attr "type" "mve_move") + (set_attr "length" "8")]) ;; ;; [vcvtq_m_n_to_f_u, vcvtq_m_n_to_f_s]) -- 2.34.1