<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63266>63266</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[BasicAA] Incorrect AA result due to overflow
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nikic
</td>
</tr>
</table>
<pre>
```llvm
; RUN: opt -passes=aa-eval -print-all-alias-modref-info < %s
define void @test(i1 %c, ptr %base) {
entry:
%offset16 = getelementptr inbounds i8, ptr %base, i64 16
%gep1 = getelementptr i8, ptr %base, i64 -9223372036854775792
br i1 %c, label %if, label %join
if:
br label %join
join:
%phi = phi i64 [ -9223372036854775808, %if ], [ 0, %entry ]
%gep2 = getelementptr i8, ptr %gep1, i64 %phi
store i8 0, ptr %gep2
load i8, ptr %offset16
ret void
}
```
Produces:
```
NoAlias: i8* %gep2, i8* %offset16
```
Which is incorrect.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVNGOpCoQ_Rp8qdhBEMUHH-zpdHJfJjc3udlnVOyuWVoMYG_m7zdg98z0zkw2MWLB4XDqWIXyHk-z1i0ReyIOmVrD2bp2xp84ZL0dX1tS0e0x5noh9EBoR_ge_vv_mfAO7BIgX5T32hN-UCrXV2UgXxzOIVfG5Mqg8vnFjk5POc6TBcKfgDDhN65RTzhruFocgZQ0aB8Ik1hEyEDYEyzBxe9eeU1YA6Tebxv1HNwr4d0WQcTYafI6FBUQfoCTDtroi55DZMC5t-s8ekD5ifQJsCqhqD4wnfRSfMXy3ea8YYzzmlFeSVHWtagbdqfrHXxIx6hemxjh9BC-WJxv7qY3Th9y6933wBQ_2LCcMWmPYxRHxP6zQElTLkkIEHFIgdgDvc0me9PCgyvsb65E5-6ubFruBD5YpwHldsQ7_M0oY9X4SHb_oXeE0yFVyi3_-iburUS38F9nx3WIBdl9uQ7wbLtYlgnQxBO7Ny1R-n3i8fg_WH6ccTgDesB5sM7pIeyyseVjwxuV6baoZCVkIaTMzu1UTVUvFRVlU9O-FrwZi0lMNRWiLLnsM2wZZZxWBStKwancCSZ7JSRvWENZXXNSUn1RaHaxC3fWnTL0ftVtxVlVZak4fOphxi7oB3tZ0KiAdiaMxb52bdyY9-vJk5Ia9MG_UwUMJt0Ae-Vx6DoiDvDPPSvoOnDarybAuGoIFuxVu8nYX9nqTHsOYUlGsiNhxxOG89rvBnsh7JgujG3IF2df9BAIOybdnrBjkv47AAD__9oxRmY">