From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 920E33857731; Fri, 8 Mar 2024 02:43:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 920E33857731 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1709865798; bh=7wnk7/b5gSMAiKx1yf51k8OI9s4rE0M7lzLQjSJ1z88=; h=From:To:Subject:Date:In-Reply-To:References:From; b=L8+LXrcvnS+c8YHv6FJa8aFdzuwJUNQVS/t35+8bccrB1fHYcZPYQUOnBb98EpYka 1tjwoCqtvFt9t/ElSQ0nMol4tYH5iZq5B5dm6XbeaMniJdtRf81+0QNDbcjkEXp3Ai zeC/VYSTWuYfzPaB6UMagNTNw/fIZoyY9PU4W40U= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/114264] RISC-V: ICE in riscv-vector-costs.cc of gcc master branch Date: Fri, 08 Mar 2024 02:43:17 +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: 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=3D114264 --- Comment #1 from GCC Commits --- The master branch has been updated by Demin Han : https://gcc.gnu.org/g:42187c6968af9907de1f9b7563d87de739857684 commit r14-9380-g42187c6968af9907de1f9b7563d87de739857684 Author: demin.han Date: Wed Mar 6 17:34:34 2024 +0800 RISC-V: Fix ICE in riscv vector costs The following code can result in ICE: -march=3Drv64gcv --param riscv-autovec-lmul=3Ddynamic -O3 char *jpeg_difference7_input_buf; void jpeg_difference7(int *diff_buf) { unsigned width; int samp, Rb; while (--width) { Rb =3D samp =3D *jpeg_difference7_input_buf; *diff_buf++ =3D -(int)(samp + (long)Rb >> 1); } } One biggest_mode update missed in one branch and trigger assertion fail. gcc_assert (biggest_size >=3D mode_size); Tested On RV64 and no regression. PR target/114264 gcc/ChangeLog: * config/riscv/riscv-vector-costs.cc: Fix ICE gcc/testsuite/ChangeLog: * gcc.dg/vect/costmodel/riscv/rvv/pr114264.c: New test. Signed-off-by: demin.han =