https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
--- Comment #9 from Andrew Pinski ---
(In reply to Andrew Pinski from comment #8)
> This is a dup of bug 89606.
>
> *** This bug has been marked as a duplicate of bug 89606 ***
f2 of bug 89606 comment #0 is exactly f2 of this PR.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
Andrew Pinski changed:
What|Removed |Added
Resolution|--- |DUPLICATE
Status|ASSIGNED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
Andrew Pinski changed:
What|Removed |Added
Depends on||14295
--- Comment #7 from Andrew Pinski
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
Andrew Pinski changed:
What|Removed |Added
See Also||https://gcc.gnu.org/bugzill
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
--- Comment #5 from rsandifo at gcc dot gnu.org
---
FWIW, I agree with Richard that this seems like something that
should be fixed in RTL. In some ways it's the opposite of
what lower-subreg does: whereas lower-subreg is a bit like SRA
for RTL
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
--- Comment #4 from Tamar Christina ---
>
> Is the fact that float32x2x2_t is an aggregate with a field named 'val'
> part of the neon API?
Yeah, it's mandated by ACLE
https://arm-software.github.io/acle/main/acle.html#vector-array-data-types-
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
Richard Biener changed:
What|Removed |Added
CC||jamborm at gcc dot gnu.org,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
--- Comment #2 from Tamar Christina ---
(In reply to Richard Biener from comment #1)
> SRA is eliding 'v' by doing what it does, so it essentially changes
> it looks like providing __builtin_neon_vld2_lanev2sf with float32x2x2
> argument and ret
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106
--- Comment #1 from Richard Biener ---
SRA is eliding 'v' by doing what it does, so it essentially changes
D.22939 = __builtin_aarch64_ld2v2sf (p1_2(D));
v = D.22939;
__b = v;
D.22937 = __builtin_aarch64_ld2_lanev2sf (p2_3(D), __b, 1);