diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-11-09 15:11:21 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-11-09 15:20:43 +0000 |
commit | d510fd2bed030ff2c42e1a365e1898ac6e822694 (patch) | |
tree | 11fb3676a03d4fc5700581c4283cc1d14be3199d /clang/lib/Basic/SourceManager.cpp | |
parent | cba40c4edec83a830145cb50f344d289ee331720 (diff) | |
download | llvm-d510fd2bed030ff2c42e1a365e1898ac6e822694.zip llvm-d510fd2bed030ff2c42e1a365e1898ac6e822694.tar.gz llvm-d510fd2bed030ff2c42e1a365e1898ac6e822694.tar.bz2 |
[X86] combineMulToPMADDWD - handle any pow2 vector type and split to legal types
combineMulToPMADDWD is currently limited to legal types, but there's no reason why we can't handle any larger type that the existing SplitOpsAndApply code can use to split to legal X86ISD::VPMADDWD ops.
This also exposed a missed opportunity for pre-SSE41 targets to handle SEXT ops from types smaller than vXi16 - without PMOVSX instructions these will always be expanded to unpack+shifts, so we can cheat and convert this into a ZEXT(SEXT()) sequence to make it a valid PMADDWD op.
Differential Revision: https://reviews.llvm.org/D110995
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions