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

Reply via email to