From d58a8e37f04e727857391ff22f3924cb97f4d168 Mon Sep 17 00:00:00 2001 From: Pan Li Date: Tue, 14 Oct 2025 10:33:08 +0800 Subject: [PATCH] RISC-V: Fix incorrect op of vwaddu/vwsubu wx combine The vwaddu and vwsubu combine pattern should take plus/minus instead of any_widen_binop. This PATCH would like to fix it. The below test suites are passed for this patch series. * The rv64gcv fully regression test. gcc/ChangeLog: * config/riscv/autovec-opt.md: Take concrete op instead of any_widen_binop for vwaddu/vwsubu wx combine. Signed-off-by: Pan Li --- gcc/config/riscv/autovec-opt.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/riscv/autovec-opt.md b/gcc/config/riscv/autovec-opt.md index 3d6e0a19c8a..d2705cf0fb9 100644 --- a/gcc/config/riscv/autovec-opt.md +++ b/gcc/config/riscv/autovec-opt.md @@ -1913,7 +1913,7 @@ (define_insn_and_split "*widen_waddu_wx_" [(set (match_operand:VWEXTI_D 0 "register_operand") - (any_widen_binop:VWEXTI_D + (plus:VWEXTI_D (vec_duplicate:VWEXTI_D (any_extend: (match_operand: 2 "register_operand"))) @@ -1933,7 +1933,7 @@ (define_insn_and_split "*widen_wsubu_wx_" [(set (match_operand:VWEXTI_D 0 "register_operand") - (any_widen_binop:VWEXTI_D + (minus:VWEXTI_D (match_operand:VWEXTI_D 1 "register_operand") (vec_duplicate:VWEXTI_D (any_extend: -- 2.47.3