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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |krebbel at gcc dot gnu.org,
                   |                            |law at gcc dot gnu.org,
                   |                            |rsandifo at gcc dot gnu.org,
                   |                            |segher at gcc dot gnu.org

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Wonder how many important targets provide double-word shift patterns vs. ones
which expand it through generic code.
aarch64 looks quite small:
foo:
        extr    x1, x1, x0, 5
        asr     x1, x1, 59
        ret
powerpc probably could be improved:
foo:
        srwi 9,4,5
        mr 10,9
        rlwimi 4,9,5,0,31-5
        rlwimi 10,3,27,0,31-27
        srawi 3,10,27
        blr
ditto s390x:
foo:
        lg      %r1,0(%r3)
        lg      %r3,8(%r3)
        srlg    %r5,%r3,5
        lghi    %r0,31
        sllg    %r1,%r1,59
        ogr     %r1,%r5
        ngr     %r3,%r0
        sllg    %r5,%r5,5
        srag    %r1,%r1,59
        ogr     %r3,%r5
        stg     %r3,8(%r2)
        stg     %r1,0(%r2)
        br      %r14
ditto riscv64:
foo:
        srli    a5,a0,5
        slli    a1,a1,59
        or      a1,a5,a1
        slli    a5,a1,5
        andi    a0,a0,31
        or      a0,a5,a0
        srai    a1,a1,59
        ret

Reply via email to