<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62378>62378</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[instcombine] Transform (X/Y)*Y into X if the remainder of (X/Y) is 0
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vfdff
</td>
</tr>
</table>
<pre>
* test: https://alive2.llvm.org/ce/z/aJW8q5
```
define noundef i8 @src(i8 noundef %x, i8 noundef %y) {
%rem = urem i8 %x, %y
%cmp = icmp eq i8 %rem, 0
tail call void @llvm.assume(i1 %cmp)
%div = udiv i8 %x, %y
%mul = mul i8 %div, %y
ret i8 %mul
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0kk-PnDwMxj-NuVg7CmZC4MBh9h1xeM-VunsMxJlJFWA3CaNuP30Vlv1XtRJSjPOz9fiJdYzuMjN3IO9Bngu9pusSups11hbDYl46oBMmjgmqE15TeopQnYB6oF57d2M6eH-bDku4APUjA_W_8tX_35tnCeIM4gS12L_t17B1M-O8rLNhi65BOIoYRqDGNe9pIPkT6D_8mnoBahFB3b-2wpwLPCFUZ1xzkLvtlRv-gY3T04a5HPDzTgaeMivewKSdx1F7j7fFmaxsm07HuE6cFZZ7L6D2U3Pjbq8acvBvDdPqNyyfr5Rxtz-5wGm_nFa_O6jOf7WyMF1l2qrVBXdl3ZAUqqS2uHZ6sKxaJdVwtKVV5WgGQboyWtZG1aMsXEeCKnGkuiyFpPYgLQ8tjUrVsjkK1cBR8KSdf3_dwsW4cldTpZrC64F9fNuZ0GXoblgvMRvmYoofZcklv22Xm2Mal2lwM4M847eg52iXMCFQ8wDUP2ZL6fSIbk4LPqCzmK6MIcuYDQdc7GcUXURRrMF3X5fy4tJ1HQ7jMgH1WcV-3D2F5QePCajfJolA_TbM7wAAAP__vzrdTg">