------- Comment #2 from bonzini at gnu dot org 2008-08-26 12:02 ------- This is missed because this:
maxIdx.1_15 = (unsigned int) maxIdx_59; D.1923_20 = maxIdx.1_15 + 1; D.1924_21 = D.1923_20 * 4; D.1925_22 = numbers_9(D) + D.1924_21; and this: maxIdx_24 = maxIdx_59 + 1; pretmp.36_86 = (unsigned int) maxIdx_24; pretmp.36_88 = pretmp.36_86 * 4; pretmp.38_90 = numbers_9(D) + pretmp.36_88; do not match. The first has the arithmetic done as unsigned, the second as signed. This could be due to array indexing lowered to POINTER_PLUS_EXPR. -- bonzini at gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, pinskia at gcc dot gnu | |dot org Summary|missed load PRE-like |missed FRE opportunity |opportunity | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37242