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.

Reply via email to