[all-commits] [llvm/llvm-project] a7d326: [LV][REVEC][AArch64] Proof of concept for re-vecto...
Gaëtan Bossu via All-commits
all-commits at lists.llvm.org
Wed Jul 8 06:05:14 PDT 2026
Branch: refs/heads/users/gbossu/lv.revec.poc.2
Home: https://github.com/llvm/llvm-project
Commit: a7d3267e8fa0b0b08e1882483dcb8962d9dd2961
https://github.com/llvm/llvm-project/commit/a7d3267e8fa0b0b08e1882483dcb8962d9dd2961
Author: Gaëtan Bossu <gaetan.bossu at arm.com>
Date: 2026-07-08 (Wed, 08 Jul 2026)
Changed paths:
M llvm/include/llvm/IR/VectorTypeUtils.h
M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
M llvm/lib/IR/IRBuilder.cpp
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
A llvm/test/Transforms/LoopVectorize/AArch64/revec-disabled.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-invalid.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-livein.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-memory-contiguous.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-memory-gather-scatter.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-memory-interleaved.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-predication.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-select.ll
A llvm/test/Transforms/LoopVectorize/AArch64/revec-unroll.ll
Log Message:
-----------
[LV][REVEC][AArch64] Proof of concept for re-vectorisation
This shows the changes required to enable basic re-vectorisation support in LoopVectorizer. Most of the diff comes from the added tests, the changes to LoopVectorizer files are rather minimal. This proof-of-concept has obvious limitations and only represents the first building block.
My hope is that this helps discussions and complements the RFC at https://discourse.llvm.org/t/rfc-re-vectorisation-to-wider-vectors-in-loopvectorizer/91071.
Support for re-vectorisation is hidden behind a -vectorize-vector-loops flag and LV will bail out if it encounters constructs that are not yet supported. For example:
- shufflevectors
- gather/scatter and interleaved accesses
- target intrinsics
- reductions
- if-conversion or tail folding
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list