<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Prefer zmm16 through zmm31 to avoid vzeroupper"
   href="https://bugs.llvm.org/show_bug.cgi?id=46408">46408</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Prefer zmm16 through zmm31 to avoid vzeroupper
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>10.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Backend: X86
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>josephcsible@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>craig.topper@gmail.com, llvm-bugs@lists.llvm.org, llvm-dev@redking.me.uk, spatel+llvm@rotateright.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Consider this code:

#include <immintrin.h>
void f(void) {
    __m512 tmp;
    __asm__ __volatile__("nop # it picked %0" : "=v"(tmp));
}

Or this minimized code, without headers:

void f(void) {
    float __attribute__((__vector_size__(64))) tmp;
    __asm__ __volatile__("nop # it picked %0" : "=v"(tmp));
}

Compile with "-mavx512f". In both cases, it will end up picking zmm0, and thus
needing to emit vzeroupper afterwards. Since we're using AVX512 anyway, we
should prefer zmm16 through zmm31, which don't require vzeroupper afterwards.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>