From 931e66bd899cbc10822fd80e7447eb3df0db1176 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Thu, 17 Dec 2020 11:02:34 +0000 Subject: [PATCH] [X86] Remove extract_subvector(subv_broadcast_load()) fold. This was needed in an earlier version of D92645, but isn't now - and I've just noticed that it was potentially flawed depending on the relevant widths of the broadcasted and extracted subvectors. --- llvm/lib/Target/X86/X86ISelLowering.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5264014..20a75cb 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -49390,8 +49390,7 @@ static SDValue combineExtractSubvector(SDNode *N, SelectionDAG &DAG, // extract the lowest subvector instead which should allow // SimplifyDemandedVectorElts do more simplifications. if (IdxVal != 0 && (InVec.getOpcode() == X86ISD::VBROADCAST || - InVec.getOpcode() == X86ISD::VBROADCAST_LOAD || - InVec.getOpcode() == X86ISD::SUBV_BROADCAST_LOAD)) + InVec.getOpcode() == X86ISD::VBROADCAST_LOAD)) return extractSubVector(InVec, 0, DAG, SDLoc(N), SizeInBits); // If we're extracting a broadcasted subvector, just use the source. -- 2.7.4