[PATCH] D48172: [CostModel][AArch64] Add some initial costs for SK_Select and SK_PermuteSingleSrc

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 14 08:16:21 PDT 2018


RKSimon created this revision.
RKSimon added reviewers: mssimpso, evandro, rengolin, javed.absar, spatel.
Herald added a subscriber: kristof.beyls.

AArch64 was only setting costs for SK_Transpose, which meant that many of the simpler shuffles (e.g. SK_Select and SK_PermuteSingleSrc for larger vector elements) was being severely overestimated by the default shuffle expansion.

This patch adds costs to help improve SLP performance and avoid a regression in reductions in an upcoming patch that will allow SLP to recognise a lot more SK_Select shuffle patterns.

I'm not very knowledgable about AArch64 shuffle lowering so I've kept the extra costs to a minimum - someone who knows this code can add extra costs which should improve vectorization a lot more.


Repository:
  rL LLVM

https://reviews.llvm.org/D48172

Files:
  lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  test/Analysis/CostModel/AArch64/shuffle-select.ll
  test/Transforms/SLPVectorizer/AArch64/transpose.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48172.151355.patch
Type: text/x-patch
Size: 10960 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180614/fc67794a/attachment.bin>


More information about the llvm-commits mailing list