[PATCH] D61692: [SDAG] Vector op legalization for overflow ops
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 8 12:17:45 PDT 2019
nikic created this revision.
nikic added reviewers: RKSimon, spatel, aemerson.
Herald added subscribers: llvm-commits, hiraditya, javed.absar.
Herald added a project: LLVM.
Fixes issue reported by @aemerson on D57348 <https://reviews.llvm.org/D57348>. Vector op legalization support is added for uaddo, usubo, saddo and ssubo (umulo and smulo were already supported). As usual, by extracting TargetLowering methods and calling them from vector op legalization.
Vector op legalization doesn't really deal with multiple result nodes, so I'm explicitly performing a recursive legalization call on the result value that is not being legalized (this was also missing for the mulo case, which I've fixed as well).
There are lots of existing test changes. I haven't looked too closely at these, I think this is because expansion happens earlier, so we don't get a DAG combiner run in between anymore.
Repository:
rL LLVM
https://reviews.llvm.org/D61692
Files:
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/test/CodeGen/AArch64/addsubo-legalization.ll
llvm/test/CodeGen/AArch64/vec_umulo.ll
llvm/test/CodeGen/X86/mulo-pow2.ll
llvm/test/CodeGen/X86/sadd_sat_vec.ll
llvm/test/CodeGen/X86/ssub_sat_vec.ll
llvm/test/CodeGen/X86/vec_saddo.ll
llvm/test/CodeGen/X86/vec_smulo.ll
llvm/test/CodeGen/X86/vec_ssubo.ll
llvm/test/CodeGen/X86/vec_umulo.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61692.198710.patch
Type: text/x-patch
Size: 157233 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190508/57b1a96b/attachment-0001.bin>
More information about the llvm-commits
mailing list