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

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    From: https://github.com/rust-lang/rust/issues/116272

```llvm
define i8 @src(i32) {
start:
  switch i32 %0, label %bb2 [
    i32 0, label %bb5
    i32 1, label %bb4
    i32 255, label %bb1
  ]

bb2: ; preds = %start
 unreachable

bb4:                                              ; preds = %start
  br label %bb5

bb1: ; preds = %start
  br label %bb5

bb5: ; preds = %start, %bb1, %bb4
  %.0 = phi i8 [ -1, %bb1 ], [ 1, %bb4 ], [ 0, %start ]
  ret i8 %.0
}

define i8 @tgt(i32) {
  %_2 = trunc i32 %0 to i8
  ret i8 %_2
}
```

https://alive2.llvm.org/ce/z/cT9KrY
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVMuOmzAU_ZrLxkpkX-MACxaTidhU3XXT1cg2TvCIQGSbqTpfX9mEmZCOUjWKwI9zOPctvbenwZgaxB7EIZNT6EZXj6-mlZka299148Yz8CfShXDxwJ8AG8DmZEM3qa0ez4CNm3zY9HI4XdeAjfV-Mh6wYWyHBQI9AH26Pnd0_vf923k-as3RDobYkkBOvdOApeUIWBEo9jPEB-lClE87QvwvG3RHLEcCKCjgM-mlMn3cKYUk-nOFkoS6h4j1Nbu7ztfXKMQdgC0AEIdb95TCGC7ge3JxpvUE-CEyZgdmzjQ4I3UnVW_W1DxS_-v3UIco94XLixj7p52P-eIBH5-XKC2rj4ACii1N6EtnU87Fnmw-gSxFNO7Entzwb4_p9TiJfWaAEGdC-mTUuFpbrNKzKrVwCl-UWjLxBZOJwU2D_qgyEkZiy7-1XvBea6nxW-l1B8nevhncxibYji62jjaAzXtc_Ki-uZ9ZW_O24pXMTM121Y4yzBnLulrn1ZErc-TU5KXmpWyrQlEtFRaFKTDPbI0UOa2wYiXnnG1Lo6nQRpVH1lbFroCcmrO0_Yd6lvq13hVljlnKuF8mgqsjaKOmk4ec9tYH_0kLNvSm_m69Ny0ZL8Ge7bsMdhyyyfX1g5GRen9-bS5ufDV6NTWSIX8CAAD__6H-O5E">