[LLVMdev] Mul & div support for wider-than-legal types

Paweł Bylica chfast at gmail.com
Sat Mar 21 13:28:31 PDT 2015

On Sat, Mar 21, 2015 at 3:20 AM Joerg Sonnenberger <joerg at britannica.bec.de>

> On Fri, Mar 20, 2015 at 09:06:24AM +0000, Paweł Bylica wrote:
> > Hi LLVM,
> >
> >    1. Can mul and/or div support be added for big integer types like
> i256?
> >    2. What are the limits?
> >    3. If yes, how should it be done?
> >
> > I have experience only with X86 target and know that mul i128 works and
> div
> > i128 is lowered to function call from compile-rt like library (what works
> > only if you link with such library). Can that support be extended?
> mul can be inlined easily if necessary for arbitrary sizes, but div is
> very expensive. Note that div can be expanded to calls even for smaller
> sizes, since many (older) architectures don't have hardware division.
> What's your use case?
> Joerg

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

If I understand correctly one big mul can be composed of 4 half-precision
mul instructions? Would such solution be accepted by LLVM?

- Paweł
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150321/ff50ed77/attachment.html>

More information about the llvm-dev mailing list