[llvm] 9aca5b6 - [X86] getTargetConstantBitsFromNode - remove unnecessary X86ISD::VBROADCAST handling.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun May 17 06:59:00 PDT 2020


Author: Simon Pilgrim
Date: 2020-05-17T14:58:30+01:00
New Revision: 9aca5b68ee3fdfa90adb1bba2781b857dd56489b

URL: https://github.com/llvm/llvm-project/commit/9aca5b68ee3fdfa90adb1bba2781b857dd56489b
DIFF: https://github.com/llvm/llvm-project/commit/9aca5b68ee3fdfa90adb1bba2781b857dd56489b.diff

LOG: [X86] getTargetConstantBitsFromNode - remove unnecessary X86ISD::VBROADCAST handling.

We create X86ISD::VBROADCAST_LOAD for constant pool folds now.

Added: 
    

Modified: 
    llvm/lib/Target/X86/X86ISelLowering.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 73f0755de12a..26f90cca1e9d 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -6445,23 +6445,6 @@ static bool getTargetConstantBitsFromNode(SDValue Op, unsigned EltSizeInBits,
   }
 
   // Extract constant bits from a broadcasted constant pool scalar.
-  if (Op.getOpcode() == X86ISD::VBROADCAST &&
-      EltSizeInBits <= VT.getScalarSizeInBits()) {
-    if (auto *Broadcast = getTargetConstantFromNode(Op.getOperand(0))) {
-      unsigned SrcEltSizeInBits = Broadcast->getType()->getScalarSizeInBits();
-      unsigned NumSrcElts = SizeInBits / SrcEltSizeInBits;
-
-      APInt UndefSrcElts(NumSrcElts, 0);
-      SmallVector<APInt, 64> SrcEltBits(1, APInt(SrcEltSizeInBits, 0));
-      if (CollectConstantBits(Broadcast, SrcEltBits[0], UndefSrcElts, 0)) {
-        if (UndefSrcElts[0])
-          UndefSrcElts.setBits(0, NumSrcElts);
-        SrcEltBits.append(NumSrcElts - 1, SrcEltBits[0]);
-        return CastBitData(UndefSrcElts, SrcEltBits);
-      }
-    }
-  }
-
   if (Op.getOpcode() == X86ISD::VBROADCAST_LOAD &&
       EltSizeInBits <= VT.getScalarSizeInBits()) {
     auto *MemIntr = cast<MemIntrinsicSDNode>(Op);


        


More information about the llvm-commits mailing list