From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id E28133849AE0; Wed, 24 Apr 2024 13:13:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E28133849AE0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1713964401; bh=NvZZwjH0fGDIxSQmw7KCBKCx48/A47uye4tyAcCYdQk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Rdw5ztpiZGT1cIS5USZ22Esyfda/f/daZ7oMh/IhNPAl2MGXbELAiOrpqxvZjcB1i RUg9Lt8GUBeFZtjQOLE1E6WYQDVLXaREnrBublJCSKPSgJdXC/Gq2ZXCORyk9a6ZZr sVLI6I7SbP6yz9xYoEizn1+qBxD6T60nNh5LI77E= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/114172] [13 only] RISC-V: ICE with riscv rvv VSETVL intrinsic Date: Wed, 24 Apr 2024 13:13:19 +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: 13.2.0 X-Bugzilla-Keywords: ice-on-valid-code 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=3D114172 --- Comment #3 from GCC Commits --- The releases/gcc-13 branch has been updated by Kito Cheng : https://gcc.gnu.org/g:67e50daa5bd05f16d98c2dc651af2d6fa8335186 commit r13-8644-g67e50daa5bd05f16d98c2dc651af2d6fa8335186 Author: Kito Cheng Date: Wed Apr 24 16:54:44 2024 +0800 RISC-V: Fix recursive vsetvli checking [PR114172] extract_single_source will recursive checking the sources to make sure if it's single source, however it may cause infinite recursive when the source is come from itself, so it should just skip first source to prevent that. NOTE: This logic has existing on trunk/GCC 14, but it included in a big vsetvli improvement patch, which is not backport to GCC 13. ``` void saxpy_rvv_m8(float *y, long vl) { for (;;) { vl =3D __riscv_vsetvl_e32m8(vl); //ICE vfloat32m8_t y_vec; __riscv_vse32_v_f32m8(y, y_vec, vl); } } ``` gcc/ChangeLog: PR target/114172 * config/riscv/riscv-vsetvl.cc (extract_single_source): Skip first set. gcc/testsuite/ChangeLog: PR target/114172 * gcc.target/riscv/rvv/vsetvl/pr114172.c: New.=