https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36127
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So what seems to be happening is PRE is pull out the following from the loop: pretmp_250 = MEM[(float *)_2 + 4294933760B + ivtmp.159_57 * 1]; _22 = (void *) ivtmp.140_79; pretmp_253 = MEM[(float *)_22 + 4294934276B]; pretmp_257 = MEM[(float *)_22 + 4294900220B]; pretmp_259 = MEM[(float *)_22 + 4294933244B]; pretmp_261 = MEM[(float *)_22 + 4294933760B];