------- Additional Comments From pinskia at gcc dot gnu dot org 2004-11-01 02:36 ------- The corresponding asm for the loop: with -fno-ivopts: L11: ld r11,8(r10) srd r2,r4,r7 addi r0,r7,-6 rldicl r2,r2,0,58 rldicl r7,r0,0,32 ld r9,0(r11) sldi r6,r2,3 addi r11,r10,24 stw r2,16(r11) addi r8,r9,8 std r9,24(r10) mr r10,r11 add r0,r8,r6 std r0,8(r11) bdnz L8
without: L11: add r11,r8,r30 mulli r0,r3,-6 <--- this is really not a good idea inside the loop add r10,r5,r8 addi r3,r3,1 ld r2,8(r11) addi r7,r11,24 add r0,r0,r12 ld r9,0(r2) srd r0,r4,r0 rldicl r0,r0,0,58 addi r6,r9,8 sldi r11,r0,3 stdx r9,r8,r5 stw r0,16(r10) addi r8,r8,24 add r2,r6,r11 std r2,8(r10 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18241