[X86] Remove custom lowering of vXi1 ADD/SUB now that they are canonicalized to XOR...
authorCraig Topper <craig.topper@sifive.com>
Thu, 25 Feb 2021 16:52:39 +0000 (08:52 -0800)
committerCraig Topper <craig.topper@sifive.com>
Thu, 25 Feb 2021 16:52:41 +0000 (08:52 -0800)
Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D97478

llvm/lib/Target/X86/X86ISelLowering.cpp

index 10da3b9..b9a3a24 100644 (file)
@@ -1468,8 +1468,6 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM,
     }
 
     for (auto VT : { MVT::v1i1, MVT::v2i1, MVT::v4i1, MVT::v8i1, MVT::v16i1 }) {
-      setOperationAction(ISD::ADD,              VT, Custom);
-      setOperationAction(ISD::SUB,              VT, Custom);
       setOperationAction(ISD::MUL,              VT, Custom);
       setOperationAction(ISD::UADDSAT,          VT, Custom);
       setOperationAction(ISD::SADDSAT,          VT, Custom);
@@ -27152,10 +27150,6 @@ static SDValue lowerAddSub(SDValue Op, SelectionDAG &DAG,
   if (VT == MVT::i16 || VT == MVT::i32)
     return lowerAddSubToHorizontalOp(Op, DAG, Subtarget);
 
-  if (VT.getScalarType() == MVT::i1)
-    return DAG.getNode(ISD::XOR, SDLoc(Op), VT,
-                       Op.getOperand(0), Op.getOperand(1));
-
   if (VT == MVT::v32i16 || VT == MVT::v64i8)
     return splitVectorIntBinary(Op, DAG);