------- Comment #18 from rguenth at gcc dot gnu dot org 2007-07-20 16:35 ------- I mean
<cite> Current gcc finally produces: *p = (a + 1) * 4; *(p + 4) = (a + 2) * 4; *(p + 8) = (a + 3) * 4; movl 8(%esp), %eax movl 4(%esp), %ecx leal 4(,%eax,4), %edx movl %edx, (%ecx) leal 8(,%eax,4), %edx leal 12(,%eax,4), %eax movl %edx, 4(%ecx) movl %eax, 8(%ecx) ret This has now the largest code size of all versions. This new canonical form IMHO clearly conflicts with what is expected at RTL level, so I don't understand why it's so important to use this one. Could you maybe explain the reason behind this choice? </cite> which suggests that current trunk is worse with the patch. Or am I confused and you are happy with the code generated by current trunk for the original testcase? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32698