------- Comment #6 from irar at il dot ibm dot com 2007-12-11 13:24 ------- The first difference I found between with and without -fno-strict-aliasing versions of the loop in reload.c:2352 is in
with -fno-strict-aliasing (the "bad" one): (insn 414 413 415 43 ../src/reload.c:2354 (set (reg/f:SI 593 [ D.5672 ]) (mem/s/u/f/j:SI (reg:SI 361 [ ivtmp.3074 ]) [0 insn_operand_constraint S4 A8])) -1 (nil)) without -fno-strict-aliasing (the "good" one): (insn 414 413 415 43 ../src/reload.c:2354 (set (reg/f:SI 593 [ D.5672 ]) (mem/s/u/f:SI (reg:SI 361 [ ivtmp.3165 ]) [28 insn_operand_constraint S4 A8])) -1 (nil)) Since 'j' is related to alias set, I don't know if this difference gives any information on the reasons for the failure. In the assemlby the only difference I see is in the order of the stores: without -fno-strict-aliasing lwz 31,1032(1) stvx 0,7,9 stvx 1,8,9 stvx 0,31,9 with -fno-strict-aliasing stvx 0,7,9 lwz 31,1032(1) stvx 0,31,9 stvx 1,8,9 I wonder if those differences can explain the problem... Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34038