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