In this simple testcase (file will be attached) 1) GCC 4.1 with -O2 produces code which runs two time slower than with -O3 thus some optimizations are missing at -O2 because GCC 4.0.2 -O2 works OK and produces results on par with -O3.
2) GCC 4.1 produces slightly slower code with -O3 than GCC 4.0.2 (with -O3). P.S. -fregmove was used as an extra compiler flag. -- Summary: [4.1 Regression]: some loop optimizations no longer run at -O2 Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: regression AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: t dot artem at mailcity dot com GCC build triplet: i686-pc-linux-gnu-gcc GCC host triplet: i686-pc-linux-gnu-gcc GCC target triplet: i686-pc-linux-gnu-gcc http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26290