OSDN Git Service

[X86] Replace calls to getOnesVector/getZeroVector with getConstant.
authorCraig Topper <craig.topper@intel.com>
Sun, 11 Nov 2018 01:40:04 +0000 (01:40 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 11 Nov 2018 01:40:04 +0000 (01:40 +0000)
getConstant will create a BUILD_VECTOR for us and use a legal type if necessary. So just create the simple node and let BUILD_VECTOR legalization do the canonicalization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346603 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index dd00945..4de8e3d 100644 (file)
@@ -19747,8 +19747,8 @@ static SDValue LowerSIGN_EXTEND_Mask(SDValue Op,
       (Subtarget.hasBWI() && WideEltVT.getSizeInBits() <= 16)) {
     V = DAG.getNode(Op.getOpcode(), dl, WideVT, In);
   } else {
-    SDValue NegOne = getOnesVector(WideVT, DAG, dl);
-    SDValue Zero = getZeroVector(WideVT, Subtarget, DAG, dl);
+    SDValue NegOne = DAG.getConstant(-1, dl, WideVT);
+    SDValue Zero = DAG.getConstant(0, dl, WideVT);
     V = DAG.getSelect(dl, WideVT, In, NegOne, Zero);
   }