On Mon, Aug 3, 2015 at 7:04 AM, Uros Bizjak <ubiz...@gmail.com> wrote: > On Mon, Aug 3, 2015 at 3:02 PM, Kyrill Tkachov <kyrylo.tkac...@arm.com> wrote: >> >> On 03/08/15 13:33, Uros Bizjak wrote: >>> >>> Hello! >>> >>>> 2015-07-30 Kyrylo Tkachov <kyrylo.tkac...@arm.com> >>>> >>>> * ifcvt.c (noce_try_store_flag_constants): Make logic of the case >>>> when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more >>>> explicit. Prefer to add the flag whenever possible. >>>> (noce_process_if_block): Try noce_try_store_flag_constants before >>>> noce_try_cmove. >>>> >>>> 2015-07-30 Kyrylo Tkachov <kyrylo.tkac...@arm.com> >>>> >>>> * gcc.target/aarch64/csel_bfx_1.c: New test. >>>> * gcc.target/aarch64/csel_imms_inc_1.c: Likewise. >>> >>> This patch regressed following tests on x86_64: >>> >>> FAIL: gcc.target/i386/cmov2.c scan-assembler sbb >>> FAIL: gcc.target/i386/cmov3.c scan-assembler cmov[^3] > > The difference for cmov3.c on x86_64 is: > > cmpl %esi, %edi > movl $-5, %edx > movl $5, %eax > cmovg %edx, %eax > ret > > vs. new code: > > xorl %eax, %eax > cmpl %esi, %edi > setle %al > negl %eax > andl $10, %eax > subl $5, %eax > ret > > I'm not sure old code is really better than new. HJ, do you have any > better insight?
We are looking into it. -- H.J.