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.