diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetTransformInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 23 | 
1 files changed, 6 insertions, 17 deletions
| diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp index 82e4dfe25b7..d3a75123935 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -2723,12 +2723,7 @@ int X86TTIImpl::getInterleavedMemoryOpCostAVX2(unsigned Opcode, Type *VecTy,                                                 unsigned Factor,                                                 ArrayRef<unsigned> Indices,                                                 unsigned Alignment, -                                               unsigned AddressSpace, -                                               bool IsMasked) { - -  if (IsMasked) -    return BaseT::getInterleavedMemoryOpCost(Opcode, VecTy, Factor, Indices, -                                             Alignment, AddressSpace, IsMasked); +                                               unsigned AddressSpace) {    // We currently Support only fully-interleaved groups, with no gaps.    // TODO: Support also strided loads (interleaved-groups with gaps). @@ -2837,12 +2832,7 @@ int X86TTIImpl::getInterleavedMemoryOpCostAVX512(unsigned Opcode, Type *VecTy,                                                   unsigned Factor,                                                   ArrayRef<unsigned> Indices,                                                   unsigned Alignment, -                                                 unsigned AddressSpace, -                                                 bool IsMasked) { - -  if (IsMasked) -    return BaseT::getInterleavedMemoryOpCost(Opcode, VecTy, Factor, Indices, -                                             Alignment, AddressSpace, IsMasked); +                                                 unsigned AddressSpace) {    // VecTy for interleave memop is <VF*Factor x Elt>.    // So, for VF=4, Interleave Factor = 3, Element type = i32 we have @@ -2960,8 +2950,7 @@ int X86TTIImpl::getInterleavedMemoryOpCost(unsigned Opcode, Type *VecTy,                                             unsigned Factor,                                             ArrayRef<unsigned> Indices,                                             unsigned Alignment, -                                           unsigned AddressSpace, -                                           bool IsMasked) { +                                           unsigned AddressSpace) {    auto isSupportedOnAVX512 = [](Type *VecTy, bool HasBW) {      Type *EltTy = VecTy->getVectorElementType();      if (EltTy->isFloatTy() || EltTy->isDoubleTy() || EltTy->isIntegerTy(64) || @@ -2973,11 +2962,11 @@ int X86TTIImpl::getInterleavedMemoryOpCost(unsigned Opcode, Type *VecTy,    };    if (ST->hasAVX512() && isSupportedOnAVX512(VecTy, ST->hasBWI()))      return getInterleavedMemoryOpCostAVX512(Opcode, VecTy, Factor, Indices, -                                            Alignment, AddressSpace, IsMasked); +                                            Alignment, AddressSpace);    if (ST->hasAVX2())      return getInterleavedMemoryOpCostAVX2(Opcode, VecTy, Factor, Indices, -                                          Alignment, AddressSpace, IsMasked); +                                          Alignment, AddressSpace);    return BaseT::getInterleavedMemoryOpCost(Opcode, VecTy, Factor, Indices, -                                           Alignment, AddressSpace, IsMasked); +                                           Alignment, AddressSpace);  } | 

