]> granicus.if.org Git - llvm/commit
[SDAG] Recursively legalize both vector mulo results
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 10 May 2019 20:42:48 +0000 (20:42 +0000)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 10 May 2019 20:42:48 +0000 (20:42 +0000)
commit8e7f7e84fc3fdec545c8d9170790e67e8be44074
treeffd4d0ed097aeb4b29eea5ddd169cf67da7ffbec
parent9488ca4c3fe181554db43ff0b3f7f6fc618d242e
[SDAG] Recursively legalize both vector mulo results

Split out from D61692 per RKSimon's suggestion. Vector op
legalization will automatically recursively legalize the returned
SDValue, but we need to take care of the other results ourselves.
Otherwise it will end up getting legalized only during op
legalization, by which point it might be too late (though I'm not
aware of any specific cases right now).

There are codegen differences because expansion occurs earlier now
and we don't get a DAGCombiner run in between.

Differential Revision: https://reviews.llvm.org/D61744

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360470 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
test/CodeGen/AArch64/vec_umulo.ll
test/CodeGen/X86/mulo-pow2.ll
test/CodeGen/X86/vec_smulo.ll
test/CodeGen/X86/vec_umulo.ll