------- Comment #12 from dave at hiauly1 dot hia dot nrc dot ca 2005-12-18 18:01 ------- Subject: Re: [4.1/4.2 regression] FAIL: gcc.c-torture/execute/20040709-1.c execution, -Os
> Unable to reproduce with GCC 4.1 without further feedback. Apparently already > fixed or made latent on GCC 4.2. The dumps in comment #1 could use some > comment so that people reading this bug report don't have to analyze those for > themselves. I tried to reproduce it with gcc version 4.1.0 20051212 (prerelease) and the incorrect code is no longer generated. The loop now looks like: L$0318: .CALL bl myrnd,%r2 nop ldo 8(%r7),%r19 stbs,ma %r28,1(%r6) comb,<> %r19,%r6,L$0318 addil LR'sB-$global$,%r27 ldw -8(%r6),%r28 Compare with the code shown in the initial report. The "ldw" isn't in the delay slot of the "comb", so it doesn't get executed in the loop every iteration. The loop is tricky in that it exits with r6 aligned to a four byte boundary. I don't know if the bug has been fixed or is just latent. I would ignore the dumps in comment #1. This is probably a reorg issue. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23954