<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/161584>161584</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] Use `umin` for `x != 0` when `+cssc` is enabled
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            missed-optimization
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Kmeakin
      </td>
    </tr>
</table>

<pre>
    https://godbolt.org/z/78zeM8a7z
```c++
auto src(unsigned long x0) { return x0 != 0; }
auto tgt(unsigned long x0) { asm("umin x0, x0, #1"); }
```

```asm
src(unsigned long):
        cmp x0, #0
        cset    w0, ne
        ret

tgt(unsigned long):
 umin    x0, x0, #1
        ret
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8Uk2ToyAQ_TXthUoKWvHj4MFMysvWHvcHIBJlByEFOJPNr9_CSTapnamxKJFu-71-zRMh6Mkq1QI_AD9mYo2z8-2PRYlXbbPBjX_aOcZzgLwD7AH7yY2DM3Hv_ATYXwH7qr6qn7WorkA7KOnHkoCHtGgn1uhI8BKwXu3GNhLj7EQuFLAhUB2IV3H1llwoAWSQHwmF_ECgOt7L4xS_KRdhAawBcV203eIvtzdgzgARsHkA_msxfT8dEwrtvmh0q06_ktsjl_MDnz4ngoppf9-SVj2lvIoffF9IeRBsAgj5rOET0L3rbGzzsckbkamWVbzJOeMMs7mVjI4NE_TUnHiVN-VAa1Wf6oI1FRcoh0y3SJEzShnSgjO2r4qaDlxVI8qCj4JDQdUitNkb87ak-850CKtqWcl4XWRGDMqEzTiIg5Cvyo6Qd13n5VwW29RfAHHRIahx585RL_oqonY25fgx820C3g3rFKCgRocYHlRRR7O58o7Hj-RXUARKmoYEJSUn59Px8jBNScn7rGyKAh5kCDKFdCDKisGoMVu9-d_OOs7rsJduAewT-23bnb37rWQE7DfVAbC_CX9r8W8AAAD__9aL6QA">