https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121634
--- Comment #5 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- It turns out to be a stupid pasto: diff --git a/gcc/config/loongarch/simd.md b/gcc/config/loongarch/simd.md index dd17cd13fc5..4156b269f9a 100644 --- a/gcc/config/loongarch/simd.md +++ b/gcc/config/loongarch/simd.md @@ -773,7 +773,7 @@ (define_insn "simd_maddw_evod_<mode>_<su>" (vec_select:<VEC_HALF> (match_operand:IVEC 2 "register_operand" "f") (match_operand:IVEC 4 "vect_par_cnst_even_or_odd_half"))) - (any_extend:<WVEC> + (any_extend:<WVEC_HALF> (vec_select:<VEC_HALF> (match_operand:IVEC 3 "register_operand" "f") (match_dup 4)))) I'll submit this to my test facility and then gcc-patches if tested OK.