<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 - SystemZ Z13 Unsupported vector argument or return type"
   href="https://bugs.llvm.org/show_bug.cgi?id=42075">42075</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>SystemZ Z13 Unsupported vector argument or return type
          </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>FreeBSD
          </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: SystemZ
          </td>
        </tr>

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

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

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=22053" name="attach_22053" title="A file that, when run, should exemplify the bug.">attachment 22053</a> <a href="attachment.cgi?id=22053&action=edit" title="A file that, when run, should exemplify the bug.">[details]</a></span>
A file that, when run, should exemplify the bug.

For some reason, when llc is run with options -mtriple=s390x -mcpu=z13 (without
the second argument, the issue does not occur), llc prints "LLVM ERROR:
Unsupported vector argument or return type" if the input file contains any
function whose arguments or return types are, particularly v3f64, but also
generally any vector type that is considered to be an extended type, such as
v6f32.  

It fails at an assert at VerifyVectorType in
lib/Target/SystemZ/SystemZISelLowering.cpp.  As far as I can tell, the code
seems to run to completion and produce correct assembly as long as this assert
is simply skipped in those cases.  However, there is a comment indicating that
a single element vector containing a 128 bit type is not supporting, suggesting
that the assert was meant to catch this case but also ends up catching many
other cases that it is not supposed to.

I have attached a test file.</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>