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

    <tr>
        <th>Summary</th>
        <td>
            [InstCombine] fold bit-hack form of signbit test
        </td>
    </tr>

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

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

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

<pre>
    Missed fold in IR noticed while trying to fix #57381:

define i32 @src(i16 %x) {
  %a = ashr i16 %x, 15 ; -1 if negative, 0 if not-negative
  %r = add i16 %a, 1 ; 0 if negative, 1 if not-negative
  %r2 = zext i16 %r to i32
  ret i32 %r2
}

define i32 @tgt(i16 %x) {
  %a = icmp sgt i16 %x, -1
  %r2 = zext i1 %a to i32
  ret i32 %r2
}

https://alive2.llvm.org/ce/z/UFnPAb
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVUl1vozAQ_DXmZUWEDYbwwEPTKFIfTjqddD_A4AV8Z3Bkb9q0v_4MSRr1pFZ3Eh_27DLMjLd1-rX5ZkJADb2zGswMTz9gdmS6CL2MxiKQfzXzAOSgN2dgIpdVvuUsf2DZnmXXp8bezAgmF8CKLPiOia3hZWyXZyZqYNXu0ggLpIDle1Bh9HBvegQuI76DlIPpYcZBkXnGpZCtgKP0Hbxz-QuX1jcqtVKtTNnfRPwrIrEyveGZblR-cR093bo80sXi0n21X-0_z4EG-occTDcdIQz0IYuUfyrt8uX_KhuJjmE5NXGIl7LRvNhY-zxtnB8i0sWADm_x_nmYvz-0CTa8LLks6kzIRDe5rvNaJWTIYsPk7mkO9OimNrplcn-ZntZQOqrud9z5CVwPwQxzBIEwUHLytvkoYjA0ntpN56a4WaRcX-nRu1_YxewOcTZPGOIiDl1dJGODvK4yJeo27-tCl5nq5FZj2fFKtFJ0eWJVizYsEpkQM77AShHXUWZiGpEJkW1FKbjIC7mpRVdtlZJCcyyw5PHQcFLGvieT-GaV1J6GEIvWBAr3ogqLRVwTWfjViUbnG-9IEXozjJSsv29W-X8A8ZD80Q">