This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/44976] reductions with short variables do not get vectorized
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Jul 2010 14:48:33 -0000
- Subject: [Bug tree-optimization/44976] reductions with short variables do not get vectorized
- References: <bug-44976-19239@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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