> Am 17.09.2018 um 19:11 schrieb Segher Boessenkool 
> <seg...@kernel.crashing.org>:
> 
> On Mon, Sep 17, 2018 at 10:50:58AM +0200, Ilya Leoshkevich wrote:
>>> Am 14.09.2018 um 23:35 schrieb Segher Boessenkool 
>>> <seg...@kernel.crashing.org>:
>>> Could you please show generated code before and after this patch?
>>> I mean generated assembler code.  What -S gives you.
>> 
>> Before:
>> 
>> foo4:
>> .LFB0:
>>      .cfi_startproc
>>      lt      %r1,0(%r2)
>>      jne     .L2
>>      lhi     %r3,1
>>      cs      %r1,%r3,0(%r2)
>> .L2:
>>      jne     .L5
>>      br      %r14
>> .L5:
>>      jg      bar
>> 
>> After:
>> 
>> foo4:
>> .LFB0:
>>      .cfi_startproc
>>      lt      %r1,0(%r2)
>>      jne     .L4
>>      lhi     %r3,1
>>      cs      %r1,%r3,0(%r2)
>>      jne     .L4
>>      br      %r14
>> .L4:
>>      jg      bar
> 
> Ah.  And a compiler of some weeks old gives
> 
> foo4:
> .LFB0:
>       .cfi_startproc
>       lhi     %r3,0
>       lhi     %r4,1
>       cs      %r3,%r4,0(%r2)
>       jne     .L4
>       br      %r14
> .L4:
>       jg      bar
> 
> so this is all caused by the recent optimisation that avoids the "cs" if
> it can.

Could you please try building with -march=z13?  I don’t see the „lt“ 
instruction in your output.  On z196+ we try to speed up the code by
jumping around the „cs“ when possible.


Reply via email to