https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60172
--- Comment #23 from Bill Pringlemeir <bpringlemeir at gmail dot com> --- (In reply to Bill Pringlemeir from comment #22) > The good ARM assembler uses the 'mla' instruction which is a 'multiply and > accumulate'. Since this is not recognized, the multiply result needs a > temporary register to do the add with and I think this cause the extra > registers. I believe you should look to see why the 'mla' is not matched. > I don't know if the x86 has an op-code like this. Er, I see. The 'mla' comes as a result of seeing that the array index calculations can be reused. Sorry for the noise.