<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 - Do not know how to split the result of this operator w/ llvm.x86.avx2.gather.q.pd.256"
   href="https://bugs.llvm.org/show_bug.cgi?id=42352">42352</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Do not know how to split the result of this operator w/ llvm.x86.avx2.gather.q.pd.256
          </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>rupprecht@google.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>We're seeing an error that has been reduced to this:

$ cat repro.cc
__attribute__((__vector_size__(4 * sizeof(long)))) long a;
__attribute__((__vector_size__(4 * sizeof(double)))) double b;
struct c {
  __attribute__((target("avx2"), always_inline)) int d() {
    b = __builtin_ia32_gatherq_pd256(b, 0, a, b, sizeof(double));
    return 0;
  }
};
void e() {
  c f;
  f.d();
}

$ clang++ -c repro.cc
SplitVectorResult #0: t13: v4f64,ch = llvm.x86.avx2.gather.q.pd.256<(load 32,
align 1)> t5, TargetConstant:i64<5859>, t8, Constant:i64<0>, t10, t8,
Constant:i8<8>                                                                  

fatal error: error in backend: Do not know how to split the result of this
operator!

I tried clang++ from trunk, as well as a very old version (clang++-4), and both
failed, so this is not a new bug, unless it was fixed in between and regressed.</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>