------- Additional Comments From rth at gcc dot gnu dot org  2005-05-18 08:21 
-------
Not alpha specific.  The tunings we have in the alpha memcpy expansion are 
correct for real copies between memory.  We want to prefer

        ldbu $1,3($17)
        ldbu $2,0($17)
        ldbu $3,1($17)
        ldbu $4,2($17)
        stb $1,3($16)
        stb $2,0($16)
        stb $3,1($16)
        stb $4,2($16)

over 

        ldq_u $5,0($17)
        ldq_u $2,3($17)
        ldq_u $3,3($16)
        ldq_u $4,0($16)
        extlh $2,$17,$2
        extll $5,$17,$5
        msklh $3,$16,$3
        mskll $4,$16,$4
        bis $5,$2,$1
        inslh $1,$16,$6
        insll $1,$16,$1
        bis $3,$6,$3
        bis $4,$1,$4
        stq_u $3,3($16)
        stq_u $4,0($16)

The trick is that we want to notice at the tree level that the memcpy is
really a killing store of a local variable, and rewrite it into the 
assignment form.  I'll give it some thought.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|alphaev68-*-linux-gnu       |


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

Reply via email to