[Bug middle-end/37774] [4.4 Regression] Alignment information is lost for ARRAY_REFs
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Oct 8 20:19:00 GMT 2008
------- Comment #2 from pinskia at gcc dot gnu dot org 2008-10-08 20:18 -------
Just the alignment information is lost really:
(mem/s:V16QI (plus:SI (reg/f:SI 68)
(reg:SI 63 [ ivtmp.68 ])) [4 resdst S16 A8])
Which I think is fixed via
http://gcc.gnu.org/ml/gcc-patches/2008-10/msg00325.html .
The load is needed.
If we use a pointer instead of an array we get:
L2:
pabsw (%ecx,%eax), %xmm0
movdqa %xmm0, (%edx,%eax)
addl $16, %eax
cmpl $160, %eax
jne L2
Note since __m128i has the attribute of may_alias you have to do the load of
the global pointer before the loop.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |missed-optimization
Last reconfirmed|0000-00-00 00:00:00 |2008-10-08 20:18:35
date| |
Summary|[4.4 Regression] Unnecessary|[4.4 Regression] Alignment
|load instruction in a loop |information is lost for
| |ARRAY_REFs
Target Milestone|--- |4.4.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37774
More information about the Gcc-bugs
mailing list