------- Comment #5 from krebbel at gcc dot gnu dot org 2008-02-20 12:59 ------- The assembler code is broken. In case of an overlap mvc copies one byte at a time and continuing with the next after the first has been written. That's how we use mvc for memsets.
The mvcs are merged by the dead store elimination pass. I'll try to understand were it slips through the tests in dse and/or cse. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35258