[PATCH] D100099: [X86][CostModel] Try to fix cost computation load/stores of non-power-of-two vectors
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 8 05:10:13 PDT 2021
lebedev.ri created this revision.
lebedev.ri added reviewers: RKSimon, craig.topper, ABataev.
lebedev.ri added a project: LLVM.
Herald added subscribers: pengfei, hiraditya.
lebedev.ri requested review of this revision.
Sometimes LV has to produce really wide vectors,
and sometimes they end up being not powers of two.
As it can be seen from the diff, the cost computation
is currently completely non-sensical in those cases.
I don't really know what i'm doing, but does this look better?
Instead of just scalarizing everything, split/factorize the wide vector
into a number of subvectors, each one having a power-of-two elements,
recurse to get the cost of op on this subvector. Also, check how we'd
legalize this subvector, and if the legalized type is scalar,
also account for the scalarization cost.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D100099
Files:
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/load_store.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100099.336063.patch
Type: text/x-patch
Size: 31103 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210408/e22adedd/attachment.bin>
More information about the llvm-commits
mailing list