https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78809

Qing Zhao <qing.zhao at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |qing.zhao at oracle dot com

--- Comment #3 from Qing Zhao <qing.zhao at oracle dot com> ---
with the latest upstream GCC, we got the following assembly for the testing
case with -O2 on aarch64:

t1:
        adrp    x1, .LC0
        add     x1, x1, :lo12:.LC0
        b       strcmp

t2:
        adrp    x1, .LC0
        add     x1, x1, :lo12:.LC0
        b       strcmp


As I checked on X86, the same testing case has the following assembly with -O2:
t1:

        movq    %rdi, %rsi
        movl    $2, %ecx
        movl    $.LC0, %edi
        repz; cmpsb
        seta    %al
        setb    %dl
        subl    %edx, %eax
        movsbl  %al, %eax
        ret

t2:
        movq    %rdi, %rsi
        movl    $2, %ecx
        movl    $.LC0, %edi
        repz; cmpsb
        seta    %al
        setb    %dl
        subl    %edx, %eax
        movsbl  %al, %eax
        ret

on X86, both routines have the exact assembly and both are inlined by GCC.

Reply via email to