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

Segher Boessenkool <segher at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> ---
It's not fixed.  On trunk we get:

===
flush_dcache_range:
        rlwinm 3,3,0,0,27
        addi 4,4,15
        subf 4,3,4
        srwi. 9,4,4
        beq 0,.L1
        slwi 9,9,4
        addi 9,9,-16
        srwi 9,9,4
        addi 9,9,1
        mtctr 9
        .p2align 4,,15
.L3:
        dcbf 0, 3
        addi 3,3,16
        bdnz .L3
        sync
.L1:
        blr
===

(-m32, edited a bit).

The slwi/addi/srwi/addi is unnecessary.

Reply via email to