<div dir="ltr"><div class="gmail_quote">On Sat, Mar 21, 2015 at 3:20 AM Joerg Sonnenberger <<a href="mailto:joerg@britannica.bec.de">joerg@britannica.bec.de</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Mar 20, 2015 at 09:06:24AM +0000, Paweł Bylica wrote:<br>
> Hi LLVM,<br>
><br>
>    1. Can mul and/or div support be added for big integer types like i256?<br>
>    2. What are the limits?<br>
>    3. If yes, how should it be done?<br>
><br>
> I have experience only with X86 target and know that mul i128 works and div<br>
> i128 is lowered to function call from compile-rt like library (what works<br>
> only if you link with such library). Can that support be extended?<br>
<br>
mul can be inlined easily if necessary for arbitrary sizes, but div is<br>
very expensive. Note that div can be expanded to calls even for smaller<br>
sizes, since many (older) architectures don't have hardware division.<br>
<br>
What's your use case?<br>
<br>
Joerg<br></blockquote><div><br></div><div>I would be happy to have mul and div up to i512 on x86_64 target. My current solution is to replace that instructions with call to my helper functions.</div><div><br></div><div>If I understand correctly one big mul can be composed of 4 half-precision mul instructions? Would such solution be accepted by LLVM?</div><div><br></div><div>- Paweł</div></div></div>