From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8F350385802F; Wed, 6 Sep 2023 09:56:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8F350385802F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1693994200; bh=TIzddfwwV9Yz4F0efSaWeUNZho5EXrwrHKhWpbHQhTE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=xK/Vxx0dI0F4eaP9/q7Yf52EzbG4Ml9dYKfD9/WyueIL3TTaBPOPAgl+KpXRzb6Ar 4jvOZOQ3WyUW3QeumJ2DkEWe3hQYaH5VmlojpF+D/3fTiWBX5ZDypSJxTq/RQ5QJr2 mW+VLtAg6FWBd4j9sVtjNOdHci4+yaWRaMwJcBGk= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/111232] RISC-V: Failed to combine vwmul + vadd into vwmacc Date: Wed, 06 Sep 2023 09:56:39 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D111232 --- Comment #2 from CVS Commits --- The trunk branch has been updated by Lehua Ding : https://gcc.gnu.org/g:9ee40b9a7bee83394fc7ba6fef71cb76d91b49c8 commit r14-3735-g9ee40b9a7bee83394fc7ba6fef71cb76d91b49c8 Author: Lehua Ding Date: Mon Sep 4 17:15:08 2023 +0800 RISC-V: Keep vlmax vector operators in simple form until split1 pass This patch keep vlmax vector pattern in simple before split1 pass which will allow more optimization (e.g. combine) before split1 pass. This patch changes the vlmax pattern in autovec.md to define_insn_and_s= plit as much as possible and clean up some combine patterns that are no long= er needed. This patch also fixed PR111232 bug which was caused by a combined faile= d. PR target/111232 gcc/ChangeLog: * config/riscv/autovec-opt.md (@pred_single_widen_mul): Delete. (*pred_widen_mulsu): Delete. (*pred_single_widen_mul): Delete. (*dual_widen_): Add new combine patterns. (*single_widen_sub): Ditto. (*single_widen_add): Ditto. (*single_widen_mult): Ditto. (*dual_widen_mulsu): Ditto. (*dual_widen_mulus): Ditto. (*dual_widen_): Ditto. (*single_widen_add): Ditto. (*single_widen_sub): Ditto. (*single_widen_mult): Ditto. * config/riscv/autovec.md (3): Change define_expand to define_insn_and_split. (2): Ditto. (abs2): Ditto. (smul3_highpart): Ditto. (umul3_highpart): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/widen/widen-4.c: Add more testca= ses. * gcc.target/riscv/rvv/autovec/widen/widen-complicate-4.c: Ditt= o. * gcc.target/riscv/rvv/autovec/pr111232.c: New test.=