[Bug regression/26128] New: Regression vs 4.1.0cvs20051015 - Trivial operation not vectorized
hurbain at cri dot ensmp dot fr
gcc-bugzilla@gcc.gnu.org
Mon Feb 6 14:55:00 GMT 2006
char a[16] __attribute__((aligned)) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16};
char b[16] __attribute__((aligned)) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16};
char c[16] __attribute__((aligned));
int i;
for(i = 0; i<16; i++)
{
c[i] = a[i] + b[i];
}
for(i = 0; i<16; i++)
{
printf("%i ", c[i]);
}
This code is not vectorized anymore in GCC 4.2.0 (svn checkout on Feb, 06
2006). The vectorizer tells that :
paddb4bugreport.c:14: note: vect_is_simple_use: operand (unsigned char)
D.1872_47
paddb4bugreport.c:14: note: not ssa-name.
paddb4bugreport.c:14: note: use not simple.
paddb4bugreport.c:14: note: not vectorized: relevant stmt not supported:
D.1873_48 = (unsigned char) D.1872_47
paddb4bugreport.c:14: note: bad operation or unsupported loop
bound.(get_loop_exit_condition
if (ivtmp.52_2 != 0) goto <L13>; else goto <L5>;)
Seems to be a problem before the autovectorizer as the (unsigned char) cast
should not happen IMHO.
--
Summary: Regression vs 4.1.0cvs20051015 - Trivial operation not
vectorized
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hurbain at cri dot ensmp dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26128
More information about the Gcc-bugs
mailing list