diff options
author | Mel Chen <mel.chen@sifive.com> | 2025-07-25 17:53:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-25 17:53:08 +0800 |
commit | ee3a7714b7a69ac9aae4b79f4c67adc38bc6876b (patch) | |
tree | 8f720aaf21a5b02263f6b9537ec3e82cba810b75 /llvm/test/CodeGen/X86/fast-isel-vecload.ll | |
parent | 1640d51bf876685783b89f91668ca5b91ede22f4 (diff) | |
download | llvm-main.zip llvm-main.tar.gz llvm-main.tar.bz2 |
Now that support for masked loads/stores of interleave groups has
landed, we can enable the loop vectorizer to generate masked interleave
access where applicable.
This improves vectorization in several ways:
* Internal predication support: This enables interleave group
vectorization for loops with internal control flow predication, provided
all members of the group share the same predicate. Gaps in interleave
groups are still not efficiently handled by masking, so masking for gaps
remains disabled for now.
* Tail folding: This allows tail folding of loops with interleave groups
by using masking. Without this, vectorized loops with interleaves would
fall back to using separate gather/scatter accesses, which can be
significantly less efficient.
* Scalable vector support: Currently, only scalable vector types are
supported for masked interleave lowering. Fixed-length vector support
will be enabled in the future.
As interleave access is not yet supported with tail folding by EVL, that
functionality is temporarily disabled. We are going to create another
patch to support it.
Co-authored-by: Philip Reames <preames@rivosinc.com>
---------
Co-authored-by: Philip Reames <preames@rivosinc.com>
Diffstat (limited to 'llvm/test/CodeGen/X86/fast-isel-vecload.ll')
0 files changed, 0 insertions, 0 deletions