------- Comment #6 from steven at gcc dot gnu dot org 2010-07-18 17:29 ------- Smaller hand-changed assembly without new bundle (left aborts, right does not):
.global f1# .global f1# .type f1#, @function .type f1#, @function .proc f1# .proc f1# f1: f1: .prologue .prologue .body .body .mmi .mmi mov r15 = r12 mov r15 = r12 nop 0 nop 0 mov r14 = r12 mov r14 = r12 ;; ;; .mmi .mmi st8 [r15] = r32, 8 st8 [r15] = r32, 8 ;; ;; st8 [r15] = r33, -4 st8 [r15] = r33, -4 nop 0 nop 0 .mii | ;; > .mmb > st4 [r15] = r34 > ;; ld8 r8 = [r14], 8 ld8 r8 = [r14], 8 nop 0 < ;; ;; nop 0 nop 0 .mmb .mmb ld8 r9 = [r14] ld8 r9 = [r14] st4 [r15] = r34 | nop 0 br.ret.sptk.many b0 br.ret.sptk.many b0 .endp f1# .endp f1# The only thing that seems to matter, is that "st4 [r15] = r34" comes before "ld8 r9 = [r14]". -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43494