[llvm-dev] Backend support for divisions > 128 bits

Matthias Gehre via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 11 14:45:12 PST 2019


Thanks you very much for LLVM! I'm very much enjoying working with it.

I'm currently experimenting with some frontend changes that eventually
generate IR with arbitrary big integer types like

define void @test(i129, i129, i129*)  {
    %4 = sdiv i129 %0, %1
    store i129 %4, i129* %2
    ret void

(or any bigger type). Unfortunately, this leads to "LLVM ERROR: Unsupported
library call operation!" from DAGTypeLegalizer::ExpandIntRes_SDIV on all
targets I tried (especially x86_64). It seems that most of the other
operations (e.g. mul, add, and, shift, bitreverse, ...) are supported on
those big integers.

What is the best way for me to make the divisions work?
Is there existing work I can build upon?

Thank you!

Matthias Gehre
C++ Senor Software Architect
gehre at silexica.com
P: +49 221 986 5619 0
Silexica GmbH | https://www.silexica.com
Lichtstr. 25
50825 Cologne


| Request a live demonstration of our product here
<https://www.silexica.com/#request-demo-button> |
Domicile and Court of Registry: Köln, Germany
Commercial Register Number: HRB 89481
Managing Directors: Maximilian Odendahl, Johannes Emigholz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191111/15633f28/attachment.html>

More information about the llvm-dev mailing list