[PATCH] D149749: [AArch64][SVE] Custom ISelLowering for 256b `shuffle_vector v, undef, <1, 1, 0, 0>`

Cameron McInally via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 3 07:57:50 PDT 2023


cameron.mcinally created this revision.
cameron.mcinally added reviewers: paulwalker-arm, dmgreen.
Herald added subscribers: psnobl, hiraditya, kristof.beyls, tschuett.
Herald added a reviewer: efriedma.
Herald added a project: All.
cameron.mcinally requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This is more a bug report than earnest patch...

We've found a couple of inefficiently lowered shuffles when targeting neoverse-v1 and VLS. This patch covers:

%x = shufflevector <2 x double> %v, <2 x double> poison, <4 x i32> <i32 1, i32 1, i32 0, i32 0>

It could be lowered in a number of way, but I chose:

zip1	z0.d, z0.d, z0.d
	ext	z0.b, z0.b, z0.b, #16

The new lowering shows an 11% performance boost on 538.namd with our out-of-tree compiler.


https://reviews.llvm.org/D149749

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/sve-fixed-length-vector-shuffle.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149749.519069.patch
Type: text/x-patch
Size: 9722 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230503/18fabe6a/attachment.bin>


More information about the llvm-commits mailing list