------- Comment #1 from rguenth at gcc dot gnu dot org 2009-04-20 09:26 -------
The vectorizer creates
vect_var_.128_46 = M*vect_p.123_44{misalignment: 0};
vect_var_.129_47 = [vec_unpack_lo_expr] vect_var_.128_46;
vect_var_.129_48 = [vec_unpack_hi_expr] vect_var_.128_46;
vect_var_.135_53 = M*vect_p.130_51{misalignment: 0};
vect_var_.136_54 = [vec_unpack_lo_expr] vect_var_.135_53;
vect_var_.136_55 = [vec_unpack_hi_expr] vect_var_.135_53;
vect_var_.137_56 = vect_var_.136_54 * vect_var_.129_47;
vect_var_.137_57 = vect_var_.136_55 * vect_var_.129_48;
vect_var_.138_59 = vect_var_.137_56 + vect_var_.138_58;
vect_var_.138_60 = vect_var_.137_57 + vect_var_.138_59;
v1_14 = v1_26 + 4;
but the widening unpacking results in absymal code generated. Where are
all the shifts coming from?
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |uros at gcc dot gnu dot org,
| |irar at il dot ibm dot com
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |missed-optimization
Last reconfirmed|0000-00-00 00:00:00 |2009-04-20 09:26:17
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39821