[SLP][X86] Add 32-bit vector stores to help vectorization opportunities
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 30 Jun 2022 19:25:41 +0000 (20:25 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 30 Jun 2022 19:25:50 +0000 (20:25 +0100)
commite961e05d593cacf93c24d712d7bebde4e10e2942
treec31b01cb590fd3498456d12361152ce2cb976fb9
parentf22795de683d571bbf7e655a7b4ed5ccda186e66
[SLP][X86] Add 32-bit vector stores to help vectorization opportunities

Building on the work on D124284, this patch tags v4i8 and v2i16 vector loads as custom, enabling SLP to try to vectorize these types ending in a partial store (using the SSE MOVD instruction) - we already do something similar for 64-bit vector types.

Differential Revision: https://reviews.llvm.org/D127604
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/Transforms/SLPVectorizer/X86/arith-add-load.ll
llvm/test/Transforms/SLPVectorizer/X86/arith-and-const-load.ll
llvm/test/Transforms/SLPVectorizer/X86/arith-mul-load.ll