This patch maps IR operations for sdiv & udiv to the
@llvm.aarch64.sve.[s|u]div intrinsics.
A ptrue must be created during lowering as the div instructions
have only a predicated form.
Patch contains changes by Andrzej Warzynski.
Paths
| Differential D78569
[SVE][CodeGen] Lower SDIV & UDIV to SVE intrinsics ClosedPublic Authored by kmclaughlin on Apr 21 2020, 9:03 AM.
Details Summary This patch maps IR operations for sdiv & udiv to the A ptrue must be created during lowering as the div instructions Patch contains changes by Andrzej Warzynski.
Diff Detail
Event TimelineComment Actions I'd prefer to handle legalization in a separate patch from handling legal sdiv/udiv operations, so we actually have some context to discuss the legalization strategy.
Comment Actions
This revision is now accepted and ready to land.Apr 23 2020, 12:35 PM Closed by commit rG53dd72a87aeb: [SVE][CodeGen] Lower SDIV & UDIV to SVE intrinsics (authored by kmclaughlin). · Explain WhyApr 24 2020, 3:45 AM This revision was automatically updated to reflect the committed changes. kmclaughlin marked an inline comment as done.
Revision Contents
Diff 259852 llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
|
If we're going to support these operations, we might as well just add isel patterns; that's what we've been doing for other arithmetic operations.