[BasicTTI] getInterleavedMemoryOpCost(): discount unused members of mask if mask...
authorRoman Lebedev <lebedev.ri@gmail.com>
Wed, 3 Nov 2021 14:33:28 +0000 (17:33 +0300)
committerRoman Lebedev <lebedev.ri@gmail.com>
Wed, 3 Nov 2021 14:33:28 +0000 (17:33 +0300)
commita4b64f772711308724ab4626549b414bcf79d8e0
tree2ba3fefcb186f0c20b5c025b808e534ccc8d4669
parentc6b3da1d663af1756b318aa19d0a913f0c2bde96
[BasicTTI] getInterleavedMemoryOpCost(): discount unused members of mask if mask for gap will be used

As it can be seen in `InnerLoopVectorizer::vectorizeInterleaveGroup()`,
in some cases (reported by `UseMaskForGaps`), the gaps in the interleaved load/store group
will be masked away by another constant mask, so there is no need to
account for the cost of replication of the mask for these.

Differential Revision: https://reviews.llvm.org/D112877
llvm/include/llvm/CodeGen/BasicTTIImpl.h
llvm/test/Analysis/CostModel/X86/interleaved-store-accesses-with-gaps.ll