This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/22184] New: tree vectorizer depends on context
- From: "micis at gmx dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Jun 2005 15:13:18 -0000
- Subject: [Bug tree-optimization/22184] New: tree vectorizer depends on context
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Consider the following short program. If it is compiled MyFunc1 is vectorized
but MyFunc2 is not. Both fuctions differ only in the empty loop, which is a
comment in MyMunc2. My compiler is the latest gcc41 snapshot (20050618)
Michael Cieslinski
double MyFunc1 (int size)
{
int len = size + 1;
double Data[16] = {0};
// for (int i=3; i<len; i++) {} // empty loop
for (int i=0; i<len; i++)
Data[i] = Data[i]>=0 ? Data[i] : -Data[i];
return Data[1];
}
double MyFunc2 (int size)
{
int len = size + 1;
double Data[16] = {0};
for (int i=3; i<len; i++) {} // empty loop
for (int i=0; i<len; i++)
Data[i] = Data[i]>=0 ? Data[i] : -Data[i];
return Data[1];
}
Output from gcc:
g++41c -O2 -ftree-vectorize -c vec-test.cpp -ftree-vectorizer-verbose=5
vec-test.cpp:7: note: accesses have the same alignment.
vec-test.cpp:7: note: LOOP VECTORIZED.
vec-test.cpp:1: note: vectorized 1 loops in function.
vec-test.cpp:17: note: not vectorized: unsupported data-type
vec-test.cpp:19: note: not vectorized: number of iterations cannot be computed.
vec-test.cpp:13: note: vectorized 0 loops in function.
g++41c -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.1-20050618/configure --prefix=/usr/local/gcc41c --
program-suffix=41c --with-arch=opteron --enable-languages=c,c++ --enable-
checking
Thread model: posix
gcc version 4.1.0 20050618 (experimental)
--
Summary: tree vectorizer depends on context
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: micis at gmx dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22184