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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] Vectorize `memcmp/bcmp` expansion
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64
      </td>
    </tr>

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

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

<pre>
    Expansions of `memcmp(s1, s2, n)` for static `n <= 64` use scalar instructions for comparisons. It should be possible to use SIMD/SVE registers for a more efficient expansion for large values of `n`. See eg https://github.com/ARM-software/optimized-routines/blob/master/string/aarch64/memcmp.S and https://github.com/ARM-software/optimized-routines/blob/master/string/aarch64/memcmp-sve.S
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8UrFu2zAQ_RpqOViQjjJtDxrcOAKCIksNZCepk8yGIgUelbb5-kJqjHTq2EU3PL137x6fZnZjIGrF_ovYXwq95FtM7deJ9KsLhYn9r_bx56wDuxgY4gBCVRNNdpoFHrkW-ACM6zcIPAlVwRATcNbZ2fXXAEI-CHkB1azgwgRstdcJXOCcFps33ZVk4zTr5DgGLuEpA9_i4nswBHNkdsYT5LgpXJ-eLwK768sjJBodZ0p_JDRMMRHQMDjrKGSgu_UN9jqNBG_aL3Q_JQhVlXAlAhrhlvPMQp4FdgK70eXbYkobJ4Hd-dvzjuOQf-hEArs4Zze5d-p3KS7ZBWKBnfHRCOwmvRoS2HFOLowCO62Tvalmxbbkyivo0P-3dTt-o_Ja9K3sT_KkC2prdTgqdagPWNxaubdK97o-HRoj7XBs7H44DY02vZF7S8fCtVihrGQtqwpVjaU5Ddb2PZJSDdJwEE1Fk3a-9P5tKmMaC8e8UKtqqWThtSHPW8EQjbavFHohz-fzh0tce5falbszy8iiqbzjzJ9q2WW_NfTO2V_ghWyOyb3T34XszDpU9fnuxZJ8-4-g1x0fYzen-J1sFtht9teMtwt-BwAA___8LQdj">