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

    <tr>
        <th>Summary</th>
        <td>
            [X86] Callee saved ZMM[6-15] not preserved before being clobbered by inline asm as required by the Windows x64 ABI
        </td>
    </tr>

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

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

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

<pre>
    Original discussion:
https://discourse.llvm.org/t/registers-xmm6-to-xmm15-are-not-saved-in-clang16-with-march-skylake-avx512-and-march-x86-64-v4

Notice how XMM6 is saved in `foo2` but not in `foo` (https://godbolt.org/z/ba9KfvavK):
```
foo: # @foo
        vpxord  zmm6, zmm6, zmm6

        ret
foo2: # @foo2
        sub     rsp, 24
 vmovaps xmmword ptr [rsp], xmm6         # 16-byte Spill
        vpxord ymm6, ymm6, ymm6

        vmovaps xmm6, xmmword ptr [rsp]         # 16-byte Reload
        add     rsp, 24
        vzeroupper
 ret
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsU0GPqzgM_jXhEqWCACkcOLRTVVqNuivtHna0t0AMZCckvCTQdn79UyjTmb7XqsKK_eXzZ8fmzslOA1Qo3yNKzQBWJ4hSlB8iPvne2Ormi2ojrtVfVnZSc4WFdM3knDQapTsUH1C8670fXTjRI6LHADCTdbBRah42xnaIHj2iRwuddB6sI5dhYMSbYJOccAtEG08cn0EQqUmjuO4SRs7S92TgtumJe78q_g6Ez5c8oYRrsQYuBSMsI3N2k3L7_mm8bAD35ozfTieGpcMLOZYaIxa3xlDEYlxPHmvjv7zBiWjxWE9nRG2UXwv5QPRY8_K1nfn8imh5bwJi8fpfjoEt3WFEU4yyhXtx4_U3jxdjBcYfw8AQfXm03yr5xFvwd176SEwfkW6qbzfcGAjp2hg8D2bmo8OXYTiH1KO3GOX7AMsPARke5ZNkoU8Yqa8e8D-jVOqp_Ouq-sE-Uf8tN1tT_a7hae6_QRkuHtm4EE8r_Ez2AdZM4wh29d97d3-iSFSpKNOSR1AlrCiSJKeURn21FUm53RbZNikYFCmkZRu3wLaCC9rSkkeyojFNY5bGcZGnGd2wom0FlDXENGFt2qAshoFLdR_-SDo3QcVSluSR4jUot65czZt30AKlu7eCrZtnq3CP1FPnUBYr6bz7YvLSq2VfAz4_4BeuFMA62v-dTijfM5LkIRTGerTgwIZYDa2xgGuQusONMnUNNrivWGolNWDuBswdtvBjkmvE94D_lVqYs8MXluHd_o9osqr6ZTmk76d605gB0WMQuhoyWvM_NGHtl_odoselBT8DAAD__xKeUwQ">