]> granicus.if.org Git - llvm/commit
[ARM] GlobalISel: Support G_(S|U)DIV for s32
authorDiana Picus <diana.picus@linaro.org>
Mon, 24 Apr 2017 08:20:05 +0000 (08:20 +0000)
committerDiana Picus <diana.picus@linaro.org>
Mon, 24 Apr 2017 08:20:05 +0000 (08:20 +0000)
commiteaf78a2f040a86c8a8fc4da993909b4968f93f9d
treeda246e436393c675043e6c00cb1ed6b472aa09b8
parent68724fc35308664c0e4d0aa6010a4426594bf935
[ARM] GlobalISel: Support G_(S|U)DIV for s32

Add support for both targets with hardware division and without. For
hardware division we have to add support throughout the pipeline
(legalizer, reg bank select, instruction select). For targets without
hardware division, we only need to mark it as a libcall.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301164 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstructionSelector.cpp
lib/Target/ARM/ARMLegalizerInfo.cpp
lib/Target/ARM/ARMRegisterBankInfo.cpp
test/CodeGen/ARM/GlobalISel/arm-instruction-select.mir
test/CodeGen/ARM/GlobalISel/arm-isel-divmod.ll [new file with mode: 0644]
test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir [new file with mode: 0644]
test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir