<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62382>62382</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[InstSimplify] (-a / k == a / k) ? a / k : 0 --> 0 (where k>1)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Let's consider the following case (k=2).
https://alive2.llvm.org/ce/z/JTd9Nn
```llvm
----------------------------------------
define i32 @src(i32 %0) {
%1:
%2 = sdiv i32 %0, 4294967294
%3 = sdiv i32 %0, 2
%4 = icmp eq i32 %2, %3
%5 = select i1 %4, i32 %3, i32 0
ret i32 %5
}
=>
define i32 @tgt(i32 %0) {
%1:
ret i32 0
}
Transformation seems to be correct!
```
Original program:
https://godbolt.org/z/fh81jfjP6
```c
int foo(int a)
{
return (-a / 2 == a / 2) ? a / 2 : 0;
}
int bar(int a)
{
return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVN1uozwQfZrhZpTIjPm94KL5UqRvtdpdafsCNhjiBnDWdhp1n36FCW0a9aJRlDDMOTM-x2ML53Q_KVVBuoN0H4mzPxhbHTfCWnNxkTTta_VdeaDcYWMmp1tl0R8UdmYYzEVPPTbCKQQqjsD3BFRuge2BPRy8PzngD0A1UC0G_aJoOwwv49bYHqhuFFD9F6j-9tSWP6aFBBlbvjNwebX54mdBt6rTk0LNCSFhzjZARQgoZUAlQr67dqI0nlcXApzzhMD36Fr9gu-M_zChMimznMrkBss_x9INJAkQ3YwnVH9WFM2omX8DTJdaalCNRx0H7gy7Uvj6zFaOVX5Nplcx-f76wPfAHz-zwvf-i1as5dld7ScrJtcZOwqvzYROqdGhNygVNsZa1Xig-G4br2H4_Wl1rycx4Mma3orxreXHSelNK83gr1MyD0h3KOLn7vlXdle8WWI9eeyMmdVNHgVQuS58t0oKos52msd0IxCoxrDbs_HXMDjCa3zPPiADvrs3-K2lFPZLLT8rsiqI2oq3JS9FpKo4KyiNWZqn0aGSWdlImbA2T2VHeRHzQkrJc1lkZZyXbaQrYsRZQllMjNJ0K0rG07xMuchaKeMMEqZGoYe3Ixdp586qyogXFA1CqsGFU080qQuGJBDNl4CtZs5GnnsHCRu08-69itd-CNfF_5Pzv_V4GnT3Cun-xtrjR2uPH609LtbiZgP8EdnMuxyUVXgE_hgDldHZDtXdTGh_OMttY0agOlwNy9_mZM1zGLw6CHBAdRD4LwAA__-b-UTM">