diff options
author | Craig Topper <craig.topper@gmail.com> | 2019-10-26 10:26:04 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2019-10-26 16:41:19 -0700 |
commit | 1ce8a5b385a1e2987ecf49080f983615c59f6c73 (patch) | |
tree | 6047e4d6e4dae4f3cda30521d35207441fa54867 /llvm/lib/Target/X86/X86TargetTransformInfo.cpp | |
parent | 9d77ad57540c45b0a6e6ffcf8721a3189c0ed70e (diff) | |
download | bcm5719-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.cpp | 2 |
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; |