https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108862
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- With -fno-unroll-loops added we get foo: .LFB0: .cfi_startproc cmpwi 0,3,0 ble 0,.L4 mtctr 3 addi 10,4,-8 addi 5,5,8 li 3,0 .p2align 4,,15 .L3: ldu 4,8(10) ldu 9,-8(5) maddld 3,4,9,3 maddhdu 4,4,9,3 bdnz .L3 blr .p2align 4,,15 .L4: li 3,0 li 4,0 blr (which still fails, just is easier to read). The destinations of the four inner loop insns were 131, 132, 135, 136, and IRA decided for those Disposition: 18:r131 l0 4 17:r132 l0 9 1:r135 l0 3 0:r136 l0 4 and that cannot fly.