Sometimes -O3 produces slower code than -O2. Sometimes it produces incorrect code.<p>I usually compile with -O2 and annotate certain functions with O3 - if it looks like vectorization will give the function a boost.