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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] Improve codegen for "trunc <4 x i64> to <4 x i8>" for all cases
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          minglotus-6
      </td>
    </tr>
</table>

<pre>
    (This arises in the review of D132784)

https://godbolt.org/z/T4rTqf1Tx shows 1 uzp1 + 1 xtn is generated, which is good.

https://gcc.godbolt.org/z/oYEha6o7q shows 2 xtn + 1 uzp1 is generated. This could be improved to 1 uzp1 + 1xtn as above.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9kUuP2yAQxz8NvqBYGNuJOfiQ3Wyl3nPpkcfE0GKTBZyk-fQdOxttH1Il42Eemh__GRXMz57w7mhdojK6BIm6iWYLNMLFwZWGEz1UNd91DeGCsANh-8ff5nxOpN4T_gW_IRgVfC5DHNC74zk28fh-qo43mmy4JlrR-X6uKOEveL3liSJxgAmizGAIf6VX67RdoyGY8j8orct_ceHbm5XbsHv_wPGV8aCt4N9xJV0F6zB7QxVQN55juIChOfzxzqWFxMEoTJYF9NV2y1nTdJ0oTF8bUQtZZJc99KR92e-jttuGtAf69dEPAQYQSk8hYkOe4zxpSurXht6ow9L6bSE-Ax36WLVWS--plriOYo6-_2sALttZlTqM6Hh_eZoNQr-Dzui6lGZIeGl3LeOF7aWuG7lTRqNltW5Pula8VlpUJ1CigcJLBT4tOvAJSuofMBkkPkVxvqwIzcqr9x_KPuMjIsFswjm70d1ldmFNtofC9ZxxzgSrqpZ1TJQ7oTiDrhGV4CBMQxoGo3S-XHovKy1iv-pR85Aw6V3K6TMpU3LDBOvMl_5yzjbEfnTT4EOe02ZbrPL7VfsvZ5bl1A">