以下の各ルーチンで 1GB のメモリコピーに要する時間を測定してみた。
(1) memcpy test : memcpy 関数を使用
(2) MMX test : movq を使用、ループアンロール 4 回
(3) SSE test : movaps を使用、ループアンロール 4 回
ソース、デスティネーションのアドレスは、128bytes でアラインメントしてある。

環境 : VC++ 6.0 SP5 + Processor Pack, 実行速度最適化
Athlon XP 1666MHz, AMD 761, 266MHz DDR-SDRAM 512MB, Windows XP

・src, dest それぞれ 8KB の領域、128K 回繰り返し
 memcpy test : 260ms
 MMX test : 180ms
 SSE test : 170ms
・src, dest それぞれ 64KB の領域、16K 回繰り返し
 memcpy test : 560ms
 MMX test : 461ms
 SSE test : 431ms
・src, dest それぞれ 512KB の領域、2048 回繰り返し
 memcpy test : 3455ms
 MMX test : 2764ms
 SSE test : 2744ms
・src, dest それぞれ 4MB の領域、256 回繰り返し
 memcpy test : 3435ms
 MMX test : 2794ms
 SSE test : 2754ms

少なくとも Athlon XP では、キャッシュ内においても
MMX から SSE にした場合メモリコピーは速くならないようだ。
ちなみに、GetTickCount で計ったからあまり精密な値ではない。