On 02/05/2016 01:10 PM, Richard Biener wrote:
It fails

FAIL: gcc.target/i386/addr-sel-1.c scan-assembler b\\\\+1

on i?86 (or x86_64 -m32) though, generating

f:
.LFB0:
         .cfi_startproc
         movl    4(%esp), %eax
         leal    1(%eax), %edx
         movsbl  a+1(%eax), %eax
         movsbl  b(%edx), %edx
         addl    %edx, %eax
         ret

Well, it looks like the first movsbl load clobbers the potentially better base register, so trivial propagation doesn't work.

It might be another case where allowing 2->2 in combine would help. Or enabling -frename-registers and rerunning reload_combine afterwards.


Bernd

Reply via email to