[PATCH] D123306: [X86] Enable fast variable per-lane shuffle tuning on all Ryzen targets
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 7 06:17:16 PDT 2022
RKSimon created this revision.
RKSimon added reviewers: lebedev.ri, craig.topper, GGanesh, spatel.
Herald added subscribers: StephenFan, pengfei, hiraditya.
Herald added a project: All.
RKSimon requested review of this revision.
Herald added a project: LLVM.
rGa3b8695bf592 <https://reviews.llvm.org/rGa3b8695bf5927f0a43d295dfdfeafeef4da022ea> enabled this for znver3, but AMD SoG, Agner and uops.info all agree that even znver1 has a fast per-lane shuffle op (VPSHUFB), but cross-lane shuffles seem to be slow (PERMPS etc.)
Fixes PR44795
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D123306
Files:
llvm/lib/Target/X86/X86.td
llvm/test/CodeGen/X86/vector-shuffle-fast-per-lane.ll
Index: llvm/test/CodeGen/X86/vector-shuffle-fast-per-lane.ll
===================================================================
--- llvm/test/CodeGen/X86/vector-shuffle-fast-per-lane.ll
+++ llvm/test/CodeGen/X86/vector-shuffle-fast-per-lane.ll
@@ -4,8 +4,8 @@
; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=FAST
; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+avx512f,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=FAST
;
-; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=znver1 | FileCheck %s --check-prefixes=SLOW
-; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=znver2 | FileCheck %s --check-prefixes=SLOW
+; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=znver1 | FileCheck %s --check-prefixes=FAST
+; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=znver2 | FileCheck %s --check-prefixes=FAST
; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=znver3 | FileCheck %s --check-prefixes=FAST
; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=haswell | FileCheck %s --check-prefixes=FAST
; RUN: llc < %s -mtriple=x86_64-unknown -mcpu=skx | FileCheck %s --check-prefixes=FAST
Index: llvm/lib/Target/X86/X86.td
===================================================================
--- llvm/lib/Target/X86/X86.td
+++ llvm/lib/Target/X86/X86.td
@@ -1193,6 +1193,7 @@
TuningFastScalarFSQRT,
TuningFastVectorFSQRT,
TuningFastScalarShiftMasks,
+ TuningFastVariablePerLaneShuffle,
TuningFastMOVBE,
TuningSlowSHLD,
TuningSBBDepBreaking,
@@ -1208,9 +1209,7 @@
FeaturePKU,
FeatureVAES,
FeatureVPCLMULQDQ];
- list<SubtargetFeature> ZN3AdditionalTuning =
- [TuningMacroFusion,
- TuningFastVariablePerLaneShuffle];
+ list<SubtargetFeature> ZN3AdditionalTuning = [TuningMacroFusion];
list<SubtargetFeature> ZN3Tuning =
!listconcat(ZN2Tuning, ZN3AdditionalTuning);
list<SubtargetFeature> ZN3Features =
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123306.421181.patch
Type: text/x-patch
Size: 2292 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220407/1910e894/attachment.bin>
More information about the llvm-commits
mailing list