------- Comment #13 from ubizjak at gmail dot com  2009-02-12 13:59 -------
GCC: (GNU) 4.4.0 20090129 (experimental) [trunk revision 143750]:

foo:
        movl    4(%rdi), %eax   #, s
.L2:
        movl    %eax, %ecx      # s, s.29
        addl    (%rsi), %ecx    #* d, s.29
        addq    $4, %rsi        #, d
        movl    %eax, %r8d      # s, s.30
        cmpl    %edx, %ecx      # g, s
        movl    %ecx, %eax      # s.29, s
        jl      .L2     #,
        movl    %r8d, (%rdi)    # s.30,* v
        ret

GCC: (GNU) 4.3.4 20090211 (prerelease) [gcc-4_3-branch revision 144096]:

foo:
        movl    4(%rdi), %ecx   #, s
.L2:
        movl    %ecx, %eax      # s, s.19
        addl    (%rsi), %eax    #* d, s.19
        addq    $4, %rsi        #, d
        movl    %ecx, %r8d      # s, s.20
        cmpl    %edx, %eax      # g, s
        movl    %eax, %ecx      # s.19, s
        jl      .L2     #,
        movl    %r8d, (%rdi)    # s.20,* v
        ret

Fixed for 4.3 and 4.4 branch.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|3.4.0                       |3.4.0 4.3.4 4.4.0
            Summary|[4.2/4.3/4.4 Regression]    |[4.2 Regression] jump to
                   |jump to middle of loop on   |middle of loop on entry with
                   |entry with using old version|using old version of an
                   |of an variable              |variable


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27986

Reply via email to