<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107051>107051</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Assertion failed in Vectorize
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cardigan1008
</td>
</tr>
</table>
<pre>
I compiled this code with -Os and a crash appeared in assertion failure:
```c
#include <stdint.h>
int32_t *c;
int8_t ****d;
uint64_t g;
int a();
long b(long, long h, long p3) {
long e;
int f = 0;
if (h) {
e = h;
f = 1;
}
if (e > p3)
f = 2;
switch (f) {
case 1:
e++;
case 2:
e--;
}
if (e < h)
e = h;
return e;
}
uint8_t div_func_uint8_t_u_u(uint8_t ui1, uint8_t ui2)
{
return (ui1 / ui2);
}
uint64_t j() {
uint16_t k[8];
int i;
for (i = 0; *c + ****d + (int)g + i < 8; i++)
k[b(0, g, 0)] = 6;
*c = div_func_uint8_t_u_u(k[6], a());
}
```
The crash is:
```
clang: /root/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:7369: llvm::VectorizationFactor llvm::LoopVectorizationPlanner::computeBestVF(): Assertion `(BestFactor.Width == LegacyVF.Width || planContainsAdditionalSimplifications(getPlanFor(BestFactor.Width), CostCtx, OrigLoop)) && " VPlan cost model and legacy cost model disagreed"' failed.
```
Details can be found here: https://godbolt.org/z/T81adKPY5
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8VVuPmzgU_jUnL0cTweESeOAhlyKttlIrbTWrfYoc24C7xEbYTLf99SubhCGj6Ugosc_d3_l8zKxVrZayguwA2WnDJteZseJsFKplOo6iYnMx4mf1B3JzHVQvBbpOWeRGSPyhXIdPXywyLZAhH5ntkA2DZKMUqDQya-XolNHYMNVPo4RkD9EJovtvHs0fv-0pUZr3k5AIydE6obTbdpB8mtVKu4TODoH2HJLDIixm2fKJRTkp7fL07LBd2yMDKoDKRdYb3eIFqPALoCMGQbeshgSoRNjdzGehXNwRfdAGITlhtJY2CFR0j76IKINlt7LEm3e8ksHudFvOcbzXp7mUt260crM_lOOdd2jeJObMSp9hv6oE6OC_xT3Y0KPN09O7Va3KOnqsyo8OOEo3jXqF2RLntVG-jUK9nJtJ8_NNcJ7OE1BxV08q9k153dKSd3XQW7LgFyNQfTf8IHlgyfeZF2vQvC7Ozw7_hexQQHZ603W12jdm9EnVQoTAVAQ6PNLzJimUdkBlG7YqwFh4J3VryoKoT-3ZGfmzB35GXpmdQqJ83Z2QLzn9DkcfKfeHoONyCd7F5X4x1zB96-Ttjiv7epEfLXnPdAvJ3qM-GuOA6r5_uT4No_ku-X3r_9QFqP42Mm0bM14tUP0suTOj-iWB6s_GDMt-y4cBkv0uyUsfOkRI9pDs7xbMz5ia-c1Ku44RLL72TGs5zlo_zyYnD9K65_o-D_a4X0aWPxMVXj9H3v6thOs8uh7gz7Jl_OdzfZfujrA74tAzfTTaMaXtXgjlA7H-L3UdetUoHqqwQEUrnS-mNuM7KUJTjng01h3df375ZVStP83cLgTKgXIEInz2YZAb6_BqhOzDKO5DbWupUJa1o5QCiIB2YRxLsf2g2SfpmOotcqbxIrExkxbYyTDCsXNuCBSgGqhujbiY3m3N2ALVv3xbi5iJP7_-k60jbkSViDIp2UZW8Y6yJE2TIt50lRS8EY0o-aXkUS6zNM4jwXicybK8RNRsVEURpVEZJVEel2m8FVRmxASlkYhS3qSQRvLKVL_1zfd1bJS1k6ziaBdl8aZnF9nb8MYRzQwl8s_dWAVyXqbWQhr1yjr7GsIp14eHcfbITituzPj5J24h6WYa--oNMMp102XLzXXF-8fbEOr05L-V-lLR_wEAAP__pZEjjg">