------- Comment #47 from pthaugen at gcc dot gnu dot org  2008-05-01 19:26 
-------
Created an attachment (id=15557)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15557&action=view)
Testcase

Found some more cases, which are contributing to the missing 25%. Looks like
similar code, but obviously something different about it since it's not getting
caught with the latest patch.  Compiled with -O2 -m64.

>From first nested loop in FLUXI():

            DO I = I1,I2
               QS(I) = UAV(I,J,K) * XAREA
            END DO


Base:

.L185:
        ld 10,168(1)     # pretmp.1065,
        ld 4,424(1)      # D.1331,
        sldi 11,9,3      # tmp667, i,
        mulld 0,10,9     # tmp669,, i
        add 0,0,25       # tmp670, tmp669, ivtmp.1093
        addi 9,9,1       # tmp675, i,
        sldi 0,0,3       # tmp671, tmp670,
        lfdx 0,4,0       #, tmp673
        extsw 9,9        # i.1073, tmp675
        fmul 0,0,28      # tmp674, tmp673, xarea.63
        stfdx 0,26,11    #, tmp674
        bdnz .L185       #


With --param max-aliased-vops=10000:

.L185:
        lfd 0,0(11)      #* ivtmp.886, tmp667
        add 11,11,18     # ivtmp.886, ivtmp.886, D.3744
        fmul 0,0,27      # tmp668, tmp667, xarea.63
        stfdx 0,31,9     #* ivtmp.889, tmp668
        addi 9,9,8       # ivtmp.889, ivtmp.889,
        cmpd 7,9,29      # tmp787, tmp673, ivtmp.889
        bne 7,.L185      #


-- 


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

Reply via email to