<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">