summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-07-27 10:29:04 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-07-27 10:29:04 +0000
commitafc1ac2735804fc54ef33235c7a40a00248729a9 (patch)
tree23f5f298adef9e50cba4f37030a47f952c05a8b4 /llvm/lib
parentcef53dcb6fbf7a5222c0b42a287a4f7a5200246d (diff)
downloadbcm5719-llvm-afc1ac2735804fc54ef33235c7a40a00248729a9.tar.gz
bcm5719-llvm-afc1ac2735804fc54ef33235c7a40a00248729a9.zip
[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. llvm-svn: 309261
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index d488ed7d124..ba6a924e531 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/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<SDValue, 16> Ops(NumConcat);
SDValue ZeroVal = DAG.getConstant(0, dl, Mask.getValueType());
+ SmallVector<SDValue, 16> 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<SDValue, 16> Ops(NumConcat);
SDValue ZeroVal = DAG.getConstant(0, dl, Mask.getValueType());
+ SmallVector<SDValue, 16> 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);
}
OpenPOWER on IntegriCloud