So, you are getting the duplicate zeroing of eax, but not the duplicate loading of rdi. I'm using 4.8.0. You?Ah, I'm on 4.7. So this might be a regression: we should check.
Compiling with 4.7.2 and 4.7.3, I also get no duplicate loads on rdi. But both 4.8.0 and 4.8.1 do. All 4 duplicate the zeroing of eax.
What now? Bugzilla? Would this be considered c++? inline-asm? regression? dw