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

            Bug ID: 123116
           Summary: sbb cst is not produced with direct cond_expr
                    expansion
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

Created attachment 63054
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=63054&action=edit
testcase

Take the attached testcase at -O2.
I would assume these two functions produce the same code but currently they
don't.

The difference between the two is the second one uses the COND_EXPR directly in
gimple which expands using conditional moves. While the first depends on the
rtl ifcvt to do the conversion.

This blocks doing some ifcvt on the gimple level before expansion.



I Noticed it while trying to fix PR 123111. Where I had to workaround an RTL
ifcvt issue.

Reply via email to