------- Comment #1 from pinskia at gcc dot gnu dot org  2006-11-30 18:38 -------
Here is the loop that is generated:
.L4:
        flds    (%ebx,%edx,4)
        leal    1(%edx), %eax
        fmul    %st(1), %st
        fdivs   (%ecx,%edx,4)
        fsqrt
        fstps   (%esi,%edx,4)
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        leal    2(%edx), %eax
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        leal    3(%edx), %eax
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        leal    4(%edx), %eax
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        leal    5(%edx), %eax
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        leal    6(%edx), %eax
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        leal    7(%edx), %eax
        addl    $8, %edx
        cmpl    %edi, %edx
        flds    (%ebx,%eax,4)
        fmul    %st(1), %st
        fdivs   (%ecx,%eax,4)
        fsqrt
        fstps   (%esi,%eax,4)
        jne     .L4

There are some issues with leal's that should not be there but I think what ICC
does is only calculates CS[1] instead of all of CS[i].


-- 


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

Reply via email to