[PATCH] D16828: [x86] convert masked store of one element to scalar store

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 3 07:38:10 PST 2016


RKSimon added a comment.

Some minor comments. I wonder if this could be moved to DAGCombiner - possibly with a test for scalar store legality and  TLI.isExtractVectorElementCheap()?


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:26727
@@ +26726,3 @@
+/// Otherwise, return -1.
+static int getOneTrueElt(const SDValue V) {
+  // This needs to be a build vector of booleans.
----------------
This can probably be brought inside reduceMaskedStoreToScalarStore as a helper predicate

================
Comment at: lib/Target/X86/X86ISelLowering.cpp:26730
@@ +26729,3 @@
+  auto *BV = dyn_cast<BuildVectorSDNode>(V);
+  if (!BV || BV->getValueType(0).getVectorElementType() != MVT::i1)
+    return -1;
----------------
Don't we have cases where the build vector input operands are implicitly truncated to i1? For instance vector constant folding is likely to have created legal types that are larger.


http://reviews.llvm.org/D16828





More information about the llvm-commits mailing list