<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/143957>143957</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization: fold (icmp eq a, c1) | (icmp ult f(a), c2) to icmp ult f(a), c2
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Cancelll
      </td>
    </tr>
</table>

<pre>
    ```llvm
define i1 @src(i64 %arg0) {
  %1 = lshr i64 %arg0, 32
  %2 = trunc nuw i64 %1 to i32
  %3 = xor i32 %2, 55296
  %4 = add i32 %3, -1114112
  %5 = icmp ult i32 %4, -1112064
  %6 = icmp eq i64 %1, 1114112
  %7 = or i1 %6, %5
  ret i1 %7
}

define i1 @tgt(i64 %arg0) {
  %1 = lshr i64 %arg0, 32
  %2 = trunc nuw i64 %1 to i32
  %3 = xor i32 %2, 55296
  %4 = add i32 %3, -1114112
  %5 = icmp ult i32 %4, -1112064
  ret i1 %5
}
```
alive2: https://alive2.llvm.org/ce/z/wc2PXT
godbolt: https://godbolt.org/z/o8nqYz577

Occurrences in llvm-opt-benchmarks:
typst-rs/optimized/18cop7j4xops9f9h.ll
%1 = lshr i64 %arg0, %c0  ->  %.sroa.510.0.extract.shift = lshr i64 %.fr39, 32
%2 = trunc nuw i64 %1 to i32  ->  %.sroa.510.0.extract.trunc = trunc nuw i64 %.sroa.510.0.extract.shift to i32
%3 = xor i32 %2, %c1  ->  %130 = xor i32 %.sroa.510.0.extract.trunc, 55296
%4 = add i32 %3, %c2  ->  %131 = add i32 %130, -1114112
%5 = icmp ult i32 %4, %c3  ->  %132 = icmp ult i32 %131, -1112064
%6 = icmp eq i64 %1, %c4  ->  %133 = icmp eq i64 %.sroa.510.0.extract.shift, 1114112
%7 = or i1 %6, %5  ->  %or.cond38 = or i1 %132, %133

typst-rs/optimized/1mrwywpkq81cby93.ll
%1 = lshr i64 %arg0, %c0  ->  %.sroa.514.0.extract.shift = lshr i64 %142, 32
%2 = trunc nuw i64 %1 to i32  ->  %.sroa.514.0.extract.trunc = trunc nuw i64 %.sroa.514.0.extract.shift to i32
%3 = xor i32 %2, %c1  ->  %145 = xor i32 %.sroa.514.0.extract.trunc, 55296
%4 = add i32 %3, %c2  ->  %146 = add i32 %145, -1114112
%5 = icmp ult i32 %4, %c3  ->  %147 = icmp ult i32 %146, -1112064
%6 = icmp eq i64 %1, %c4  ->  %.not27 = icmp eq i64 %.sroa.514.0.extract.shift, 1114112
%7 = or i1 %6, %5  ->  %.not = or i1 %.not27, %147

regex-rs/optimized/1rguw48xrsv49k4z.ll
%1 = lshr i64 %arg0, %c0  ->  %.sroa.6.0.extract.shift.i.i = lshr i64 %754, 32
%2 = trunc nuw i64 %1 to i32  ->  %.sroa.6.0.extract.trunc.i.i = trunc nuw i64 %.sroa.6.0.extract.shift.i.i to i32
%3 = xor i32 %2, %c1  ->  %756 = xor i32 %.sroa.6.0.extract.trunc.i.i, 55296
%4 = add i32 %3, %c2  ->  %757 = add i32 %756, -1114112
%5 = icmp ult i32 %4, %c3  ->  %758 = icmp ult i32 %757, -1112064
%6 = icmp eq i64 %1, %c4  ->  %759 = icmp eq i64 %.sroa.6.0.extract.shift.i.i, 1114112
%7 = or i1 %6, %5  ->  %760 = or i1 %759, %758

3 Occurrences
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcl81u6ygUgJ-GbFAsOICxF17ktpPdaGYxi5mlg3HCrWOngJu2Tz_CP2l-nFQ32V2paiX4OAfO-Ypw7pxZ11pnSPxA4nmWt37T2Owpr5Wuqmq2aoqPDMWk_6mqty0ii0KXptbYUIw4cVYhSEzMMQKR2zVBkGIkfyCywGGIYsSeceU2Fp9AT5jByEDHeNvWCtftfgQp9g02XxjrsPfGhsFuXQgjBKTxiPAOyYtiRFhA5pRSTukhkOgoo7Y73FZ-RPmIAon5iMZfqH49bCyQZzFlB4a90W5dQEKqbt5qP4xLRBZIPoffZ4X0a__bFvLr_OLr_KNViCzyyrxpQGyBN97vHGILBEsEy348Ct5FjV0jWCqNYPmJYLlX8Pe__yCyWDfFqqn85eJhYlgY1jRJ_frfp5CyL_9fSrXW6lpph02NQ5Z5s_Pzla7VZpvbly4WWfiPnfNz60KEnTdb86kLBEuaqGYnf_L3ZufSMt1EVRXi3uoUAqEIxnPE_ujqFznb5JGgJCKRfvc2Vz5yG1P6iwhRaVl6aPb3rf4mSb9uMsL1PR0kuqpQOB89Sk0ZOeeu7uZYwasChgRwkoCec5SRM1VvixpCspOQMAlTRs-8vnk9hLD8JCybYq9W-_SKuXHBHOVobKSaumDJKUrZ2BzKWK_-NaW3dv-x3728JlStPlL2gNL8W6Uph8eE5r8m9OWO7hCai2tCX-zmPqF5fCE0F48JzeW00Dx-ROiobjzIW05fFPwep0OaU6pPPBrNh8vc6rV-nzDarts9T96te-PpC_-82-j4_DCRicxFDNm34F6n43OHDkmuWD29q1_3Wg6Nv_B6ckd3mS2Hbh9xUsQPmS1FMglLIR8xW4r0utaTFb9HbBmTU0iKdMCkSHqpGT56o8yKjBUpS_OZzqjkqRSJSPlsk8GqULEWLEmoKIsCBCmZTKGAGPKk1GxmMiAgSEwBCGGUR1qLlRKyLBhPWCEl4kRvc1MdXloz41yrM8pZKuSsyle6ct03AkCt97ibRQDhk8Fm3cNp1a4d4qQyzruvMN74Smd_Gud0gYf_y9ybpg7PtbKpChzevEOd83B8Rft379NhJjS2RJDkCLoCKQhEcHx6dtbaKjt7Chq_aVeRarYIlt1XTP9nvrPNT608gmV3pHB7DGd-y-D_AAAA___wenHP">