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

    <tr>
        <th>Summary</th>
        <td>
            [IndVars] Simple IR test crashes with "PHI node has multiple entries for the same basic block with different incoming values!"
        </td>
    </tr>

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

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

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

<pre>
    This bug was found by Azul FuzzGen IR test generator.

https://godbolt.org/z/1vd3zYzen

Run opt with -passes=indvars :

```
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "gen_05726"
target triple = "x86_64-unknown-linux-gnu"

define void @function_0() {
entry_1:
  br label %bb_2

bb_2:                                             ; preds = %bb_3, %bb_2, %entry_1
  %ptr_i1_13.0 = phi i1 [ undef, %entry_1 ], [ %ptr_i1_13.0, %bb_2 ], [ %ptr_i1_13.1, %bb_3 ]
  %val_i1_52 = icmp sle i64 undef, 2546175499358690212
  %val_i8_56 = zext i1 %val_i1_52 to i8
  br i1 undef, label %bb_2, label %bb_3

bb_3:                                             ; preds = %bb_4, %bb_3, %bb_2
  %ptr_i1_13.1 = phi i1 [ %ptr_i1_13.0, %bb_2 ], [ %ptr_i1_13.1, %bb_3 ], [ %val_i1_52, %bb_4 ]
  %val_i1_62 = trunc i8 %val_i8_56 to i1
  switch i16 undef, label %bb_2 [
    i16 -1, label %bb_4
    i16 1, label %bb_4
    i16 4, label %bb_3
  ]

bb_4:                                             ; preds = %bb_3, %bb_3
  %val_i1_77 = icmp ult i1 %val_i1_62, undef
  br label %bb_3
}
```
Stacktrace:
```
PHI node has multiple entries for the same basic block with different incoming values!
  %val_i1_62.lcssa1 = phi i1 [ %val_i1_52.lcssa2, %bb_3 ], [ %val_i1_52.lcssa3, %bb_3 ]
label %bb_3
  %val_i1_52.lcssa3 = phi i1 [ %val_i1_52, %bb_2 ]
  %val_i1_52.lcssa2 = phi i1 [ %val_i1_52, %bb_2 ]
LLVM ERROR: Broken module found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=indvars <source>
 #0 0x000055d1630a9c24 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000055d1630a7394 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f7b955573c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
 #3 0x00007f7b9502403b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4303b)
 #4 0x00007f7b95003859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x000055d16043148a llvm::SuffixTree::insertLeaf(llvm::SuffixTreeNode&, unsigned int, unsigned int) (.cold) SuffixTree.cpp:0:0
 #6 0x000055d162fe5c8e (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x371ec8e)
 #7 0x000055d1627fd933 (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2f36933)
 #8 0x000055d16050c6e6 llvm::detail::PassModel<llvm::Module, llvm::VerifierPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xc456e6)
 #9 0x000055d1627bcb2f llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2ef5b2f)
#10 0x000055d160517848 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xc50848)
#11 0x000055d16043d07a main (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xb7607a)
#12 0x00007f7b950050b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b3)
#13 0x000055d16050a1fe _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xc431fe)
Compiler returned: 139
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdWEtz4jgQ_jXmooKyJT8PHMhrJ7XJbipJTdWeKNmWQRthuyQ5r1-_LRmMTcwmM8NeloCDpNbXT3W3SKv8bf645gqlzQq9UIWKqilzlL6hxXsj0FXz_v4bK9H1PdJMabRiJZNUV3LmuBeOu2ifa61r5ZCFg6_gvarytBJ6VskVjN7h4z3n5P2vd1b2N903JapqjV64XqNpTZVigHHBy_yZSoUMXI_aCd3tux2SM3Rb5Y1g1xdACh8cgQZ1xUs9lSxvMpZPFd_Ughec5bM0A4J2q6oambFlwQUr6YZtd2PQbOkGEQ7he0uoqVwxjbTktejIXuNwGfrTpnwqq5dyKnjZvE5XZdPtap85K3jJ0HPFc-T4btGUmeYVcHBw7OAEOdFZS8hKLd-WXqctQqlEgqZMALcgTZcDWDsmQPQDL2OqGkyitioYUOLg8w6__boTZCsFzNRaLrm39MjMtVvrNUfcQ05whiBEWDHcCPMXdgaWh5t7vI4SeXsiYon2YjxTYYgCbIXg2aZGCvzBQ38vBg780IsCP0lIEIeJiz18iBAvg9AivLNXbfXoQ-sK8bjnAVjvwIfeOJggB-4hp3CP37NG31NjvvEOfXMC4--JOgvtSfxx_4Stf7SEUAdbDu1uzNuFloITn61hIjxiY8N8R4ws3dQ7JPKHBJ-t-0f8hvbKdC70T3zCyEdjRdE-mBtxEI6hNXZrmvGcsAu66GI0OT5omj1pSTO2T6JDirtv16iscobWkPE3IIFNceYkc2ZKgER6zZAy6TGlimcoFVX21KbqnBcFk0CLeJlVG16uEAjeQPLG3lhYzESmFB0L0y64WhL8hTBsKclothh378fN_ybJ4XE5ioJ_GOXm5vstury___PexNeZrJ6grm5sDWuLrtkFBq25oKZWIJpWUrO8M-vdzeXi4RKpJt1wjait2JLVQGTO10ENBk816QzgYCDE8-7ftJbV3yzTMORKWaddIQoFH3wpGggI4_dMUrUGx2-DaNaLKpQ3m7qLKheWkjtZrSTdIKiWzQbCwggB2l9BbYdnqxCTU_Zai0oyaeYELVdTU_ClUVRNTdJ4goWUl-1GNK0MBK1rM2503eiZQtOH0T7hvK3oDrncusvBxEXuqwuvIMi9kLg0ybCP7iR0B1aNR6PXA1-VVHwD7YURKzbF2sELU57bJTXLaqOsaz8dtneAHZHER4dgwOlTILwFioooTYIgiEjmouVSQqMFllqCX223cCV4Cs9t59HrOMxCrdeS0XymKpPrz9xXzwcUYL1nQwZsXOy7JEWScsW-gJ8Z5NAi-wQ2DpD9IbJL4iBpw_bHkDGGjQPkoG9j1yeeH1Nk4xhijywemqLgr4-SsXbMSxNLN4xCMYnHyP6AZOeY3s4kVgVOYSbk9cdxYiSHcyNy674OYNyDYV9MXLAgi3dG_ZXwt0YhkccAbmCWaMAvKvIEvHsifrggIcAN-MUDNwRuFrKw54acacpF-_0OGEBHzmB4vqdoe3RbfLu570yaplyaHcOVOwh9Jp9ZvoBD82bO-WC5neXqlpZ0BaqNMIIcYN5mBpQcBMNOlPBnQM2u5FSWzvwA7DgwdDJ0bJqluOgbxhj3uID_SythVgRghc5MJvO6w3j0otiPe1ICjrHUHa8ZJBs2zAXQ25Sr-227-Zm-j_bud0uztcVZjK3e8FRS-XZdFtU1XDQ_UlWV-NPWrisuRkB-afmIOgsp6ZuZ7TtoT2t89Cm5NaFoVuCNQ3rwzVKDYO2oFe933rYux6h2x31Hl5qVL_8_3aELXAiWQTR5B0UmdyOKNpSXp-KZRiFADnjig5IZuCmBmm_q4VJpKvWyJ8BXy6cPIAMu5CBvU69gqMU_XRIjANpxPd8iQUeqGwnl1HSBHklGrx8TNvfCIEkCHBI8yecE6lhCJ5prwebQTF-X-Xfo7aB1hgZqY64mu9-fbGsKVxR7E3Ew_s8uMhhPGinmP99VBxHYf7Ke52nghSzPqecFCYGGsYj8MA3jLEpyEuJ4Yq8tyqgNTEv2giyE-T0puJjwOXYxdmP4S4LI82YZzpIgy3KaFSkOIbh8l0HEiJmRw_zkNpFzKxLcDhQsCq602i-CW02zY61s8Gmj15Wcl5Ag1BN9oxPLfG6F_wckFedM">