http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52112
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-02-03 17:44:36 UTC --- <bb 10>: vect_var_.146 = MEM[base: &A, index: ivtmp.196]; MEM[base: &B, index: ivtmp.196] = [mult_expr] vect_var_.146 * vect_var_.146; ivtmp.196 = ivtmp.196 + 16; if (ivtmp.196 != 800) goto <bb 10>; else goto <bb 11>; Is what we get for 4.4 which is obviously vectorized.