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

    <tr>
        <th>Summary</th>
        <td>
            [LV] Crash in llvm::VPlanTransforms::buildPlainCFG
        </td>
    </tr>

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

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

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

<pre>
    See also: https://godbolt.org/z/xaKeMP6zh

This input:

```
bool a;
short b;
void fn1(bool c, short d[][2][2]) {
  for (char e = 0; e < (char)b; e++)
    for (char f(c); f < 020; f += 2)
      a = d[f][f][f] ?: d[e][f][e] - d[e][f + 2][e];
}
```

compiled with: `-std=c++11 -Ofast -floop-interchange  -mcpu=grace`

Results in this crash:

```
 #0 0x0000000003c90a38 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c90a38)
 #1 0x0000000003c8e40c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3c8e40c)
 #2 0x0000000003bde738 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007bd8f5e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000000000589fc68 llvm::VPlanTransforms::buildPlainCFG(llvm::Loop*, llvm::LoopInfo&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x589fc68)
 #5 0x000000000574ceaa llvm::LoopVectorizationPlanner::buildVPlansWithVPRecipes(llvm::ElementCount, llvm::ElementCount) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x574ceaa)
 #6 0x000000000574d6a3 llvm::LoopVectorizationPlanner::plan(llvm::ElementCount, unsigned int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x574d6a3)
```

I haven't created an IR reproducer yet.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVV1v4ygU_TXkBTki4M8HPyTpZne0s5qqrbqPI4yvYzoELMBt2l-_AruTuBqtdqVGjvi43Ms593CBOyePGqBG2Q5lNys--t7Y2j0ZsO0J5BPYVWPa1_oeAHPlDGJb3Hs_OMS2iB4QPRxN2xjl18YeET28IXo48z_hr9v8rUdki8j2oZcOSz2MPvjEKZST-SPbxhiFOWI7RLauN9bjZho8G9niTm8QLeMagegeTyvaCS7KdvSqoRVGRfDEuDMWI1qKnlsMGLEbTBDbxe7-3YBo1cRJRHfxq6Lr0rkLnWBiO9xFb0LJPKC7EJheHDHmca8Ar5uAXTUYsUNIX7DCwhpGOFkYQnRML-YpJai4-ZA9RLbCnAapoMUv0vdhA5STxPkWsRsxUdtscPKt487jpFPGDInUHqzouT4CxslJDCNiN0fLBfyMegduVD4Ih30QUFju-l8KiBFlBJMzef8xURHOSqzU8yl4sK17dVPn1krt7z0XPx7ibrS8LLL85btx3gI_IZoHsaX2UVRaInowg0f0MJO1CZwHZSzYMKe4PibejvoHoodG6ve5d2F35DxjmrVClG2WiEtIifgV4r0Crsfhm76XR80VouWoY820WJmwxWfhiwgu-OgCX9NCwUq8DyLcgTDPYF8nQH9w3aqwTTlna7Fmb7SHs1-LYUBsS-J_is_m-EXTll0GKc0omZko2YQqLvPveZooqcdzctTjZBBrZ9Z5hBxdLoDTa8BZWXUivz4Cj7eK6wfLteuMPc3JbUap2lvFpd4ffl8chq_GDIhuwylYTn7RnYnH43PyPgO90MgWNIpUAOcfIDyC8MbKN-6l0YGWBnvFJzJ1f0vfP97egZADuAW13xScQPu9GYNg1_yWlk8iOFG4EMw_EGxzzv4zwUFx_a9kfhbHJ9buDHKi8OHy-4J7_gwa0cJjYYF7aDHX-MsdtjBY044CLH4Fv161NWsrVvEV1JsiY4TleV6s-roB6LJUdEJAwaqmzAWtNh0jDEjVtC1byZoSmpGCkk3JirRYd90mLyhA05CM8DZFKYETl2od0hLewZV0boR6k1YFIyvFG1AuvrCUanjB0YpouN1Xtg5OSTMeHUqJks67SxgvvYpP89fH8ELEyg4X8v-pqtVoVf3hxZa-H5u1MKdQ0yHW1CSDNU8gglQRokP0MHN4ruk_AQAA__-ZuGo9">