[all-commits] [llvm/llvm-project] e49d04: [AArch64][CodeGen] Lower (de)interleave2 intrinsic...
huntergr-arm via All-commits
all-commits at lists.llvm.org
Mon Jun 26 06:41:03 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e49d04e760f649ce1aeec68cc607ca2d5cf8e738
https://github.com/llvm/llvm-project/commit/e49d04e760f649ce1aeec68cc607ca2d5cf8e738
Author: Graham Hunter <graham.hunter at arm.com>
Date: 2023-06-26 (Mon, 26 Jun 2023)
Changed paths:
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/InterleavedAccessPass.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
A llvm/test/Transforms/InterleavedAccess/AArch64/fixed-deinterleave-intrinsics.ll
A llvm/test/Transforms/InterleavedAccess/AArch64/scalable-deinterleave-intrinsics.ll
Log Message:
-----------
[AArch64][CodeGen] Lower (de)interleave2 intrinsics to ld2/st2
The InterleavedAccess pass currently matches (de)interleaving
shufflevector instructions with loads or stores, and calls into
target lowering to generate ldN or stN instructions.
Since we can't use shufflevector for scalable vectors (besides a
splat with zeroinitializer), we have interleave2 and deinterleave2
intrinsics. This patch extends InterleavedAccess to recognize those
intrinsics and if possible replace them with ld2/st2.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D146218
More information about the All-commits
mailing list