------- Comment #11 from hjl dot tools at gmail dot com 2009-02-25 19:18 ------- (In reply to comment #10) > The difference between > > > D.1254 = &a[0] + ((long unsigned int) ((unsigned int) len + 4294967295) + > > 1) > > * 2; > > (original) and > > > D.1255 = ((long unsigned int) &a + 2) + (long unsigned int) ((unsigned > > int) > > len + 4294967295) * 2; > > (current) is mostly cosmetical; the test in the testcase should be made more > robust, but other than that, there is no regression here. >
The new loop is .L3: st2 [r14] = r33, 2 ;; cmp.ne p6, p7 = r15, r14 (p6) br.cond.sptk .L3 The old loop is mov ar.lc = r15 .L3: st2 [r14] = r33, 2 ;; br.cloop.sptk.few .L3 They are quite different. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39297