------- Comment #29 from pthaugen at gcc dot gnu dot org 2007-10-23 20:29 ------- Found another example on PowerPC in the same benchmark that is not fixed by the checked in patches. Compiled with -m32 -O2. From the loop in procedure FLUXI:
revision 126325: .L47: lfd 0,0(9) #* ivtmp.277, tmp346 lfd 13,-8(9) #, tmp347 add 9,9,0 # ivtmp.277, ivtmp.277, ivtmp.309 fsub 0,0,13 # tmp345, tmp346, tmp347 fmul 0,0,12 # tmp348, tmp345, dtvol.23 fneg 0,0 # tmp349, tmp348 stfd 0,0(11) #* ivtmp.306, tmp349 add 11,11,10 # ivtmp.306, ivtmp.306, ivtmp.280 bdnz .L47 # revision 126326 (and current mainline): .L83: lwz 0,48(7) # <variable>.stride, <variable>.stride lfd 0,0(10) #* ivtmp.277, tmp416 lfd 13,-8(10) #, tmp417 lfd 12,0(5) # dtvol, dtvol add 10,10,6 # ivtmp.277, ivtmp.277, ivtmp.306 mullw 0,8,0 # tmp409, l, <variable>.stride fsub 0,0,13 # tmp415, tmp416, tmp417 lwz 9,4(7) # du.offset, du.offset lwz 11,0(7) # du.data, du.data fmul 0,0,12 # tmp420, tmp415, dtvol fneg 0,0 # tmp422, tmp420 add 0,0,9 # tmp412, tmp409, du.offset addi 8,8,1 # l, l, slwi 0,0,3 # tmp413, tmp412, stfdx 0,11,0 #, tmp422 bdnz .L83 # -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921