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

    <tr>
        <th>Summary</th>
        <td>
            [x86] A "vzeroupper" clobber would be nice
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Some x86 ABIs leave the "high half" of all YMM registers as volatile, while preserving the lower halves of some XMM registers. This nicely coincides with `VZEROUPPER` when appropriate. While perhaps a somewhat unusually-specific clobber, it would be nice if LLVM supported this as a clobber for inline assembly to use.

AArch64 has a similar story with the high and low halves of the V registers.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxUks1u2zoQhZ-G2gwiyNSfvdDCuYmBCyS4QW6b_uwoaSROSosCh5TiPn1BOWjTDbkYzDmHH49ipnFCbER5K8q7RAWvrWtW637QNL6Glgxi0tr-0vxvzwhv-wqOt_8yGFQLgtcIQkpNowatzCCkBDuAMga-PT6Cw5HYo2NQDIs1ypNBIf-BVZNBmB0yuoWmcRMydkUXZRbkqMLR8OtHmRQ-aWKYqENzgc7S1FGPDCt5DaLKXr7fP__3-enp_llUGawaJ1Dz7OzsSHlM4cvVFp1WM4PaHFatPIQpcFDGXG54xo4G6qAztm3RxbTkYbXB9NDi5g00wMPDyyNwmGfrPPbgYy4VNd_3YLAOaDI0IShmPLfmAt5CYExFdiey4_U8Hl2nqwL0tsx0JqMcsLfucn1WJLPxVVMfEX0AFEcvH-gkfZP3h_ygEmx29W6_L-qqqhPd5IeyzvctFt1QD3m-U9lw6PO63FdD30tVJtTITBZZJbNsV-yyOh06rKQsyzJvhzJTB1FkeFZkUmOWc2rdmBBzwOZQ7fI8MapFw1uHpJxwhW0opIyVck3cuWnDyKLIDLHnPyqevNnK97avRHkHx1in5Sc6G-Y50pe_gf71BUlwptHezyzyo5AnIU8jeR3atLNnIU_R4P26mZ19xc4LedpisZCna-ylkb8CAAD__1yuARs">