Earlier quoted context omitted.
It's 2x slower per iteration, but much faster to invoke, and friendlier to the microarchitecture. It's not as simple as you're making it out to be. Also, using strlen() on a 4k string at all borders on malpractice.
Go have the argument with glibc then (And all the other people who use optimizations like this). "friendlier to the micro-architecture" doesn't even make sense. Check the chip timings for rep scasb. It's not friendly. We're not really discussing wether you should be using strlen on large strings or not, but even if it's used say a million times on strings of length 80 or so, you'd see an improvement worth having. Che…
You know that VC++ does implement copies with movsd/movsb, right?
Sorry, I don't read a lot of books and forums on assembly programming. Just the PRM. I'm just stuck reading/writing a lot of assembly on projects.