[llvm] [X86] combineConcatVectorOps - remove VBMI2 limit for v32i16/v64i8 shuffle concatentation (PR #140077)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu May 15 08:09:40 PDT 2025
https://github.com/RKSimon created https://github.com/llvm/llvm-project/pull/140077
This is no longer required with the improvements to subvector load sharing with shouldReduceLoadWidth
>From 7d0e6a1ea41e60a98defbcb755eda856ca1bd9a1 Mon Sep 17 00:00:00 2001
From: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: Thu, 15 May 2025 16:06:01 +0100
Subject: [PATCH] [X86] combineConcatVectorOps - remove VBMI2 limit for
v32i16/v64i8 shuffle concatentation
This is no longer required with the improvements to subvector load sharing with shouldReduceLoadWidth
---
llvm/lib/Target/X86/X86ISelLowering.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 8c6c987c552cc..9be3b39ce16fa 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -58403,9 +58403,7 @@ static SDValue combineConcatVectorOps(const SDLoc &DL, MVT VT,
((VT.is256BitVector() &&
(EltSizeInBits >= 32 || Subtarget.hasInt256())) ||
(VT.is512BitVector() && Subtarget.useAVX512Regs() &&
- (EltSizeInBits >= 32 || Subtarget.hasVBMI2())))) {
- // TODO: Relax VBMI requirement for repeated shuffle ops - currently
- // limited to targets that should always have good cross lane shuffles.
+ (EltSizeInBits >= 32 || Subtarget.useBWIRegs())))) {
SDValue Concat0 = CombineSubOperand(VT, Ops, 0);
SDValue Concat1 = CombineSubOperand(VT, Ops, 1);
if (Concat0 || Concat1 ||
More information about the llvm-commits
mailing list