http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56309
--- Comment #15 from Uros Bizjak <ubizjak at gmail dot com> 2013-02-14 17:34:15 UTC --- (In reply to comment #13) > $ g++ --version > g++ (GCC) 4.7.2 ... > $ g++ -O3 -std=c++11 by-val-O3.ii ; ./a.out > Took 14.31 seconds total. > $ g++ -O3 -std=c++11 by-val-O3.ii -fvect-cost-model ; ./a.out > Took 14.31 seconds total. > $ g++ -O3 -std=c++11 by-val-O3.ii -fno-tree-vectorize ; ./a.out > Took 10.25 seconds total. This is red herring, see PR53346c11: --q-- You are right. -ftree-vectorize implies -ftree-loop-if-convert and this option makes all the difference! --/q-- Please try wiht -ftree-vectorize -fno-tree-loop-if-convert.