public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/114801] [14/15 Regression] arm: ICE in find_cached_value, at rtx-vector-builder.cc:100 with MVE intrinsics Date: Mon, 29 Apr 2024 16:07:07 +0000 [thread overview] Message-ID: <bug-114801-4-PZd7XUpMAY@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-114801-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114801 --- Comment #29 from Jakub Jelinek <jakub at gcc dot gnu.org> --- With --- a/gcc/config/arm/arm-mve-builtins.cc +++ b/gcc/config/arm/arm-mve-builtins.cc @@ -2100,7 +2100,22 @@ function_expander::add_input_operand (insn_code icode, rtx x) mode = GET_MODE (x); } else if (VALID_MVE_PRED_MODE (mode)) - x = gen_lowpart (mode, x); + { + if (CONST_INT_P (x) && (mode == V8BImode || mode == V4BImode)) + { + /* In V8BI or V4BI each element has 2 or 4 bits, if those + bits aren't all the same, gen_lowpart might ICE. */ + unsigned HOST_WIDE_INT xi = UINTVAL (x); + if ((xi & 0x5555) != ((xi >> 1) & 0x5555) + || (mode == V4BImode + && (xi & 0x3333) != ((xi >> 2) & 0x3333))) + x = force_reg (HImode, x); + } + else if (SUBREG_P (x)) + /* gen_lowpart on a SUBREG can ICE. */ + x = force_reg (GET_MODE (x), x); + x = gen_lowpart (mode, x); + } m_ops.safe_grow (m_ops.length () + 1, true); create_input_operand (&m_ops.last (), x, mode);
next prev parent reply other threads:[~2024-04-29 16:07 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-04-22 10:45 [Bug target/114801] New: [14 " acoplan at gcc dot gnu.org 2024-04-22 16:21 ` [Bug target/114801] " clyon at gcc dot gnu.org 2024-04-22 18:12 ` jakub at gcc dot gnu.org 2024-04-22 19:26 ` rguenth at gcc dot gnu.org 2024-04-26 13:14 ` [Bug target/114801] [14/15 " clyon at gcc dot gnu.org 2024-04-26 13:26 ` jakub at gcc dot gnu.org 2024-04-26 13:51 ` jakub at gcc dot gnu.org 2024-04-26 13:52 ` jakub at gcc dot gnu.org 2024-04-26 13:59 ` clyon at gcc dot gnu.org 2024-04-26 14:12 ` clyon at gcc dot gnu.org 2024-04-26 14:17 ` jakub at gcc dot gnu.org 2024-04-26 14:18 ` jakub at gcc dot gnu.org 2024-04-26 15:00 ` jakub at gcc dot gnu.org 2024-04-26 17:36 ` clyon at gcc dot gnu.org 2024-04-26 18:02 ` jakub at gcc dot gnu.org 2024-04-26 21:06 ` clyon at gcc dot gnu.org 2024-04-26 21:21 ` jakub at gcc dot gnu.org 2024-04-26 23:11 ` clyon at gcc dot gnu.org 2024-04-29 11:49 ` avieira at gcc dot gnu.org 2024-04-29 11:52 ` avieira at gcc dot gnu.org 2024-04-29 13:41 ` clyon at gcc dot gnu.org 2024-04-29 13:51 ` jakub at gcc dot gnu.org 2024-04-29 13:56 ` jakub at gcc dot gnu.org 2024-04-29 14:07 ` clyon at gcc dot gnu.org 2024-04-29 14:11 ` jakub at gcc dot gnu.org 2024-04-29 15:39 ` jakub at gcc dot gnu.org 2024-04-29 15:52 ` jakub at gcc dot gnu.org 2024-04-29 15:56 ` clyon at gcc dot gnu.org 2024-04-29 16:01 ` clyon at gcc dot gnu.org 2024-04-29 16:06 ` jakub at gcc dot gnu.org 2024-04-29 16:07 ` jakub at gcc dot gnu.org [this message] 2024-04-29 16:15 ` clyon at gcc dot gnu.org 2024-04-29 16:48 ` jakub at gcc dot gnu.org 2024-05-06 17:32 ` clyon at gcc dot gnu.org 2024-05-06 17:51 ` jakub at gcc dot gnu.org 2024-05-07 7:45 ` rguenth at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-114801-4-PZd7XUpMAY@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).