public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "avieira 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 11:49:34 +0000	[thread overview]
Message-ID: <bug-114801-4-4akyfoge0C@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

avieira at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |avieira at gcc dot gnu.org

--- Comment #17 from avieira at gcc dot gnu.org ---
Before anything, it might be worth to redefine the testcase to something where
the predicate would have an effect in the result, for instance:

#include <arm_mve.h>
uint32x4_t test_9() {
  return vdupq_m_n_u32(vdupq_n_u32(0xffffffff), 0, 0xcccc);
}

Next, it might be worth pointing out that the ISA does specify what happens
when a predicate mask does not have all bits set for a specific element.
Basically, the predicate mask operates on a per byte basis. Hence 16-bits in
the mask, controlling all 16-bytes in a vector register.

So for the above, the expected output would be {0xFFFF0000, 0xFFFF0000,
0xFFFF0000, 0xFFFF0000}.

Having said that I can see how you'd interpret the ACLE specs as defining such
a mask to be 'UB', but I believe the intent was to make clear that all bits
needed to be set if you wanted to true-predicate the full {32,16}-bit element.
This is the most common use, I can't imagine many users will be manipulating
the mask in such ways.

clang seems to follow this behavior generating an assembly sequence that leads
to the expected output, though they use vpsel probably due to some
canonicalization. And I'd prefer to be consistent with clang here.

  parent reply	other threads:[~2024-04-29 11:49 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 [this message]
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
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-4akyfoge0C@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: link
Be 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).