[X86] Remove extract_subvector(subv_broadcast_load()) fold.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 17 Dec 2020 11:02:34 +0000 (11:02 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 17 Dec 2020 11:02:49 +0000 (11:02 +0000)
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

index 5264014..20a75cb 100644 (file)
@@ -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.