<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/154000>154000</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed optimization: eliminate redundant range check
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zxt5
</td>
</tr>
</table>
<pre>
```
define i1 @src(ptr %arg0) {
%v0 = load i8, ptr %arg0, align 8
%v1 = icmp ugt i8 %v0, 28
%v2 = and i8 %v0, -2
%v3 = icmp eq i8 %v2, 48
%v4 = and i1 %v1, %v3
ret i1 %v4
}
define i1 @tgt(ptr %arg0) {
%v0 = load i8, ptr %arg0, align 8
%v2 = and i8 %v0, -2
%v3 = icmp eq i8 %v2, 48
ret i1 %v3
}
```
Alive2: https://alive2.llvm.org/ce/z/PizgLm
Godbolt: https://godbolt.org/z/4aezssq38
Found the pattern in https://github.com/dtcxzyw/llvm-opt-benchmark/blob/main/bench/llvm/optimized/InstCombineCompares.ll
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysk9Fu4yoQhp9mfIMa4THUzoUv0lQcHekcaV8Bm6nDFoMLOG3z9Cs7adN2pWovVkJIMN_8M_MjdEp28EQtyDuQ94We8yHE9vSSZdEF89rCLb8svjP0YD0xWzIQPMUesJlyZIBSx4EDbhnUd8B3bLk6cgbVPXNBG2YbwD37xO6ZdnbwrHnny5W3_TixecjMNmeVBcUrhSulvfkE3OACLMfqqkJPbwwujLiKiKtIea69AGv6ykTKbxEBfAf1_bJ_MSAP-e8a8N1ofzbbh76ra98fXvC8ds4eCaHasUPOU4JqB6gAlV7vN84dx02IA6DqCVCdANUPexr-G4Hv_gmmCy7_njycA5fEJUdoOqX0VDXnqirM3rB8IDbpnCl6Zv1XDZsPc7fpwwioTO5fTq_PgGpp6CZM-aYj3x9GHR8BVedCB6hGbf1yWiIXFFCFKdvRnsgAqn99yvswdtbTPoyTjpQ2zhWmrcy22uqC2rKWUnCJ8rY4tA0XuhRdI0TZ9I00vJGyNmZb84rXhvrCtshR8qasuahEebvpqwr1tpa0lf3DA25BcBq1de9GFjalmdpSCs554XRHLq0fDtHTM1ujgLj8v9iuw3bzkEBwZ1NOV5lss6P2f5sSGXYZUWcb_PIa5Oxovc7EIpnZG-0zi9oPxPoD9Y_FHF37jdsX49bqUww_qc-Aam0tAapL78cWfwUAAP__AWo4yQ">