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

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization: fold zext nneg + GEP into direct GEP with the nneg index
        </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>
    Example: https://godbolt.org/z/fh7WM5fKv

Alive2: https://alive2.llvm.org/ce/z/ChnMWA

```llvm
define ptr @src(ptr %2, i32 %idx) {
  %idx.ext = zext nneg i32 %idx to i64
  %add.ptr = getelementptr inbounds nuw i16, ptr %2, i64 %idx.ext
  ret ptr %add.ptr
}

define ptr @tgt(ptr %2, i32 %idx) {
  %add.ptr = getelementptr inbounds nuw i16, ptr %2, i32 %idx
  ret ptr %add.ptr
}
```

I found this pattern in function `SSL_get_sigalgs` in `openssl/ssl/t1_lib.c` 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykU01vpDoQ_DXNxQoy5vvAgWTC09N7kVbKIcfI4Aa88tgIN5PZ_PqVmckm2T3sSishsJvqcpVVLb3Xk0VsIL-F_BDJjWa3NnfSDmiMiXqnvjX3Z3lcDELasplo8ZC2IDoQ3eRU7wzFbp1AdK8gunEunx7y8b8T8BZ42xp9QvFro9zrsTGn47V5wCvD3WwfntpLOxT88gQg8FbhqC2yhVYGGffrAKLaNyIXIO6YTkVYa3UGUTMob4G37FqJ8UwM0gN7DQtrcfoAZ-SYLrI3uFQq3nnTA5uQ0OARLYWKtr3brPLMbi9MJ0U49ZOCIvtw3s63Ir1BrrzBWXm4WPxsiSb6U0t_ofGd8nf63u7_ovVfNgZiRrP2bJFEuFqmLRs3O5B2lkHBHx__f56Qnr2epJk8FDwgoOBuQeu9AdFd3pQ8G93HQ0BEqklVndYywiYp0yovM56X0dwMckBeib7Cild9gthjXWUpT9IK5aiGSDeCi5wLnvI6yZIy5lVR9mmd8r5CHKoeMo5Hqc2PrEXa-w2bRORZUUdG9mj8nn4hLL6w_S8IEYZhbULTTb9NHjJutCf_TkOaDDYP2ntUzC2kj_pVhlsIaR-dUR-CBuKW_XP_hWlLjim94kD7_kXTzGjGaxytwnO0rab5aco0zVsfD-4Iotsn4fK5WVb3FQcC0e2qPYjuauvUiO8BAAD__7AfLVs">