<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 - llc crashes with Instructions.cpp:2056: bool isSingleSourceMaskImpl(ArrayRef<int>, int): Assertion `(UsesLHS ^ UsesRHS) && "Should have selected from exactly 1 source"' failed."
   href="https://bugs.llvm.org/show_bug.cgi?id=46276">46276</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>llc crashes with Instructions.cpp:2056: bool isSingleSourceMaskImpl(ArrayRef<int>, int): Assertion `(UsesLHS ^ UsesRHS) && "Should have selected from exactly 1 source"' failed.
          </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>Common Code Generator Code
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>mikael.holmen@ericsson.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=23601" name="attach_23601" title="cgp_crash.ll reproducer">attachment 23601</a> <a href="attachment.cgi?id=23601&action=edit" title="cgp_crash.ll reproducer">[details]</a></span>
cgp_crash.ll reproducer

Reproduce with:
 llc -march=x86-64 -mcpu=corei7 -o /dev/null cgp_crash.ll

Result:
 llc: ../lib/IR/Instructions.cpp:2056: bool
isSingleSourceMaskImpl(ArrayRef<int>, int): Assertion `(UsesLHS ^ UsesRHS) &&
"Should have selected from exactly 1 source"' failed.

With -debug-pass=Executions the last thing we see is
 [2020-06-11 09:28:04.823322421] 0x5ed2ea0     Executing Pass 'CodeGen Prepare'
on Function 'autogen_SD20565'...


Starts happening with fa8bff0cd1a:

    [CostModel] Unify getArithmeticInstrCost

    Add the remaining arithmetic opcodes into the generic implementation
    of getUserCost and then call this from getInstructionThroughput. Most
    of the backends have been modified to return the base implementation
    for cost kinds other RecipThroughput. The outlier here is AMDGPU
    which already uses getArithmeticInstrCost for all the cost kinds.
    This change means that most of the opcodes can be removed from that
    backends implementation of getUserCost.

    Differential Revision: <a href="https://reviews.llvm.org/D80992">https://reviews.llvm.org/D80992</a></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>