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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Dead Code Elimination       |[13 Regression] Dead Code
                   |Regression at -O3 (trunk    |Elimination Regression at
                   |vs. 12.1.0)                 |-O3 (trunk vs. 12.1.0)
   Last reconfirmed|                            |2022-06-13
                 CC|                            |rguenth at gcc dot gnu.org
   Target Milestone|---                         |13.0
           Keywords|                            |missed-optimization
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  GCC 12:

t.c:12:23: optimized: Unswitching loop on condition: if (iftmp.0_9 <= 1)

t.c:12:23: optimized: Unswitching loop on condition: if (iftmp.0_9 == 1)

t.c:12:23: optimized: Unswitching loop on condition: if (iftmp.1_10 != 0)

t.c:12:23: optimized: Unswitching loop on condition: if (iftmp.1_10 != 0)

and trunk:

t.c:12:23: optimized: unswitching loop 1 on ‘if’ with condition: iftmp.0_9 <= 1
t.c:12:23: optimized: unswitching loop 1 on ‘if’ with condition: iftmp.1_10 !=
0
t.c:12:23: optimized: unswitching loop 1 on ‘if’ with condition: iftmp.0_9 == 1

somehow trunk doesn't consider the 2nd iftmp.1_10 != 0 condition.

Reply via email to