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

    <tr>
        <th>Summary</th>
        <td>
            [clang] Assertion failed in LoopVectorize.cpp:7401
        </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>
    When I compiled the code with -O2 flag, it crashed:

```c
#include <stdint.h>
static uint8_t b = 188;
void c();
long d(int e, int p2, short j) {
  long f = 0, a = 1;
  unsigned long g;
  int h;
  if (e < 0 || j < 0)
    return 1;
  h = 0;
  for (; h < p2; h++) {
 a *= j + 1;
    g = e * a;
    f += g % (j + 1);
  }
  if (f < 0)
    return 0;
  return f;
}
void i();
int64_t k() {
 uint32_t l[][8][10] = {0, 4, 7, 1, 4, 3446557846};
  int64_t m[10];
 int h;
  for (h = 0; c + h < 10; h++)
    m[(int)d(5, l[0][0][5] - 3446557842, b - 187) + h] = 1;
  i(m);
  uint8_t *n = &b;
  uint8_t **o;
  o[0] = &n;
}
```

The crash is:
```
clang: /root/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:7401: 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/hqP8vMG7b

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8VU2v27gO_TXMhriBTDuxssgiH88PD-hDC0xxuyxkS7Z1x5EylnJn2l8_oJwPp9MOYNgWSR8d8pCyCsF2zpgtrPawOi7UJfZ-3DZq1LZTLhNCLmqvv22_9Mbh_7Dxp7MdjMbYG2y8NvinjT2-fCRsB9UBHdBGbEYVeqMh34E4grjd12K6muuacuua4aINQn4IUVsXlz3k_5ncIapoG7xYF-XXiDVCfsRMSsj3U8C7txobIAm0uRsH7zrUQNK6iCbxcRHPxG-h92PEN6ANQnmNR0xftAldcJSaNrojIl5cKpKeQruZh7H7-bpFIJnyQYFQHqA84Nu0ZJbXMMTRxMvonnbprxQeltaPDAf5PjkPnAa_A-3TNU9DIdCOAd4QaP8EjNglaMMhqJ48zHfPzg6BVrzb7ftZTRGhPD6n2P46p3kGV1N7N92Bknj2B_Gsi-via8TfJ_ssPe6CnL5GHKZGhdVeTo9MwOqY8oNynwQs-FbyLbsv86JYr1alLNbM4EnAtOPphvTw_ajtVY2HTNikUk3SZOJZmkdZGHrqR6ANd-aKCXEeYsrg-lhxHi8Ppqlla3zBTJapGLzXLde5vlzF07Net6EB2rmpNrSuf-4H2vmZx18J3b5y_5TuPsfz4f7M5wGPPdrwmPvnyGZQroN8h0DV6H0Eqobh_fRyHv2baW5LftgaqPo8KhdaP54CUPVqmuhH-90AVR-8P9_Xy-Z8hnxXFiJj6ISQ7yDf3SJUtN5Vihcz7xwjRXwalHNmnLx8zF2i2ZsQX6tbk-5wF4IZORg5J5Lsn5CXX6yOqTW4bh9Mp5pvr9XNOp0D50G5g3dRWRd2WlsGUsNv9nQebGubxCIAyc5EJlP58SdbMBM64MGHeIh_8evH0XacTfJwm6yB1ghE-Mow2PgQ8eS1GVA5jUPiNrdqG1Q3GqOBCKjEVvEJv_wXsY8mKjsEbJTD2mDrL05jb0bDRepjPKcWoAqo6ryu_RCXfuyAqu9AVf_HJ_n-__-W9YS10Ntcb_KNWphtVlK5kWIj5aLfrqUmsS5M3dT5xuhW1EIXst2YllZKls3CbklQkQmRZ7LIhVyabCN1bUpVK7lWTQ2FMCdlhyXLzgwWNoSL2WZZJgqxGFRthpD-fERTbxLxT3DcprasL12AQgw2xPCAiDYO6Xc5fbE6zrpiqhxah79q0cVlHLY_VMjG_lIvG3-aDcDzWCTaPAVX5u9b-jsAAP__72Yg6Q">