<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">