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

    <tr>
        <th>Summary</th>
        <td>
            Backend crashes on a store to a large vector
        </td>
    </tr>

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

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

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

<pre>
    I'm investigating issue we have that is similar to https://github.com/llvm/llvm-project/issues/93391. From my understanding, the #93391 was closed assuming it's impossible to write C/C++ code that generates provided code as frontend will catch and report that large type.
However, our case is possible to reproduce using vector type that Clang and GCC support:

```c
typedef int vtype __attribute__ ((vector_size (262144)));

void zero(vtype *x) {
  *x = *x ^ *x;
}
```

```
% clang -c test.c -O1 
Assertion failed: (SDNode::getMaxNumOperands() >= Vals.size() && "too many operands to fit into SDNode"), function createOperands, file SelectionDAG.cpp, line 13500
```

The IR is quite trivial:
```
define void @zero(ptr initializes((0, 262144)) %x) {
entry:
  store <65536 x i32> zeroinitializer, ptr %x, align 16
  ret void
}
```

C code can be compiled by GCC without any problems. 

So the questions is: should backend correctly handle large vector sizes or it's assumed to be unsupported by LLVM in general, therefore vector with `#elements > 65535` are disallowed ?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVE-Po7gT_TTOpTQRmECSA4c06cxvpPkj_Xo115axC_CusRm7SDr96Vc2tLp3V3tZyVIIuF69eq-qRAi6t4g1Kx9Yed6ImQbnazsJKwe0m9ape_2F8f0I2l4xkO4FaduDDmFGuCEM4opAgyDQAYIetREeyMFANAVWnBi_MH7pNQ1zu5VuZPxizPXt59Pk3e8oifFLQgyMX45Fccy3cPFuhPEOs1XoAwmrtO0Zb4AGBMaLdA1uIoA0LqACEcI8Jm7E-D6AHicXgm4NRj43rwmhYfzSMP7A-ANIp1bmPVr0gjDA5N1VK1TLRxGg884SWgU3bQxIQXIAYRV4nJynJdwI3yPQfcIty07_cze8oo9M3exBioBRmo9cPE7eqVkizCESvqIk5xPCgtgYYfuU53PTQJinmCyKmaVTZcuRLDvFIIUdaEtwTQjPz4LI63YmfH4Gxg-MH5YMz0G_Ru0OvOL5bsf4cT3Fw4J8dVrBK3oXQxIY46cXxo_A9vEKpP_AivP6UD4uNxaA_fkju7-Rjc-8BJlK-ySBMNBWwqcfObDsdAoBPWlnoRPaoGLFKRJ9On93CmPlxalH-iZevs_jjwm9sCqk0o7AisdI6KcwYRsLfHvNK8YrYJyTczAKewe3BkYPOk1RMwdrCs6TFg10s5WJiPQoCN-TNdBpg_CEBtOF8-nzVk5T_GC0RciLMsv-KcBvA8KX_8cW-DXHFiSvr1qY1c0PdxV2ESZ5wHbZasNEHrTVpIXRr7jUfMhi0o8mAuPlB5_Qkr8vGQACOY_AiqYqy6KCF9AFZ8Vj8vkdOTVsTLYgNSCM7i3kVcLwSInYv7ncLAMjhYUWQbpxiiZCe08NfNM0uJkgejB51xocwxaWyCeXBvrXHJeLswF03BoQBjcbBa2Qf8Tpk857lGTuMAirDK4ztw5OdD2A82-TnzYBqmhzizDbdYAWQl-__vwG2q5Db9aN4rGLKq2AkTDE4niBBke0FGKbQVSwZFUGwiMoHYQx7oYKWHHZqLpQx-IoNljn-6Iq9_nuUG2GuqyKqt0pjnsUKmtF3qmqOmZC7jjfZ_tuo2ue8TLL8zzblYes2ub5cZ91vDpI3uVclmyX4Si02caNuXW-36RdWeecl_t8Y0SLJqQNzrnF27KbY0OX542v05pt5z6wXWZ0oPAOQ5oM1g9vGnsRhqijBbE2DTkQf5F6M3tT__fVvjK-1vzPAAAA___49wuW">