do {             /* count > 0 と仮定 */
 *to = *from++;       /* to がインクリメントされていないことに注意 */
} while (--count > 0);

これを、下のようにして最適化か。こう書いてコンパイル通る
ことすら知らなかったわw

しかし昔memcpy実装させられたとき、条件判定へらす努力したり
ワード単位でコピーしたりしたんだが、標準で用意されて
いたARMのlibcに速度が遠くおよばなくて愕然とした記憶があるなw

switch (count % 8)  /* count > 0 とする */
{
 case 0:     do { *to = *from++;
 case 7:        *to = *from++;
 case 6:        *to = *from++;
 case 5:        *to = *from++;
 case 4:        *to = *from++;
 case 3:        *to = *from++;
 case 2:        *to = *from++;
 case 1:        *to = *from++;
         } while ((count -= 8) > 0);
}