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.