[AArch64][SVE] Add legalization support for i32/i64 vector srem/urem
authorEli Friedman <efriedma@quicinc.com>
Mon, 8 Jun 2020 23:34:15 +0000 (16:34 -0700)
committerEli Friedman <efriedma@quicinc.com>
Tue, 23 Jun 2020 23:27:52 +0000 (16:27 -0700)
commite9d4e34ab8a4223de41fbf1881fd6a531880dda9
tree0734cefde506eb1bd2806519a1379fa8a2352c0e
parent90ad786947cc861756c95238f96c267b2a3c4849
[AArch64][SVE] Add legalization support for i32/i64 vector srem/urem

Implement them on top of sdiv/udiv, similar to what we do for integer
types.

Potential future work: implementing i8/i16 srem/urem, optimizations for
constant divisors, optimizing the mul+sub to mls.

Differential Revision: https://reviews.llvm.org/D81511
llvm/include/llvm/CodeGen/TargetLowering.h
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll