Compiler configure with --enable-e500_double The compiler generates inferior code then with gcc-4.1.
The source code is: # define N 2000000 static double a[N],c[N]; void tuned_STREAM_Copy() { int j; for (j=0; j<N; j++) c[j] = a[j]; } Attached is stream.s-4.1 and stream.s-4.2 When compiled with 4.2, the command line is: /temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2/bin/powerpc-unknown-linux-gnuspe-gcc -O3 -funroll-loops -funroll-all-loops -S stream.c -v Using built-in specs. Target: powerpc-unknown-linux-gnuspe Configured with: ../gcc-trunk/configure --prefix=/temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2 --with-local-prefix=/temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2 --enable-languages=c,c++,fortran --enable-threads --target=powerpc-unknown-linux-gnuspe --with-gmp=/proj/ppc/sysperf/sw/gnu_toolchain/gcc_support/linuxAMD64 --with-mpfr=/proj/ppc/sysperf/sw/gnu_toolchain/gcc_support/linuxAMD64 --disable-shared --disable-multilib --disable-linux-futex --enable-e500_double Thread model: posix gcc version 4.2.0 20060926 (experimental) /temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2/libexec/gcc/powerpc-unknown-linux-gnuspe/4.2.0/cc1 -quiet -v -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix stream.c -quiet -dumpbase stream.c -auxbase stream -O3 -version -funroll-loops -funroll-all-loops -o stream.s #include "..." search starts here: #include <...> search starts here: /temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2/lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/include /temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2/lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/../../../../powerpc-unknown-linux-gnuspe/sys-include /temp/gnu_toolchain/install_area/gcc-trunk/gcc-trunk-20060926-e500v2/lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/../../../../powerpc-unknown-linux-gnuspe/include End of search list. GNU C version 4.2.0 20060926 (experimental) (powerpc-unknown-linux-gnuspe) compiled by GNU C version 3.4.3. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: af19c94719eeca398c0b645020867b59 And when compiled with 4.1 the command line is: /temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2/bin/powerpc-unknown-linux-gnuspe-gcc -O3 -funroll-loops -funroll-all-loops -S stream.c -v Using built-in specs. Target: powerpc-unknown-linux-gnuspe Configured with: ../gcc-4_1-branch/configure --prefix=/temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2 --with-local-prefix=/temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2 --enable-languages=c,c++,fortran --enable-threads --target=powerpc-unknown-linux-gnuspe --with-gmp=/proj/ppc/sysperf/sw/gnu_toolchain/gcc_support/linuxAMD64 --with-mpfr=/proj/ppc/sysperf/sw/gnu_toolchain/gcc_support/linuxAMD64 --disable-shared --disable-multilib --disable-shared --disable-multilib --enable-e500_double Thread model: posix gcc version 4.1.2 20060926 (prerelease) /temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2/libexec/gcc/powerpc-unknown-linux-gnuspe/4.1.2/cc1 -quiet -v -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix stream.c -quiet -dumpbase stream.c -auxbase stream -O3 -version -funroll-loops -funroll-all-loops -o stream.s ignoring nonexistent directory "/temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2/lib/gcc/powerpc-unknown-linux-gnuspe/4.1.2/../../../../powerpc-unknown-linux-gnuspe/include" #include "..." search starts here: #include <...> search starts here: /temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2/lib/gcc/powerpc-unknown-linux-gnuspe/4.1.2/include /temp/gnu_toolchain/install_area/gcc-4_1-branch/gcc-4_1-branch-20060926-e500v2/lib/gcc/powerpc-unknown-linux-gnuspe/4.1.2/../../../../powerpc-unknown-linux-gnuspe/sys-include End of search list. GNU C version 4.1.2 20060926 (prerelease) (powerpc-unknown-linux-gnuspe) compiled by GNU C version 3.4.3. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 565818e6f0c83f0e9f8781118c7d40c3 -- Summary: [4.2.0 performance regression] Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: edmar at freescale dot com GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: powerpc-unknown-linux-gnuspe-gcc http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29256