[llvm] r319919 - [X86] Simplify the TTI code for getInterleavedMemoryOpCost around for AVX512BW. NFCI
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 6 10:40:46 PST 2017
Author: ctopper
Date: Wed Dec 6 10:40:46 2017
New Revision: 319919
URL: http://llvm.org/viewvc/llvm-project?rev=319919&view=rev
Log:
[X86] Simplify the TTI code for getInterleavedMemoryOpCost around for AVX512BW. NFCI
Previously the lambda for AVX512 passed out a flag that indicated whether AVX512BW was required and that was checked against the AVX512BW subtarget flag outside.
This patch changes the interface to pass the AVX512BW subtarget bit in and return its value if we detect 16 or 8 bit types.
Modified:
llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp
Modified: llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp?rev=319919&r1=319918&r2=319919&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp Wed Dec 6 10:40:46 2017
@@ -2839,21 +2839,16 @@ int X86TTIImpl::getInterleavedMemoryOpCo
ArrayRef<unsigned> Indices,
unsigned Alignment,
unsigned AddressSpace) {
- auto isSupportedOnAVX512 = [](Type *VecTy, bool &RequiresBW) {
- RequiresBW = false;
+ auto isSupportedOnAVX512 = [](Type *VecTy, bool HasBW) {
Type *EltTy = VecTy->getVectorElementType();
if (EltTy->isFloatTy() || EltTy->isDoubleTy() || EltTy->isIntegerTy(64) ||
EltTy->isIntegerTy(32) || EltTy->isPointerTy())
return true;
- if (EltTy->isIntegerTy(16) || EltTy->isIntegerTy(8)) {
- RequiresBW = true;
- return true;
- }
+ if (EltTy->isIntegerTy(16) || EltTy->isIntegerTy(8))
+ return HasBW;
return false;
};
- bool RequiresBW;
- bool HasAVX512Solution = isSupportedOnAVX512(VecTy, RequiresBW);
- if (ST->hasAVX512() && HasAVX512Solution && (!RequiresBW || ST->hasBWI()))
+ if (ST->hasAVX512() && isSupportedOnAVX512(VecTy, ST->hasBWI()))
return getInterleavedMemoryOpCostAVX512(Opcode, VecTy, Factor, Indices,
Alignment, AddressSpace);
if (ST->hasAVX2())
More information about the llvm-commits
mailing list