https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123656

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[16 Regression] wrong code  |[16 Regression] wrong code
                   |with unsigned char [2]      |with unsigned char [2]
                   |vector multiplication by    |vector multiplication by
                   |210 at -Og                  |210

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
>From .optimized:

  _4 = v_1(D) << 3; // v*8
  _5 = _4 - v_1(D); // v*8-v; v*7
  _6 = _5 << 4; //v*7 * 16; v*112
  _7 = _5 - _6; // v*7 - v*112 = -v*105 <--- this seems swapped
  _8 = _7 << 1; // v*-105 *2 = v*-210


Confirmed.

Reply via email to