summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2019-10-26 10:26:04 -0700
committerCraig Topper <craig.topper@gmail.com>2019-10-26 16:41:19 -0700
commit1ce8a5b385a1e2987ecf49080f983615c59f6c73 (patch)
tree6047e4d6e4dae4f3cda30521d35207441fa54867 /llvm/lib/Target/X86/X86TargetTransformInfo.cpp
parent9d77ad57540c45b0a6e6ffcf8721a3189c0ed70e (diff)
downloadbcm5719-llvm-1ce8a5b385a1e2987ecf49080f983615c59f6c73.tar.gz
bcm5719-llvm-1ce8a5b385a1e2987ecf49080f983615c59f6c73.zip
[X86] Only look up boolean reduction cost tables if the reduction is not pairwise.
Summary: We don't pattern match pairwise shuffles in SelectionDAG. So we should only return the optimized costs if its not a pairwise shuffle. I think SLP vectorizer gives priority to non pairwise shuffle if the cost is the same. And the look up for reduction intrinsics passes false for the pairwise flag. So this probably has no real effect today. Reviewers: RKSimon Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69083
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetTransformInfo.cpp')
-rw-r--r--llvm/lib/Target/X86/X86TargetTransformInfo.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index 76d95eda547..2f899b3947b 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -2665,7 +2665,7 @@ int X86TTIImpl::getArithmeticReductionCost(unsigned Opcode, Type *ValTy,
};
// Handle bool allof/anyof patterns.
- if (ValTy->getVectorElementType()->isIntegerTy(1)) {
+ if (!IsPairwise && ValTy->getVectorElementType()->isIntegerTy(1)) {
if (ST->hasAVX2())
if (const auto *Entry = CostTableLookup(AVX2BoolReduction, ISD, MTy))
return LT.first * Entry->Cost;
OpenPOWER on IntegriCloud