https://bugs.kde.org/show_bug.cgi?id=386945

--- Comment #42 from Aaron Sawdey <acsaw...@linux.ibm.com> ---
I think you're on the right track with ldbrx. The only difference between the
code that gcc is generating and what is in glibc is ldbrx vs ld, here is what
is in glibc trunk:

        /* For short string up to 16 bytes, load both s1 and s2 using
           unaligned dwords and compare.  */
        ld      r8,0(r3)
        ld      r10,0(r4)
        cmpb    r12,r8,r0
        cmpb    r11,r8,r10
        orc.    r9,r12,r11
        bne     cr0,L(different_nocmpb)

The glibc code has a couple more instructions afterwards because we don't have
a count trailing zeros instruction that would make the most sense for the byte
ordering that ld gives you on little endian.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to