From: Simon Pilgrim Date: Thu, 27 Jul 2017 10:29:04 +0000 (+0000) Subject: [X86] Tidyup MaskedLoad/Store mask creation. NFCI. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c824c1a5472a1d7ab120205204193cad501e76f7;p=llvm [X86] Tidyup MaskedLoad/Store mask creation. NFCI. Assign all concat elements to zero and then just replace the first element, instead of setting them all to null and copying everything in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309261 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index d488ed7d124..ba6a924e531 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -32967,6 +32967,7 @@ static SDValue combineMaskedLoad(SDNode *N, SelectionDAG &DAG, WideSrc0 = DAG.getVectorShuffle(WideVecVT, dl, WideSrc0, DAG.getUNDEF(WideVecVT), ShuffleVec); } + // Prepare the new mask. SDValue NewMask; SDValue Mask = Mld->getMask(); @@ -32989,12 +32990,9 @@ static SDValue combineMaskedLoad(SDNode *N, SelectionDAG &DAG, WidenNumElts); unsigned NumConcat = WidenNumElts / MaskNumElts; - SmallVector Ops(NumConcat); SDValue ZeroVal = DAG.getConstant(0, dl, Mask.getValueType()); + SmallVector Ops(NumConcat, ZeroVal); Ops[0] = Mask; - for (unsigned i = 1; i != NumConcat; ++i) - Ops[i] = ZeroVal; - NewMask = DAG.getNode(ISD::CONCAT_VECTORS, dl, NewMaskVT, Ops); } @@ -33112,12 +33110,9 @@ static SDValue combineMaskedStore(SDNode *N, SelectionDAG &DAG, WidenNumElts); unsigned NumConcat = WidenNumElts / MaskNumElts; - SmallVector Ops(NumConcat); SDValue ZeroVal = DAG.getConstant(0, dl, Mask.getValueType()); + SmallVector Ops(NumConcat, ZeroVal); Ops[0] = Mask; - for (unsigned i = 1; i != NumConcat; ++i) - Ops[i] = ZeroVal; - NewMask = DAG.getNode(ISD::CONCAT_VECTORS, dl, NewMaskVT, Ops); }