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

    <tr>
        <th>Summary</th>
        <td>
            Missed Optimization: -(x & c1) >> shamt | -(x & c1) —> x & c1 ? -1 : 0 when 2^shamt > c1 and shamt ≤ bitwidth(x)/2
        </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 i64 @src(i32 %arg0) {
  %1 = sub i32 0, %arg0
  %2 = and i32 %1, 63
  %3 = zext nneg i32 %2 to i64
  %4 = sub nsw i64 0, %3
  %5 = lshr i64 %4, 8
  %6 = or i64 %5, %4
  ret i64 %6
}

define i64 @tgt(i32 %arg0) {
  %1 = and i32 %arg0, 63
  %2 = icmp ne i32 %1, 0
  %3 = sext i1 %2 to i64
  ret i64 %3
}
```
Alive2: [https://alive2.llvm.org/ce/z/yLQgJp](https://alive2.llvm.org/ce/z/LqeBrj)
Example: [https://godbolt.org/z/hEKWGoeq3](https://godbolt.org/z/7KxvbWbq3)

Found this pattern in function bn_rshift_fixed_top in openssl/crypto/bn/sn_shift.c
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMlEtvozwUhn_NYWMlMseYy4IFacInfe1oNKsuIy4GXDmGYpOk_fUjk5Bm2i4qRbHk9zkXv8emMEa2WogU-Ab41ism2_Vj-lDoSiilvLKv31II6eWn1PEANKtFI7UgMgwIBNSMFWAsGRJAXowtBUwIRBugGXFbPgG2JWYqiWMo4MMNvBI4E4WuyTWL76CQLTqb9XdxtkRr0S4UEtu7JhYsuBXS5jR3txS7ZeIzokw3XrpHHjgkXvRw1vubyq8JLjVGYRchBJpBtHX_n_2wrf2BH3envTD3B74YIqvDQFzeO1Pov54Y54n0v7hx1yn76HQZI9AsU_IoEFhGgG86awcDLAPMAfNiltZu1ut-bAHzSgDm74D529Of9v8B-BYw_nHQ06vYjC-ACdBsdy4OgxLf1m37uuyVvYa7yG73-PxfL17ZdxW_4tHj-Vg-l6_sUgtolveTrontpCFDYa0YNZGaNJOurOw1KfV-NJ1s7L6RZ1HvbT84vR-ENka5M4xvg-0B81ID5kbvZ3pdeXXK6oQlhSdSPwoimvhhmHhdKso4bjBsBG14xf2G85AGLGFVnARNVXFPpkiRU-4jMj_AZB3RMKwL7keR3wQxBhBQcSikulnpSWMmkfosCQPfU0UplJlfK6IWJzKrgOge75i6oFU5tQYCqqSx5iONlVaJ9Jc0RtTk92DlQb4XzgY3jBVgfCaAIan8-bqyHbAdMV1xsASih6_ADiGmkAQOWwQCLCcrt2SEklMnNEHgu2sWtnOIu_fXDZcigSwgpbQnWdvO1XCzwxy9aVTpp4FL203luuoPgPn8Jbosq2HsX0RlAfPZDAOYX906pvg3AAD__6NWXEg">