With 4 nested vec_add()'s gcc goes out of memory on my 512MB+1GBswap ppc box. With 3 adds it consumes about 150MB of memory and eventually succeeds. The preprocessor expands the y=... line into an exagerately huge expression. fftw3 fails to compile because of this. Tested on gcc 3.4.1 and 3.4.3, stable versions. They were configured with the following options:
./configure --prefix=/usr/ --enable-shared --enable-threads=posix --with-system- zlib --enable-__cxa_atexit --disable-checking --enable-altivec --with-cpu=7450 - -enable-languages=c,c++,objc #include <altivec.h> main() { vector float y, a, b; y = vec_add(a, vec_add(a, vec_add(a, vec_add(a, b)))); } # gcc -maltivec c.c -- Summary: Preprocessor oom with nested vector operations Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pochini at shiny dot it CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: powerpc-unknown-linux-gnu GCC host triplet: powerpc-unknown-linux-gnu GCC target triplet: powerpc-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19821