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

    <tr>
        <th>Summary</th>
        <td>
            [ARM][MachineBlockPlacement] "Unexpected block with un-analyzable fallthrough!" assertion failed
        </td>
    </tr>

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

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

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

<pre>
    This showed up when trying to reduce what turned out to be an unrelated, already reported issue:
```llvm
target triple = "arm"

define void @0(ptr %0) {
  br i1 poison, label %2, label %3

2:                                                ; preds = %1
  store ptr null, ptr %0
  br label %4

3: ; preds = %1
  br i1 poison, label %5, label %6

4:                                                ; preds = %9, %2
  ret void

5:                                                ; preds = %3
  br i1 poison, label %7, label %8

6: ; preds = %3
  br i1 poison, label %11, label %12

7:                                                ; preds = %5
 br i1 poison, label %9, label %10

8: ; preds = %5
  call void @1()
  unreachable

9: ; preds = %7
  store ptr null, ptr poison
  br label %4

10: ; preds = %7
  unreachable

11: ; preds = %6
  unreachable

12: ; preds = %6
  call void @1()
 unreachable
}

define void @1() {
 unreachable
}
```
```
$ llc -version
LLVM (http://llvm.org/):
  LLVM version 17.0.1
  DEBUG build with assertions.
$ llc repro.ll
llc: llvm/lib/CodeGen/MachineBlockPlacement.cpp:2816: void (anonymous namespace)::MachineBlockPlacement::buildCFGChains(): Assertion `(!TII->analyzeBranch(*PrevBB, TBB, FBB, Cond) || !PrevBB->canFallThrough()) && "Unexpected block with un-analyzable fallthrough!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc repro.ll
1.      Running pass 'Function Pass Manager' on module 'repro.ll'.
2.      Running pass 'Branch Probability Basic Block Placement' on function '@0'
 #0 0x00007f785407cb36 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm/lib/Support/Unix/Signals.inc:602:11
 #1 0x00007f785407d08b PrintStackTraceSignalHandler(void*) llvm/lib/Support/Unix/Signals.inc:675:1
 #2 0x00007f785407b233 llvm::sys::RunSignalHandlers() llvm/lib/Support/Signals.cpp:104:5
 #3 0x00007f785407d771 SignalHandler(int) llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f78538c9c90 (/usr/lib64/libc.so.6+0x39c90)
 #5 0x00007f785391a1ec (/usr/lib64/libc.so.6+0x8a1ec)
 #6 0x00007f78538c9be2 gsignal (/usr/lib64/libc.so.6+0x39be2)
 #7 0x00007f78538b24ed abort (/usr/lib64/libc.so.6+0x224ed)
 #8 0x00007f78538b2415 (/usr/lib64/libc.so.6+0x22415)
 #9 0x00007f78538c2542 (/usr/lib64/libc.so.6+0x32542)
#10 0x00007f78579967ec (anonymous namespace)::MachineBlockPlacement::buildCFGChains() llvm/lib/CodeGen/MachineBlockPlacement.cpp:2817:12
#11 0x00007f7857993861 (anonymous namespace)::MachineBlockPlacement::runOnMachineFunction(llvm::MachineFunction&) llvm/lib/CodeGen/MachineBlockPlacement.cpp:3412:27
#12 0x00007f7857a7d58c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
#13 0x00007f7854d4db85 llvm::FPPassManager::runOnFunction(llvm::Function&) llvm/lib/IR/LegacyPassManager.cpp:1435:23
#14 0x00007f7854d530bf llvm::FPPassManager::runOnModule(llvm::Module&) llvm/lib/IR/LegacyPassManager.cpp:1481:16
#15 0x00007f7854d4e4fb (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) llvm/lib/IR/LegacyPassManager.cpp:1550:23
#16 0x00007f7854d4e00a llvm::legacy::PassManagerImpl::run(llvm::Module&) llvm/lib/IR/LegacyPassManager.cpp:535:16
#17 0x00007f7854d533c1 llvm::legacy::PassManager::run(llvm::Module&) llvm/lib/IR/LegacyPassManager.cpp:1677:3
#18 0x000055ae4e1dee4f compileModule(char**, llvm::LLVMContext&) llvm/tools/llc/llc.cpp:754:41
#19 0x000055ae4e1dd0b5 main llvm/tools/llc/llc.cpp:416:13
#20 0x00007f78538b3eea (/usr/lib64/libc.so.6+0x23eea)
#21 0x00007f78538b3fa5 __libc_start_main (/usr/lib64/libc.so.6+0x23fa5)
#22 0x000055ae4e1dc891 _start (llc+0x2e891)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0WNtu2zwSfhr6ZlCDpEQdLnxhJ3W3QIMN2nRvA4qiLf2lKYOkmniffkFKtiXVOTZbFFYkDb_55sAZjri19VZLuUBshdj1jLeuasziHy6aQh3wrGjKw-Kuqi3YqnmQJbR7eKikBmcOtd6Ca8DIshUSHiruwLVGyxKa1vk3hQSuodVGKu5kiegVcGUkLw9g5L4xTpZQW9tKFC0RvkZ4iRLc_Vfq96575LjZSgfO1HslAUXXgCjlZoco7deE31Juai3hd1OXgGKMEc32zgCiDCOaA0pXnRxAYaAmsG9q22hPSfFCKi9IR3fREJ2iaAlv_IeiFeyNLG1PmpEjA-saI8HT061SXuuJ6pnjiUg8JBJ5Ik8jP2kbG90lQ8j4I2zLPX7wYc_ESBeCMdTEPkJT9KKt6eguGzJILrrvZUhCxrej1Es_wizWc3iSQj5mgIcMsotmHSFBcKVOO4MgmiGaH9_53clFxQslh4j5RcT0-QzuWb-UwwQ_D_4EJUIuLkteWkafX_aMc_5ETK-fqTn94kGteQbgWOgu39IYlBLw6bc0tj669Nu3_9wAolnl3N5XTLpGdO0L5bwx23CXnwopQJDu1wNJ53h-qhLXn1c_v0DR1qqEh9pVwK2VxtWNtvMxASP3ppkr1T1VSnhfhtpM16ouEF1fNaX8IjWi6xsuqlrLlWrEr1vFhdxJ7eZi77nSjISt17mKZlw3-rBrWgua76TdcyF79tHyIk73KlC-Wn-5qnitbR-raAnLI3_wLvSPyd3Xr59Q9Jlrrg7_lSvDtajCm-Wtkb9XK5-zd91l3V2uGl124btCqS9mpJP0MILrNVfqrjJNu616xV6WJogmviP91PJxL4VvaYVn3jm21Z86Bj4FYMOVckcI4hsYTWHDayXL3u-33z4vf3wG2xa72gGHot32rdL3Ux94e4r8tnZVW8xFs-vToL982pvmHykcouvQXC2ia-C6hFoL1ZYSXCVBGG4rKLj45QwXslf_w3HxC8p2tz8lEp4jnN-aZmv4DrjZtj4atkuDaX4QL_u91dqfDPbcWkA0XbdahNDc-gc3XPOtNN7wRsOuKVvf1Gl6AqJpz4VeAuviCLemKXhRq9odYMVtLSBkC5zTpcPfHHUjmnaHgmORQTTCgB8xxjjdpBmLcSqKKOlyO-SaPdjuj1tTaxc8c2dCnmZnIcMf7hvrjOS7kApXUHvl-XiP_Gj3PoSIrn_q-tE_qLeaKzuvtd9QCfYlipAzNTKhVuKsgAmPDuNfXJfK-zMLzZYu36w89V15oJtOdBc0ii655XurRxT67fiU8qPWrh4Q7E8d7Kw1mlqcpgSmJr7DtzGJxubFQ0VRJnKRYwjU1601HWwSd1cxt808QXSFHyMvd-4MiEZsBJQTTqR4BVDm5UZAyZRRISlsbTDjVcwKSUeA6RiwoLEsgRe-iLwMR730CC77A46w1wERNgLKJ4ZSFtPXGOjlTkB-d4x2bprnSdq5_gO7yjubnD8Kng6HNCJkwjTKEvIXTE2r_63798e6OqpHf7xL3mlLFIdz07FeeltGhSHlackyAU-q9tV-QPoi2zfRHAL3JHN_IszODMdFpIzLImMDhutbv_bYgf6C29fviK6_yS0XhwHisbTFka-oNDrzise8WISLzSt43YTuOI5v_-jNnDLvKpKcObGJr2S8KV7MzP8_UcbwxHnJlCjGfOA8FZD6Tn3G-7rbqxPDj2DGQlSHHkynUY0EeZnYh5IiSeorzsBbx2LNGJexJKWU8QZEs9vXSp7CJCpuwlFhGWbKEws_Mlw12slHN6bimkbZcLwU3W-vP2Vx6LFn_flEf4kLBjte65eg4jAgkLMpFE_6TiQlf03f8XLDdkHJFGjDGdzf-2X31nHj7gPB10BvOBtB04m5IssJdKAQAiy6hTLLyWnhsug-fflI-DHan7cHPfc0C87KRVTmUc5nckGSnJEso3E8qxYyk5s0S7MoSbJ4IwuaiFxsGN8UySZKsnhWLyimEc4pxixKaTzflHkpKaOpYFGSpgTFWO54rebH8XEWRoVFkmQsm4Wx3YZPgpRq-dB_pKMUseuZWYQho2i3FsVY1dbZM4qrnQrfEpffbxC7Rmx1uZux63fPTOdhtR-dZq1Ri_ePRsHk_wUAAP__2swDbg">