public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64
@ 2021-07-24 5:31 pinskia at gcc dot gnu.org
2021-07-24 5:31 ` [Bug target/101609] " pinskia at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-07-24 5:31 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
Bug ID: 101609
Summary: no right shift pattern for vector(2) long long on
aarch64
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Target Milestone: ---
Target: aarch64*-*-*
Take:
#define SIZE 16
typedef long long veci __attribute__((vector_size(SIZE)));
void f(veci &a, veci &b, veci &c){
c= a>>b;
}
----- CUT ----
We currently produce:
ldr q1, [x1]
ldr q0, [x0]
fmov d3, d1
dup d1, v1.d[1]
fmov d2, d0
dup d0, v0.d[1]
neg d4, d3
sshl d4, d2, d4
neg d2, d1
sshl d2, d0, d2
fmov x1, d4
fmov x0, d2
stp x1, x0, [x2]
ret
----- CUT ----
But we should be able to do:
ldr q0, [x1]
ldr q1, [x0]
neg v0.2d, v0.2d
sshl v0.2d, v1.2d, v0.2d
str q0, [x2]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
@ 2021-07-24 5:31 ` pinskia at gcc dot gnu.org
2021-07-28 15:54 ` belagod at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-07-24 5:31 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note I found this while looking into PR 56873.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
2021-07-24 5:31 ` [Bug target/101609] " pinskia at gcc dot gnu.org
@ 2021-07-28 15:54 ` belagod at gcc dot gnu.org
2021-07-29 11:17 ` belagod at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: belagod at gcc dot gnu.org @ 2021-07-28 15:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
Tejas Belagod <belagod at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2021-07-28
Ever confirmed|0 |1
CC| |belagod at gcc dot gnu.org
Status|UNCONFIRMED |NEW
--- Comment #2 from Tejas Belagod <belagod at gcc dot gnu.org> ---
As you rightly point out, vhsr<mode>3 pattern name seems to be using the wrong
iterator. With the right iterator, it does vectorize a previously unvectorized
loop with uint64 shifts, but still doesn't generate 'vector code' for the
example shown here.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
2021-07-24 5:31 ` [Bug target/101609] " pinskia at gcc dot gnu.org
2021-07-28 15:54 ` belagod at gcc dot gnu.org
@ 2021-07-29 11:17 ` belagod at gcc dot gnu.org
2021-07-29 14:12 ` belagod at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: belagod at gcc dot gnu.org @ 2021-07-29 11:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
--- Comment #3 from Tejas Belagod <belagod at gcc dot gnu.org> ---
> .. but still doesn't generate 'vector code' for the example shown here.
Actually, it does. I was looking in the wrong place.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
` (2 preceding siblings ...)
2021-07-29 11:17 ` belagod at gcc dot gnu.org
@ 2021-07-29 14:12 ` belagod at gcc dot gnu.org
2021-08-09 11:55 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: belagod at gcc dot gnu.org @ 2021-07-29 14:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
Tejas Belagod <belagod at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
` (3 preceding siblings ...)
2021-07-29 14:12 ` belagod at gcc dot gnu.org
@ 2021-08-09 11:55 ` cvs-commit at gcc dot gnu.org
2021-08-09 11:58 ` belagod at gcc dot gnu.org
2021-08-25 2:32 ` pinskia at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-08-09 11:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tejas Belagod <belagod@gcc.gnu.org>:
https://gcc.gnu.org/g:e2e0b85c1e7cb53fd720df0d09278e3d485c733e
commit r12-2817-ge2e0b85c1e7cb53fd720df0d09278e3d485c733e
Author: Tejas Belagod <tbelagod@arm.com>
Date: Mon Aug 9 11:33:30 2021 +0100
PR101609: Use the correct iterator for AArch64 vector right shift pattern
Loops containing long long shifts fail to vectorize due to the vectorizer
not being able to recognize long long right shifts. This is due to a bug
in the iterator used for the vashr and vlshr patterns in aarch64-simd.md.
2021-08-09 Tejas Belagod <tejas.belagod@arm.com>
gcc/ChangeLog
PR target/101609
* config/aarch64/aarch64-simd.md (vlshr<mode>3, vashr<mode>3): Use
the right iterator.
gcc/testsuite/ChangeLog
* gcc.target/aarch64/vect-shr-reg.c: New testcase.
* gcc.target/aarch64/vect-shr-reg-run.c: Likewise.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
` (4 preceding siblings ...)
2021-08-09 11:55 ` cvs-commit at gcc dot gnu.org
@ 2021-08-09 11:58 ` belagod at gcc dot gnu.org
2021-08-25 2:32 ` pinskia at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: belagod at gcc dot gnu.org @ 2021-08-09 11:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
Tejas Belagod <belagod at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #5 from Tejas Belagod <belagod at gcc dot gnu.org> ---
Fixed on trunk.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/101609] no right shift pattern for vector(2) long long on aarch64
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
` (5 preceding siblings ...)
2021-08-09 11:58 ` belagod at gcc dot gnu.org
@ 2021-08-25 2:32 ` pinskia at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-08-25 2:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101609
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |12.0
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-08-25 2:32 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-24 5:31 [Bug target/101609] New: no right shift pattern for vector(2) long long on aarch64 pinskia at gcc dot gnu.org
2021-07-24 5:31 ` [Bug target/101609] " pinskia at gcc dot gnu.org
2021-07-28 15:54 ` belagod at gcc dot gnu.org
2021-07-29 11:17 ` belagod at gcc dot gnu.org
2021-07-29 14:12 ` belagod at gcc dot gnu.org
2021-08-09 11:55 ` cvs-commit at gcc dot gnu.org
2021-08-09 11:58 ` belagod at gcc dot gnu.org
2021-08-25 2:32 ` 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).