------- Comment #13 from pinskia at gcc dot gnu dot org  2007-10-17 16:59 
-------
Can someone explain this may_alias behavior:

so we have in the IR:
  # VUSE <SFT.30_53>
D.892_19 = qav.data;
D.893_20 = (real8[0:] *) D.892_19;


 in may_alias we get a constraint of:
 D.892_19 = qav
D.893_20 = D.892_19



Isn't this wrong?  D. 892_19 shouldn't just point to anywhere?

Inside the loop we get:

# VUSE <imax_33, SFT.11_34, SFT.12_35, SFT.13_36, SFT.14_37, SFT.15_38,
SFT.16_39, SFT.17_40, SFT.18_41, SFT.19_42, SFT.20_43, SFT.21_44, SFT.22_45,
SFT.23_46, SFT.24_47, SFT.25_48, SFT.26_49, SFT.27_50, SFT.28_51, SFT.29_52,
SFT.30_53, SMT.35_54>
D.903_30 = (*D.893_20)[D.902_29];

Which obviously shows that the vops are wrong.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dberlin at gcc dot gnu dot
                   |                            |org
           Keywords|                            |missed-optimization


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921

Reply via email to