<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122026>122026</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AArch64][SVE] can fold svmul by -1 to svneg
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Test case:
```cpp
#include <arm_sve.h>
svuint64_t foo (svuint64_t x, svbool_t pg)
{
return svmul_n_u64_x (pg, x, -1);
}
```
https://godbolt.org/z/GoEnMcc9s
I referred to the following GCC patch.
[patch](https://github.com/gcc-mirror/gcc/commit/f9c99d403c9a0948936e3120ad97b4f10998351f)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8ksGOmzAQhp9muFiJzBgTfOBAkmXVQ0-teo2MMeDW4Mg2ZLdPX5ms1FUPlZDweOaf-fV5ZAhmXLSugZ-BXzO5xsn5-tdBeu8eIetc_15_1yESJYMG1gBtoKTPT93vKURmFmXXXhNgF-nnW9j0cQL2kpK0CdtqllgWt0gG5whg9enmDfBCwtY5Z2-R3EdAkVSnM9CGEK_j6hcStnm1t-W2lsXtLTVIdZen9pAnCTvvqutnd0CbKcZ7SKaxBWxH13fOxqPzI2D7G7B9dS_LV6VEeDr9QrwetPe6J9GROGkyOGvdwywjeb1cyF1GNR1TLT_vZ-BXwOqfKSZOa3dUbk6BUofZeO_8MwBslZtnEwHbQSgh-oIyJSQVRSVYqVmOVPbi1BVDToWoGM8HQJH1NesFEzLTdX5iJQp-QpZNdZFzycpKcMmpqriSfFCqOjGUg6LlwDNTI0VOc1pRikjZUaRGOcfy1BV93ykoqJ6lsUdrtzmhyUwIq65zRIplZmWnbdi3A3HRD7JnATEti6-T6NCtY4CCWhNi-Nsmmmj3tWoar6aySKz4-duPF-BXouSS2PbPpyXdOznkiXnYFj1mq7f1f6CmER-_w927n1olnLuxANh-ON9q_BMAAP__d6jdWA">