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