<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 - After r359095, Assertion failed: ((HOp.getValueType() == MVT::v2f64 || HOp.getValueType() == MVT::v4f64) && HOp.getValueType() == VT && "Unexpected type for h-op"), function foldShuffleOfHorizOp"
   href="https://bugs.llvm.org/show_bug.cgi?id=43402">43402</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>After r359095, Assertion failed: ((HOp.getValueType() == MVT::v2f64 || HOp.getValueType() == MVT::v4f64) && HOp.getValueType() == VT && "Unexpected type for h-op"), function foldShuffleOfHorizOp
          </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>Windows NT
          </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>new bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>dimitry@andric.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>As reported in <a href="https://bugs.freebsd.org/240759">https://bugs.freebsd.org/240759</a>, after
<a href="https://reviews.llvm.org/rL359095">https://reviews.llvm.org/rL359095</a> ("[x86] make sure horizontal op and broadcast
types match to simplify (<a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot emit physreg copy instruction after r357703"
   href="show_bug.cgi?id=41414">bug 41414</a>)"), self-hosting llvm 9.0.0 for i386 results
in:

Assertion failed: ((HOp.getValueType() == MVT::v2f64 || HOp.getValueType() ==
MVT::v4f64) && HOp.getValueType() == VT && "Unexpected type for h-op"),
function foldShuffleOfHorizOp, file
/home/dim/src/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp, line 32854.
Stack dump:
0.      Program arguments: /home/dim/ins/llvm-trunk-r359095/bin/clang -cc1
-triple i386-- -S -target-cpu haswell -O1 -vectorize-slp xray-account-min.cpp 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'xray-account-min.cpp'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function
'@"_ZNK1c1fIZNKS_1dERK1aE3$_0EEvS3_T_"'
0  clang       0x00000000028bfce8
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  clang       0x00000000028bdbf8 llvm::sys::RunSignalHandlers() + 248
2  clang       0x00000000028c0578
llvm::sys::PrintStackTraceOnErrorSignal(llvm::StringRef, bool) + 1256
3  libthr.so.3 0x00000008044dc430 _pthread_sigmask + 1328
Abort trap

Before this change, the assertion was different, and corresponds to what
appears to have been fixed for <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Cannot emit physreg copy instruction after r357703"
   href="show_bug.cgi?id=41414">bug 41414</a>:

Assertion failed: ((!From->hasAnyUseOfValue(i) || From->getValueType(i) ==
To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"),
function ReplaceAllUsesWith, file
/home/dim/src/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 8144.
Stack dump:
0.      Program arguments: /home/dim/ins/llvm-trunk-r359094/bin/clang -cc1
-triple i386-- -S -target-cpu haswell -O1 -vectorize-slp xray-account-min.cpp 
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'xray-account-min.cpp'.
4.      Running pass 'X86 DAG->DAG Instruction Selection' on function
'@"_ZNK1c1fIZNKS_1dERK1aE3$_0EEvS3_T_"'
0  clang       0x00000000028bfbd8
llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  clang       0x00000000028bdae8 llvm::sys::RunSignalHandlers() + 248
2  clang       0x00000000028c0468
llvm::sys::PrintStackTraceOnErrorSignal(llvm::StringRef, bool) + 1256
3  libthr.so.3 0x00000008044db430 _pthread_sigmask + 1328
Abort trap

Minimized test case:

// clang -cc1 -triple i386-- -S -target-cpu haswell -O1 -vectorize-slp
xray-account-min.cpp
struct a {
  unsigned long long b;
};
struct c {
  void d(const a &) const;
  template <class e> void f(const a &, e) const;
  double g;
  double h;
  double i;
  double j;
} k;
template <class e> void c::f(const a &l, e) const {
  auto &m = k;
  m.g /= l.b;
  m.h /= l.b;
  m.i /= l.b;
  m.j /= l.b;
}
void c::d(const a &l) const {
  f(l, [] {});
}</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>