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

    <tr>
        <th>Summary</th>
        <td>
            [SCEV] Another SEGV/stack overflow in LoopGuards
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:SCEV,
            crash-on-valid
      </td>
    </tr>

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

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

<pre>
    Similar to https://github.com/llvm/llvm-project/issues/120615. Looks like the fix wasn't a complete one. Here is an example:

```llvm
target triple = "x86_64-unknown-linux-gnu"

define ptr @f(i32 %0) {
  switch i32 0, label %bb4 [
    i32 1, label %bb4
    i32 2, label %bb4
    i32 3, label %bb4
    i32 4, label %bb1
    i32 5, label %bb4
    i32 6, label %bb4
 ]

bb:                                               ; No predecessors!
 switch i32 0, label %bb4 [
    i32 0, label %bb4
    i32 1, label %bb1
 ]

bb1:                                              ; preds = %bb2, %bb, %1
  %2 = phi i32 [ %3, %bb2 ], [ 0, %bb ], [ 0, %1 ]
  switch i32 %0, label %bb3 [
    i32 0, label %bb2
    i32 1, label %bb2
    i32 2, label %bb2
  ]

bb2:                                              ; preds = %bb1, %bb1, %bb1
  %3 = add i32 %2, 1
  %4 = icmp ult i32 %0, 0
  br i1 %4, label %bb1, label %bb4

bb3: ; preds = %bb1
  unreachable

bb4: ; preds = %bb2, %bb, %bb, %1, %1, %1, %1, %1, %1
  ret ptr null
}
```
Crashes with the same command line `opt -passes=nary-reassociate --scalar-evolution-use-expensive-range-sharpening`
godbolt: https://godbolt.org/z/4d3jo8jTz
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVV2P6jYQ_TXmZRQUj5MAD3mA5XL7UPXlVve1cpIh8a6xI9sB7v31lQ27ZT9Ku2pRpBifsefMyeiM9F71hqhm5YYhPk5aSWNkT5oYIiu3MzmFwbq6k0ZpedCzxnY_6m_qoLR0ECwMIYyeiTXDHcNdr8IwNfPWHhjutD4-v7LR2UdqA8Od8n4iz3DHMa94OYdfrX3yoNUTQRgI9uoMJ-kNw0UACa09jJoCgTU0h1_IESgP0gCdZURi6jw9VX55Utp8HaTrKUBwatQETGyBIZ6X1R9VkU3mydiTybQy0znrzRSLTbd0tFeGYAwOWJHvGS6VQGBY5gxXwBYblq8B_EmFdoAI5QwfQMuGdIxqmgKilDEIEs7f4jcY3sHEHax4g_EbrLxzrvoIY-X2UnrTMJFCP_FjYgO_WRgdddSS99Z5honOJyR6h9-Rj7-hzD_NOVKOfP21J8qmSd8hra6Li6AMS0xB46ASGVZu4qZ4CcdEJf4rN5cy0vZHu_zK-lXzXPrqVYHiH8TBO-Lgnd66YDfK4f-hHH-p-XZ1FU-kONl1z7UmTi9wkWDVHkaYdHilR55iGgeKp8h3TfC-YVJNItb0Ic1432QcyXaQjabnA8XfHHjXETet8W_fMaWjkLzETFrHnIvtrVOxfP3gpB_Iw0mFIdmflweKpneQpgMdvYhVuR0DZKP0njwTWyPdj8yR9N62SgaCLPOt1NJldLR6CsqabPKU0Xkk49WRMidNT5kfpBvJKNNfcve2a6wOUYI3Ln4B5tb1DHc_Ge6KTjza5ePvP2ddLbqVWMkZ1XwhqmW1KFZ8NtTYrppyj223Khu-bHPRdVRwKZq8XVSC40zVmGOZc17wknPB53yx2BeFKNuScElty4qcDlLpeTTwmHuWRkXNEVdczNL39tdBlTxerL89fPkerRsfGGIbpcysyY5Sq-46vlydxk8z9Z4VuVY--L_uDyroNPrSPeUW1saGgRx8-_L1O8OdD7J9Anskt9f2BMrEWTV-naTr_Gxyuv4vwy8VdazxzwAAAP__-AMJjg">