[Bug tree-optimization/106106] SRA scalarizes structure copies

2022-06-28 Thread rsandifo at gcc dot gnu.org via Gcc-bugs
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

[Bug tree-optimization/106106] SRA scalarizes structure copies

2022-06-28 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
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-

[Bug tree-optimization/106106] SRA scalarizes structure copies

2022-06-28 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106106 Richard Biener changed: What|Removed |Added CC||jamborm at gcc dot gnu.org,

[Bug tree-optimization/106106] SRA scalarizes structure copies

2022-06-28 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
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

[Bug tree-optimization/106106] SRA scalarizes structure copies

2022-06-28 Thread rguenth at gcc dot gnu.org via Gcc-bugs
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);