while I'd say its a compiler issue this code optimizes worse than jaime's with gcc, though it probably makes no real difference in performance (just one extra pipelineable mov)