public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rguenther at suse dot de" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug tree-optimization/110935] Missed BB reduction vectorization because of missed eliding of a permute
Date: Tue, 12 Sep 2023 07:43:40 +0000 [thread overview]
Message-ID: <bug-110935-4-HS6z8Rih1Q@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-110935-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110935
--- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 5 Sep 2023, rsandifo at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110935
>
> --- Comment #2 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
> If we were going to do this in vect_optimize_slp_pass, I think
> we'd need a node for the reduction in the pass's internal graph.
> We could then record that all input layouts have zero cost.
>
> What's the reason for not having an SLP node for the reduction?
> Isn't it a similar kind of sink to a store or constructor?
The difference is that the reduction reduces the number of incoming
lanes (to one). For a loop SLP reduction chain we also do not have a SLP
node for that part (because it's in the epilog). For a loop SLP
reduction there isn't a reduction operation. For both cases we manage
to elide permutes into them - I wondered how we do that in the new code
and if we can leverage that for the BB reduction case.
I did think of representing the reduction op but wondered how to do
that in the most sensible way. It's kind-of a permute node with
an associated operation. Or, if we use .REDUC_*_SCAL, a regular
node with a scalar vectype? I'm not sure we want to overload
the VEC_PERM_EXPR SLP node further. But for example with x86
we have a SAD operation with 4 incoming lanes in op0, 16 incoming
lanes in op1 and 4 outgoing lanes.
That said, currently the reduction node is implicit in the
instance root stmt and can be identified by the SLP instance kind only.
next prev parent reply other threads:[~2023-09-12 7:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-07 13:28 [Bug tree-optimization/110935] New: " rguenth at gcc dot gnu.org
2023-08-07 13:30 ` [Bug tree-optimization/110935] " rguenth at gcc dot gnu.org
2023-09-05 9:01 ` rsandifo at gcc dot gnu.org
2023-09-12 7:43 ` rguenther at suse dot de [this message]
2024-01-21 2:00 ` pinskia at gcc dot gnu.org
2024-04-15 13:33 ` 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-110935-4-HS6z8Rih1Q@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).