public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/98453] New: aarch64: Missed opportunity for STP for vec_duplicate
@ 2020-12-27 12:24 ktkachov at gcc dot gnu.org
2021-09-05 0:07 ` [Bug target/98453] " pinskia at gcc dot gnu.org
2023-06-25 13:23 ` pinskia at gcc dot gnu.org
0 siblings, 2 replies; 3+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2020-12-27 12:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98453
Bug ID: 98453
Summary: aarch64: Missed opportunity for STP for vec_duplicate
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
typedef long long v2di __attribute__((vector_size (16)));
typedef int v2si __attribute__((vector_size (8)));
void
foo (v2di *x, long long a)
{
v2di tmp = {a, a};
*x = tmp;
}
void
foo2 (v2si *x, int a)
{
v2si tmp = {a, a};
*x = tmp;
}
at -O2 on aarch64 gives:
foo:
dup v0.2d, x1
str q0, [x0]
ret
foo2:
dup v0.2s, w1
str d0, [x0]
ret
These could just be: stp x1, x1, [x0] and stp w1, w1, [x0]
Combine already tries and fails to match:
(set (mem:V2DI (reg:DI 97) [1 *x_4(D)+0 S16 A128])
(vec_duplicate:V2DI (reg:DI 98)))
and
(set (mem:V2SI (reg:DI 97) [2 *x_4(D)+0 S8 A64])
(vec_duplicate:V2SI (reg:SI 98)))
So can be fixed by some new patterns in aarch64-simd.md.
We should make sure to handle the other 32-bit and 64-bit modes as well
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug target/98453] aarch64: Missed opportunity for STP for vec_duplicate
2020-12-27 12:24 [Bug target/98453] New: aarch64: Missed opportunity for STP for vec_duplicate ktkachov at gcc dot gnu.org
@ 2021-09-05 0:07 ` pinskia at gcc dot gnu.org
2023-06-25 13:23 ` pinskia at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-09-05 0:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98453
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-09-05
Severity|normal |enhancement
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.
Plus these functions too:
typedef double v2df __attribute__((vector_size (16)));
typedef float v2sf __attribute__((vector_size (8)));
void
food (v2df *x, double a)
{
v2df tmp = {a, a};
*x = tmp;
}
void
foof (v2sf *x, float a)
{
v2sf tmp = {a, a};
*x = tmp;
}
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug target/98453] aarch64: Missed opportunity for STP for vec_duplicate
2020-12-27 12:24 [Bug target/98453] New: aarch64: Missed opportunity for STP for vec_duplicate ktkachov at gcc dot gnu.org
2021-09-05 0:07 ` [Bug target/98453] " pinskia at gcc dot gnu.org
@ 2023-06-25 13:23 ` pinskia at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-06-25 13:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98453
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |14.0
Resolution|--- |FIXED
Status|NEW |RESOLVED
Known to fail| |12.1.0
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Fixed for GCC 14 by r14-215-g85279b0bddc1c5a7d181e216 .
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-06-25 13:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-27 12:24 [Bug target/98453] New: aarch64: Missed opportunity for STP for vec_duplicate ktkachov at gcc dot gnu.org
2021-09-05 0:07 ` [Bug target/98453] " pinskia at gcc dot gnu.org
2023-06-25 13:23 ` pinskia at gcc dot gnu.org
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).