[all-commits] [llvm/llvm-project] e78162: [LoopVectorize][AArch64] Use get.active.lane.mask ...
david-arm via All-commits
all-commits at lists.llvm.org
Tue Jan 18 03:59:51 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e781620dee4415018bdf3769a97c2ec31a85ff68
https://github.com/llvm/llvm-project/commit/e781620dee4415018bdf3769a97c2ec31a85ff68
Author: David Sherwood <david.sherwood at arm.com>
Date: 2022-01-18 (Tue, 18 Jan 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll
M llvm/test/Transforms/LoopVectorize/AArch64/tail-fold-uniform-memops.ll
Log Message:
-----------
[LoopVectorize][AArch64] Use get.active.lane.mask intrinsic when SVE is enabled
When SVE is enabled for AArch64 targets it makes more sense to use the
get.active.lane.mask intrinsic, because SVE has an exact 1-1 mapping
from the intrinsic to the 'whilelo' instruction for legal vector types.
This instruction neatly takes overflow into account as well. This patch
fixes an issue in VPInstruction::generateInstruction that assumed we are
only dealing with fixed-width vectors.
Differential Revision: https://reviews.llvm.org/D117109
More information about the All-commits
mailing list