[Bug tree-optimization/66917] [4.9/5/6 regression] ARM: NEON: memcpy compiles to vld1 and vst1 with incorrect alignment

2015-07-29 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917 Ramana Radhakrishnan ramana at gcc dot gnu.org changed: What|Removed |Added Keywords|

[Bug tree-optimization/66917] [4.9/5/6 regression] ARM: NEON: memcpy compiles to vld1 and vst1 with incorrect alignment

2015-07-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added CC||rguenth at

[Bug tree-optimization/66917] [4.9/5/6 regression] ARM: NEON: memcpy compiles to vld1 and vst1 with incorrect alignment

2015-07-29 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917 --- Comment #7 from ktkachov at gcc dot gnu.org --- (In reply to Richard Biener from comment #6) Probably because you access a.u/b.u which is uint64_t and thus the union is laid out as having 8 byte alignment? How do the original GENERIC

[Bug tree-optimization/66917] [4.9/5/6 regression] ARM: NEON: memcpy compiles to vld1 and vst1 with incorrect alignment

2015-07-29 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917 --- Comment #8 from ktkachov at gcc dot gnu.org --- The 007t.lower one looks like: try { MEM[(char * {ref-all})a] = MEM[(char * {ref-all})ap]; MEM[(char * {ref-all})b] = MEM[(char * {ref-all})bp]; D.5587 = a.u[0];

[Bug tree-optimization/66917] [4.9/5/6 regression] ARM: NEON: memcpy compiles to vld1 and vst1 with incorrect alignment

2015-07-29 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66917 --- Comment #5 from ktkachov at gcc dot gnu.org --- The slp2 dump at tree level says about the ap pointer: base_address: ap_2(D) offset from base address: 0 constant offset from base address: 0 step: 0