https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122972
Bug ID: 122972
Summary: Missed umin x0, x0, #1 optimisation on aarch64
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
Target: aarch64
auto src(unsigned long x0) { return x0 != 0; }
Compiles with -march=armv9-a+cssc to:
src(unsigned long):
cmp x0, 0
cset w0, ne
ret
but it could be using CSSC to generate:
umin x0, x0, #1
ret
I marked this as target, but it could be a midend fold that's missing