diff options
author | Bing1 Yu <bing1.yu@intel.com> | 2020-10-27 10:34:07 +0800 |
---|---|---|
committer | Bing1 Yu <bing1.yu@intel.com> | 2020-10-27 11:21:13 +0800 |
commit | 2c08f1b4b69e1953044abdcdf06f78613e01cc8c (patch) | |
tree | 040b29aab903c9c23c927742f4255b26c34a21b3 /clang/lib/Tooling/JSONCompilationDatabase.cpp | |
parent | 504fbec7a61cdfbb5f6e1b25cf14afe5195ccaf6 (diff) | |
download | llvm-2c08f1b4b69e1953044abdcdf06f78613e01cc8c.zip llvm-2c08f1b4b69e1953044abdcdf06f78613e01cc8c.tar.gz llvm-2c08f1b4b69e1953044abdcdf06f78613e01cc8c.tar.bz2 |
[CostModel][X86] teach TTI calculate cost of chain of vector inserts/extracts more precisely and correctly:In each 128-lane, if there is at least one index is demanded and not all indices are demanded...
In each 128-lane, if there is at least one index is demanded and not all
indices are demanded and this 128-lane is not the first 128-lane of the
legalized-vector, then this 128-lane needs a extracti128;
If in each 128-lane, there is at least one index is demanded, this 128-lane
needs a inserti128.
The following cases will help you build a better understanding:
Assume we insert several elements into a v8i32 vector in avx2,
Case#1: inserting into 1th index needs vpinsrd + inserti128
Case#2: inserting into 5th index needs extracti128 + vpinsrd +
inserti128
Case#3: inserting into 4,5,6,7 index needs 4*vpinsrd + inserti128.
Reviewed By: pengfei, RKSimon
Differential Revision: https://reviews.llvm.org/D89767
Diffstat (limited to 'clang/lib/Tooling/JSONCompilationDatabase.cpp')
0 files changed, 0 insertions, 0 deletions