diff options
author | wangpc <pc.wang@linux.alibaba.com> | 2022-11-14 13:50:51 +0800 |
---|---|---|
committer | wangpc <pc.wang@linux.alibaba.com> | 2022-11-14 13:51:30 +0800 |
commit | c66b69777cc9d6540dfa236ea4a4108864b2af10 (patch) | |
tree | 5574faa853dd4922457020a3c67bf73b14baea45 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 360c5fe54c0758c73bf85453fd2913f371adc7d5 (diff) | |
download | llvm-c66b69777cc9d6540dfa236ea4a4108864b2af10.zip llvm-c66b69777cc9d6540dfa236ea4a4108864b2af10.tar.gz llvm-c66b69777cc9d6540dfa236ea4a4108864b2af10.tar.bz2 |
[RISCV] Don't use zero-stride vector load if there's no optimized u-arch
For vector strided instructions, as the RVV spec says:
> When rs2=x0, then an implementation is allowed, but not required, to
> perform fewer memory operations than the number of active elements, and
> may perform different numbers of memory operations across different
> dynamic executions of the same static instruction.
So compiler shouldn't assume that fewer memory operations will be
performed when rs2=x0.
We add a target feature to specify whether u-arch supports optimized
zero-stride vector load. And we do vector splat optimization iff this
feature is supported.
This feature is enabled by default since most designs implement this
optimization.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D137699
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions