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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Crash with 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>
    The compiler crashed with -O2 in this code:

```c
#include<stdint.h>
static uint8_t b[][1] = {127};
long a(int c, int e) {
  long d;
  for (; c <= e; c++)
 if (c % 2 == 0)
      ;
    else
      d *= c;
  return d;
}
int64_t f();
int16_t g() {
  int32_t h = 1653000360;
 f(a(h - 1653000360, b[0][0] - 126));
  uint8_t *i[] = {b, b};
}
```

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.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
```

The details can be found here: https://godbolt.org/z/eeWW6raPb
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVUGP4ygT_TXkUpqIFLGdHHJwnPappWlpRt3HFgZi830ELCjP7syvX2F30p7VSittZMVAPR5V9YqyTMn23pgTK86suGzkREOIJyWjtr30O84Pmy7on6fvgwEVbqN1JoKKMg1Gwx-WBvjyFcF6oMEmUEEbJmrGL4zf_0u-POpjjsJ65aYMbBJp62k7MPG0WBNJsgom6-nwTtAtbrHivGPFBZi4AKvOO6xYdWHivOxxwfcgGR6sJ1AMG8gDw_CYwQsGYEbpxyaAa4jA8MDEGRQw0WRyM88Ynufn-AG11wxUwLAAzE5kKP-0z78VM4BxyayNGhjWeZdawaKhKfqVTzmoeWA9lft3gmv2D48PgPW0K98J-mV9HZ71JPCdYJiTtCsLwTkXJf88L5PlLA3wZW3HZs4yX9KcX9mOZT53dTQ8NGFY20WWux7dQrKS5BHJQ_11Scy1lEsIbPqslt-RyknfM1EDwzaGQAxb537cvowx_M-o-zS_bMew_R6lT9cQb4lh-2oUhWh_GYbtcwjjY75V48hEXYnymKlnBlEzUd8RkmzwrcyTlXXNMSNenPTexMWab8VE5mwSvbZ3wWqoUzIxgyHHhIdsX5i3b1bTcK-jZ9NL9fO1va9WDasaGJ30TfAkrU-11jYTSffN3kZnr1bNXiSGh95QdqYN8R-OmCVsoAmJGvozD79G2-doFnGBZZlLYIjwmmlAhURwC9o4kF6Dm31br2qbZB-N0QyRYQVXaZ3R20Wzl-en-tsTpKm7WQIJ3dRDNGOIBBRgIBpnubFl2PaWhqnbqnBbSfm7wDalyWQ9Z18-mgbQo3g6qf5PUSqTIxujGWNQJiWjIYUpLst5p0wpKCvJaIiTh6SiHWn7L_WpDUnrEijpoTNwDZPXMJiY29vfQwm6C462IfYM218MW2Pe3sooX7qNPgl9FEe5MaddhYXgWAncDKdScBS8rHjXlZ3Ym-OBH0ulONdFxaVWG3tCjnt-5Lg77AuB2-vugOKwK0WHmheHju25uUnrtjlr-ezNnK_Tjld8V2yc7IxLc1tHXC4TYu7w8TSnuZv6xPbc2UTpk4IsuflbsOwoLtDMqZ4bvXxU9KJ67vqPq7WZojv9d4k_vP5xwr8CAAD__7yw7-k">