<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/121774>121774</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[InstCombine] Commuted pattern is not handled
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:instcombine,
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
dtcxzyw
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dtcxzyw
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/5q4zxdf1K
```
define i8 @single1(i32 %A) {
entry:
%l1 = icmp slt i32 %A, -128
%l2 = select i1 %l1, i32 128, i32 %A
%conv7 = trunc i32 %l2 to i8
ret i8 %conv7
}
define i8 @single2(i32 %A) {
entry:
%l1 = icmp sge i32 %A, -128
%l2 = select i1 %l1, i32 %A, i32 128
%conv7 = trunc i32 %l2 to i8
ret i8 %conv7
}
```
```
define i8 @single1(i32 %A) {
%conv71 = call i32 @llvm.smax.i32(i32 %A, i32 -128)
%conv7 = trunc i32 %conv71 to i8
ret i8 %conv7
}
define i8 @single2(i32 %A) {
%l1 = icmp sgt i32 %A, -129
%0 = trunc i32 %A to i8
%conv7 = select i1 %l1, i8 %0, i8 -128
ret i8 %conv7
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyslN1uozAQhZ9muLES2QPm54ILmghptU9hsEO8MnYWD902T7-C0L9tpWqrSlGw8Jzx-TjWqBjt4I2pQd4Boqb-4fr4BxBBHhM10zlM9fYy6YJ-rM9ElwhpA9gCtkPQXXC0D9MA2F4BW_k7uz7ok_gJvIGcbz_eaHOy3jBbMsh4tH5wRgCWNkUGKBvAikFxB7wxnqbH5QDesGXLCQbpkdl-vLDoiL0oDmwnsHyuw7UuGmd6YlbctEvVolgKt-Uq3kR98PfFqqNp9v3TvkNGgdlb78nQanurXriK4_L_IRT-P9Rgvgj1pHgC_A6oV5F9Kb4XBzfEXjl3c5Bx5-7HfRzVw96mb7_TjWElx-oTjq359wb0QSrvrtqzMf7eVPPKzxvrH0W3euXb8jnuTyNJdJ3qKq1UYmpRpLkocuRlcq7TSoo-73KDMjMV71SZyzLlfSWFLk-5SGyNHCUXPBdScJ7vdZWWKpc8E-KkNFaQcTMq6_ZrRGEaEhvjbGqBoiiyxKnOuLjNiKUE0sb6SH0YO-vNMi7wAIijjdHoXbiQHe1VkQ1-GyVTvch23TzE5SLYSPHlLLLk1gn0w0c6bD3lkR3COM5kNLsoIjN5ZiPzgdhZee2MTubJ_TuPLJ3nbt-HEbBdjd4eu8sUfpmeANsVLAK2G9t9jX8DAAD__w45YUg">