http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60172
--- Comment #8 from Joey Ye <joey.ye at arm dot com> --- Here is tree dump and diff of 133t.forwprop4 <bb 2>: Int_Index_4 = Int_1_Par_Val_3(D) + 5; Int_Loc.0_5 = (unsigned int) Int_Index_4; _6 = Int_Loc.0_5 * 4; _8 = Arr_1_Par_Ref_7(D) + _6; *_8 = Int_2_Par_Val_10(D); _13 = _6 + 4; _14 = Arr_1_Par_Ref_7(D) + _13; *_14 = Int_2_Par_Val_10(D); _17 = _6 + 60; _18 = Arr_1_Par_Ref_7(D) + _17; *_18 = Int_Index_4; pretmp_20 = Int_Loc.0_5 * 100; pretmp_2 = Arr_2_Par_Ref_22(D) + pretmp_20; _42 = (sizetype) Int_1_Par_Val_3(D); _41 = _42 * 4; - _40 = pretmp_2 + _41; // good + _12 = _41 + pretmp_20; // bad + _40 = Arr_2_Par_Ref_22(D) + _12; // bad MEM[(int[25] *)_40 + 20B] = Int_Index_4; MEM[(int[25] *)_40 + 24B] = Int_Index_4; _29 = MEM[(int[25] *)_40 + 16B]; _30 = _29 + 1; MEM[(int[25] *)_40 + 16B] = _30; _32 = pretmp_20 + 1000; _33 = Arr_2_Par_Ref_22(D) + _32; _34 = *_8; - _51 = _33 + _41; // good + _16 = _41 + _32; // bad + _51 = Arr_2_Par_Ref_22(D) + _16; // bad MEM[(int[25] *)_51 + 20B] = _34; Int_Glob = 5; return;