<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 - i386 codegen can fail when doing multiples on v6i32 vectors"
   href="https://bugs.llvm.org/show_bug.cgi?id=50709">50709</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>i386 codegen can fail when doing multiples on v6i32 vectors
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

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

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>release blocker
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>srj@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=24953" name="attach_24953" title="sample for repro">attachment 24953</a> <a href="attachment.cgi?id=24953&action=edit" title="sample for repro">[details]</a></span>
sample for repro

(Appears to have been injected by <a href="https://reviews.llvm.org/D103881">https://reviews.llvm.org/D103881</a>)

reduceVMULWidth() in X86ISelLowering.cpp assumes that a vector operand with an
even number of elements can be changed to a vector with the same number of
elements but with an element of type i16. This isn't always the case, though;
if the value in question is Simple, it will attempt to update the relevant MVT
value, and only certain combinations of those are legal. In the failure case
I'm uploading, the code is attempting to convert a v6i32 (which has a valid MVT
value as of the change above) into a v6i16 (which does not have a valid MVT
value).

To replicate:
- sync to LLVM commit 2c2d2922a24b7fa8a92f38d9043ab476d330210d or later
- be sure to compile with assertions enabled
- build llc
- llc --mcpu=k8 --mtriple=i386--linux-gnu -o - -O3 err_func.ll
- see assertion failure</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>