<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/91178>91178</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[InstCombine] Miscompilation
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation,
llvm:instcombine
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
dtcxzyw
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dtcxzyw
</td>
</tr>
</table>
<pre>
Reduced test case: https://alive2.llvm.org/ce/z/_JyUGw
```
define i8 @func78(i1 %0, i8 %1) {
%3 = zext i1 %0 to i8
%4 = shl i8 %3, %1
%5 = freeze i8 %4
%6 = select i1 %0, i8 0, i8 %5
%7 = call i8 @llvm.fshr.i8(i8 0, i8 %5, i8 %6)
ret i8 %7
}
```
```
----------------------------------------
define i8 @func78(i1 %#0, i8 %#1) {
#2:
%#3 = zext i1 %#0 to i8
%#4 = shl i8 %#3, %#1
%#5 = freeze i8 %#4
%#6 = select i1 %#0, i8 0, i8 %#5
%#7 = fshr i8 0, i8 %#5, i8 %#6
ret i8 %#7
}
=>
define i8 @func78(i1 %#0, i8 %#1) nofree noundef willreturn memory(none) {
#2:
%#3 = zext i1 %#0 to i8
%#4 = shl nuw i8 %#3, %#1
%#5 = freeze i8 %#4
ret i8 %#5
}
Transformation doesn't verify!
ERROR: Value mismatch
Example:
i1 %#0 = #x0 (0)
i8 %#1 = #x08 (8)
Source:
i8 %#3 = #x00 (0)
i8 %#4 = poison
i8 %#5 = #x00 (0)
i8 %#6 = #x00 (0)
i8 %#7 = #x00 (0)
Target:
i8 %#3 = #x00 (0)
i8 %#4 = poison
i8 %#5 = #x9d (157, -99)
Source value: #x00 (0)
Target value: #x9d (157, -99)
Summary:
0 correct transformations
1 incorrect transformations
0 failed-to-prove transformations
0 Alive2 errors
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vl2PozYU_TWXFysRXEOABx6yk03VSlWl6cdr5cAlcWVwZJvMZH59ZYdNIJPRVNXuaJQE-5zje88xGGGt3PdEFWRfALFx9evb-QUQIdtEYnAHbapxMNrp5lw9UzPU1DBH1rFaWAK-Zgfnjhb4GnALuBVKngiXSp26pTZ7wG1NgNs3wO3fv5z__OkF4g3Ea1jF43-4bKiVPTFZMEjjdujrvAAsZMIAsxjwKcxglgCWDPIvFxLzQ5wB37A3enVshDOnmSwmkDRA7EGNKtwLBrUbJguY1hC90QhLJ9OriwQpqq_rjGVNyssmjDwwaqHU2FVwpLUHs5Shtzvm9ecKsPymY8iNo_loW7556N_DwcV__Ps8AkA-KRaQz4MA5Og3wK17QP4uGC_yLhtAfh-P544JhZVm4Ac5eYk56EFakw7mnWRz6iU2H9Mj6PRq9T4kz7_PiW-Af_2_Dvfad8p6PfQNtexFKmXIDaZnHXXanAGLXvf0Q8Loh5fvEMjMnOzOnD-M6G2rTSec1D1rNNkeMHfsREa2Z8Bkuru_Pj__9uwfOH8JNRDrpO2Eqw8zyKvojoqu7U969VUC8teYARbx9R67-X1D-KGiuEIun7_rwdQT5WLmbOB9JH3x9Kil1f3dVPY5e_U5JP8QMvoszJ7cj6u9bDw7yXK_SxZleZW5mMZOPjCf3KOlLsXNMR8KjrJD1wlznuzymNXaGH-7u9mest8ACZP9J5CYtUIqahZOL45Gn-hj4DoccoyM0cbePXujpuJNyUsRUZXkSVoWxaoso0PV8rxOy6bZiVrwJMlabFcYJylvhSgzLiJZYYxpnMWruEzTrFw2IkVKYsyxyHcJFpDG1AmprqdrJK0dqCqTJC8iJXak7HiWd9LWujtKFUr3Rzo-AaInAl_L3rpadzvpnx3htDeVn1rshr31Z5W0zt5WcdKp8JLwc2_d08jLNuzX2SLRYFQ1fxnYS3cYdstad4DbsPbly_v7D9UOcBs6sIDb0MS_AQAA___IGjHt">