[all-commits] [llvm/llvm-project] df93c8: [X86] `X86TTIImpl::getInterleavedMemoryOpCostAVX51...
Roman Lebedev via All-commits
all-commits at lists.llvm.org
Wed Nov 3 08:15:48 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: df93c8a9195322a393e8b27063c083006a4ddb19
https://github.com/llvm/llvm-project/commit/df93c8a9195322a393e8b27063c083006a4ddb19
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2021-11-03 (Wed, 03 Nov 2021)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/X86/interleaved-store-accesses-with-gaps.ll
Log Message:
-----------
[X86] `X86TTIImpl::getInterleavedMemoryOpCostAVX512()`: fallback to scalarization cost computation for mask
I don't really buy that masked interleaved memory loads/stores are supported on X86.
There is zero costmodel test coverage, no actual cost modelling for the generation
of the mask repetition, and basically only two LV tests.
Additionally, i'm not very interested in AVX512.
I don't know if this really helps "soft" block over at
https://reviews.llvm.org/D111460#inline-1075467,
but i think it can't make things worse at least.
When we are being told that there is a masking, instead of
completely giving up and falling back to
fully scalarizing `BasicTTIImplBase::getInterleavedMemoryOpCost()`,
let's correctly query the cost of masked memory ops,
keep all the pretty shuffle cost modelling,
but scalarize the cost computation for the mask replication.
I think, not scalarizing the shuffles themselves
may adjust the computed costs a bit,
and maybe hopefully just enough to hide the "regressions"
at https://reviews.llvm.org/D111460#inline-1075467
I do mean hide, because the test coverage is non-existent.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D112873
More information about the All-commits
mailing list