<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 - X86_INTR calling convention depends on pointee element types"
   href="https://bugs.llvm.org/show_bug.cgi?id=46672">46672</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>X86_INTR calling convention depends on pointee element types
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>trunk
          </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>Matthew.Arsenault@amd.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>The lowering for X86_INTR implicitly depends on the pointee element type, but
it's somewhat hidden in the code, since it's laundered through typed byval
support.

<a href="https://github.com/llvm/llvm-project/blob/a474d5bae4773782d50d4a5a62300c0f4a2dff28/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp#L9775">https://github.com/llvm/llvm-project/blob/a474d5bae4773782d50d4a5a62300c0f4a2dff28/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp#L9775</a>

Sneakily, the call to getParamByValType below happens to work here since it
tries to fall back to the pointer element type to handle real byval attributes
which are missing the type. It's also an accident this code works for inalloca
and preallocated (although I have a patch which will fix these parts soon)</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>