<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59098>59098</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Assertion failed: ((!isa<FixedVectorType>(VTy) || (Index + NumSubElts) <= (int)cast<FixedVectorType>(VTy)->getNumElements()) && "SK_InsertSubvector index out of range"), function getInsertSubvectorOverhead
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dcci
      </td>
    </tr>
</table>

<pre>
    ```davide@mac-4236F6 astencoder_repro % /Users/davide/work/llvm/build-release-assertion/bin/clang -cc1 -triple x86_64-apple-macosx13.0.0 -Os ./ASTEncoder-postprocessed.cpp -vectorize-slp -emit-obj 2>&1 | grep "Assertion"
Assertion failed: ((!isa<FixedVectorType>(VTy) || (Index + NumSubElts) <= (int)cast<FixedVectorType>(VTy)->getNumElements()) && "SK_InsertSubvector index out of range"), function getInsertSubvectorOverhead, file BasicTTIImpl.h, line 153.
```

```
% cat ASTEncoder-postprocessed.cpp
typedef long __attribute__((ext_vector_type(2))) a;
typedef __attribute__((__ext_vector_type__(4))) __fp16 b;
typedef __attribute__((__ext_vector_type__(8))) __fp16 c;
void d(unsigned);
a e;
void f(unsigned &g) {
  unsigned &i = g;
  struct {
    a bits;
  } j{e};
  d(g);
  c h = (c)j.bits;
  b a = h.hi;
  if (a.y || a.z)
    i = 3;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztVU1vozAQ_TVwGYEAJwQOHPoVKVppe2i2V2TMAO46gLBJk_76HUOapN2qhz2v5MR45s3z88wYiq48Zk4czKPke1miswh2XHiLiMXrGLg22IquxCEfsB86cKIl_da_NA6a5lNMtH7tht80KbXf0VSMUpXegAq5Ro9rQhvZtdYj7b9QvK3BEyIEzwyyVwiHJM7jhcd7WnikoNOHkPmBH4D3qMGnoJun7cOsxes7bUiNQGIufdH34O1RmG6Qb-hpRUvcSeN1xQtEDntwojgEZ3UHNR2C5Ec3F0WRE9w7wc3ZAhWXCkuH3RAwmUYoNXfY3VoesHyettkee5x4k-ft0YlSS275ybBpSzzQwy38HHdPY_GgjJ4Q7M5h9xYhW0MGQan9ntSjRY2GaB4U7rC1PKQmndiimIY9ytOPfNNa7bTXnAOQk4RuNNBVMFCm0R7TBt5BNbZiOiYxf4p73OPQIC8nGOUAbrmWYrvdbHa98htrVrJFCJfMn5N2bp3T8ksjNYzgBr6r3ow0dP4SK1Ad9Uaec0OdUYwG83wuBB5MPivNLZQs86GmhFCBbj_SfMGQ5584JsfiwpLnVR_GUPw7WfIXmTiT7TtZAqU3GVst65aajIDvTg74EVhdAW2967nPThCAa58E21v1mQBAm2EU5hoPwKGQ1EQXkLO6hxeCID1cma3E-lobgIAGTu0ryPPif2IqiNz6G7-RV2ZZ2QjuH98vCPffLPFZ0iycnUOskI9d5GIWxnGSrtKEpW6ZsTJlKXeNNAqz_7f2fGvdcVBZY0xPZaFLt6ZRS9OMhS-63eXNbCePLt8LBdNSaj2ifZEv0yBN3CYL0kqgCLGs4jhYpcuKLUUYV3GEYRUErHAVL1DpzFnekrwWX2GisFKX967MoiCKwpD-Qxaw1I9WIolDlqziZcpYWtDXBXdUKt_q8LuhdodsklSMtSanktroi5O-HLbHcdqO-Plomm7ISiGkO-2bTbr_AMozCNI">