https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67288
--- Comment #23 from Segher Boessenkool <segher at gcc dot gnu.org> --- -m32 is required here. With -fno-unroll-loops -m32 you now get flush_dcache_range: rlwinm 3,3,0,0,27 addi 4,4,15 subf 4,3,4 srwi. 4,4,4 beqlr 0 mtctr 4 .p2align 4,,15 .L3: dcbf 0, 3 addi 3,3,16 bdnz .L3 sync blr So yup, it has been fixed. Thanks!