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