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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c++                         |rtl-optimization

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to vfdff from comment #0)
> This case is simplify from
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090, and we can see that the
> codegen of function `test_m` has some regression with optimization
> -fexpensive-optimizations, https://gcc.godbolt.org/z/zbKrEox4j
> 
> This is because the pass 208t.widening_mul is controlled by
> -fexpensive-optimizations (default on at -O3), it conversion
> 
> ```
>   m_12 = m_9 + m1_10;
>   if (m1_10 > m_12)
> ```
> into
> 
> ```
>   _17 = .ADD_OVERFLOW (m_9, m1_10);
>   m_12 = REALPART_EXPR <_17>;
>   _18 = IMAGPART_EXPR <_17>;
>   if (_18 != 0)``

This should always be better. If ifcvt.cc does not handle this case, then it
should be improved.

Reply via email to