This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/44976] reductions with short variables do not get vectorized



------- Comment #2 from rguenth at gcc dot gnu dot org  2010-07-20 14:48 -------
t.c:6: note: reduction: not commutative/associative: sum_13 = (short int)
D.2726_12;

this is because

  sum = (short)((int)sum + (int)a[i]);

cannot be folded to

  sum = sum + a[i];

as that exposes new undefined overflow.  Instead we fold it to

  sum = (short)((unsigned short)sum + (unsigned short)a[i]);

which the pattern detection does not handle explicitly.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
  GCC build triplet|elf                         |
   GCC host triplet|linux                       |
 GCC target triplet|ia64                        |
           Keywords|                            |missed-optimization
   Last reconfirmed|0000-00-00 00:00:00         |2010-07-20 14:48:32
               date|                            |
            Summary|short variables do not get  |reductions with short
                   |vectorized                  |variables do not get
                   |                            |vectorized


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]