From a93607c479092ccae41c033f8d27fe99621ddef3 Mon Sep 17 00:00:00 2001 From: David Green <david.green@arm.com> Date: Fri, 8 Apr 2022 12:16:34 +0100 Subject: [PATCH] [AArch64] Remove always true Perfect cost check. NFC Perfect shuffle costs are always encoded less than 4, and shouldn't really have a cost more than 3, so it makes no sense to check it when generating shuffles. The perfect shuffle is likely always better than a tbl too (although that may depend on whether it is in a loop). --- llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp index a43dbdb3353d..65aff576ed71 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -10204,10 +10204,7 @@ SDValue AArch64TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, unsigned PFTableIndex = PFIndexes[0] * 9 * 9 * 9 + PFIndexes[1] * 9 * 9 + PFIndexes[2] * 9 + PFIndexes[3]; unsigned PFEntry = PerfectShuffleTable[PFTableIndex]; - unsigned Cost = (PFEntry >> 30); - - if (Cost <= 4) - return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); + return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); } return GenerateTBL(Op, ShuffleMask, DAG); -- GitLab