https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92980
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- test.c.033.fre1 foo (unsigned int * restrict src1, int i, int k, int n) { int sum; int j; long unsigned int _1; long unsigned int _2; unsigned int * _3; unsigned int _4; sizetype _7; unsigned int * _8; unsigned int _9; unsigned int _11; long unsigned int _12; long unsigned int _13; sizetype _14; unsigned int * _15; unsigned int _16; unsigned int _18; int _31; <bb 2> : j_23 = k_21(D) + n_22(D); _1 = (long unsigned int) j_23; _2 = _1 * 4; _3 = src1_24(D) + _2; _4 = *_3; sum_26 = (int) _4; _7 = _2 + 18446744073709551612; _8 = src1_24(D) + _7; _9 = *_8; _11 = _4 + _9; sum_27 = (int) _11; if (k_21(D) >= i_28(D)) goto <bb 3>; [INV] else goto <bb 4>; [INV] <bb 3> : j_29 = j_23 + 2; _12 = (long unsigned int) j_29; _13 = _12 * 4; _14 = _13 + 18446744073709551604; --- it shoule be simplified to _7 _15 = src1_24(D) + _14; _16 = *_15; _18 = _11 + _16; sum_30 = (int) _18; <bb 4> : # j_19 = PHI <j_23(2), j_29(3)> # sum_20 = PHI <sum_27(2), sum_30(3)> _31 = j_19 + sum_20; return _31; }