http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49687
Eric Weddington <eric.weddington at atmel dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.07.14 18:45:17
Summary|AVR: Missed optimization |[4.6 Regression][avr]
|for widening MUL |Missed optimization for
| |widening MUL
Ever Confirmed|0 |1
--- Comment #3 from Eric Weddington <eric.weddington at atmel dot com>
2011-07-14 18:45:17 UTC ---
The test case results using GCC 4.3.3 (WinAVR 20100110) shows that the mul8_126
case is smaller:
.global mul8_126
.type mul8_126, @function
mul8_126:
/* prologue: function */
/* frame size = 0 */
mov r18,r24 ; 2 *movqi/1 [length = 1]
ldi r24,lo8(126) ; 6 *movqi/2 [length = 1]
muls r18,r24 ; 7 mulqihi3 [length = 3]
movw r18,r0
clr r1
movw r24,r18 ; 32 *movhi/1 [length = 1]
/* epilogue start */
ret ; 30 return [length = 1]
.size mul8_126, .-mul8_126
So this is a regression wrt to gcc 4.6.1.
The case of mul8_155 shows the identical problem as for gcc 4.6.1.