------- 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