public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "ktkachov at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/109855] [14 Regression] ICE: in curr_insn_transform, at lra-constraints.cc:4231 unable to generate reloads for {aarch64_mlav4hi_vec_concatz_le} at -O1
Date: Mon, 22 May 2023 15:11:32 +0000	[thread overview]
Message-ID: <bug-109855-4-rJPoYSffNM@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-109855-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109855

--- Comment #6 from ktkachov at gcc dot gnu.org ---
(In reply to ktkachov from comment #5)
> (In reply to rsandifo@gcc.gnu.org from comment #4)
> > I guess the problem is that the define_subst output template has:
> > 
> >   (match_operand:<VDBL> 0)
> > 
> > which creates a new operand 0 with an empty predicate and constraint,
> > as opposed to a (match_dup 0), which would be substituted with the
> > original operand 0.  Unfortunately
> > 
> >   (match_dup:<VDBL> 0)
> > 
> > doesn't work as a way of inserting the original destination with
> > a different mode, since the :<VDBL> is ignored.  Perhaps we should
> > “fix” that.  Alternatively:
> > 
> >   (match_operand:<VDBL> 0 "register_operand" "=w")
> > 
> > should work, but probably locks us into using patterns that have one
> > alternative only.
> 
> I think this approach is the most promising and probably okay for the vast
> majority of cases we want to handle with these substs.

Interestingly, it does seem to do the right thing for multi-alternative
patterns too. For example:
(define_insn ("aarch64_cmltv4hf_vec_concatz_le")
     [
        (set (match_operand:V8HI 0 ("register_operand") ("=w,w"))
            (vec_concat:V8HI (neg:V4HI (lt:V4HI (match_operand:V4HF 1
("register_operand") ("w,w"))
                        (match_operand:V4HF 2 ("aarch64_simd_reg_or_zero")
("w,YDz"))))
                (match_operand:V4HI 3 ("aarch64_simd_or_scalar_imm_zero")
(""))))
    ] ("(!BYTES_BIG_ENDIAN) && ((TARGET_SIMD) && (TARGET_SIMD_F16INST))") ("@
  fcmgt\t%0.4h, %2.4h, %1.4h
  fcmlt\t%0.4h, %1.4h, 0")
     [
        (set_attr ("type") ("neon_fp_compare_s"))
        (set_attr ("add_vec_concat_subst_le") ("no"))
    ])

  parent reply	other threads:[~2023-05-22 15:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-14 15:30 [Bug target/109855] New: " zsojka at seznam dot cz
2023-05-14 16:49 ` [Bug target/109855] " pinskia at gcc dot gnu.org
2023-05-14 16:55 ` pinskia at gcc dot gnu.org
2023-05-22 12:41 ` ktkachov at gcc dot gnu.org
2023-05-22 13:01 ` rsandifo at gcc dot gnu.org
2023-05-22 13:09 ` rsandifo at gcc dot gnu.org
2023-05-22 13:15 ` ktkachov at gcc dot gnu.org
2023-05-22 15:11 ` ktkachov at gcc dot gnu.org [this message]
2023-05-22 15:15 ` ktkachov at gcc dot gnu.org
2023-05-23 10:09 ` cvs-commit at gcc dot gnu.org
2023-05-23 10:10 ` ktkachov 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-109855-4-rJPoYSffNM@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).