http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54717
--- Comment #9 from Sergey Ostanevich <sergos.gnu at gmail dot com> 2012-10-08 08:55:25 UTC --- Thanks for the reduced test, Dominique! I see that vectorized did not manage to generate MIN after the change. Also, it is looks pretty similar to what I posted at first: there was no prephitmp created for the xxtrt_[] > ival2_15 = _85 < prephitmp_266 ? ival2_10 : iva > prephitmp_237 = MIN_EXPR <_85, prephitmp_266>; ----------------------- < _86 = (integer(kind=8)) ival2_14; < _87 = _86 + -1; < _88 = *xxtrt_46(D)[_87]; < ival2_15 = _85 < _88 ? ival2_10 : ival2_14; I suspect that one of the iterator you removed - possibly VEC_iterate - made more traverse than that you created? I also double check that for the reduced test MIN did not generated and not appears in assembly. PMU measurements (Vtune) confirms that BBLOCKs missing min contributes the difference in clocks.