================
@@ -10654,7 +10703,16 @@ template <typename BVTy, typename ResTy, typename... 
Args>
 ResTy BoUpSLP::processBuildVector(const TreeEntry *E, Args &...Params) {
   assert(E->State == TreeEntry::NeedToGather && "Expected gather node.");
   unsigned VF = E->getVectorFactor();
-
+  BVTy ShuffleBuilder(Params...);
+  // FIXME: Only full gathering is implemented for non-power-of-2 nodes at the
+  // moment.
+  if (E->isNonPowOf2Vec()) {
+    Value *BV = ShuffleBuilder.gather(E->Scalars);
+    SmallVector<int> Mask(VF, PoisonMaskElem);
+    std::iota(Mask.begin(), Mask.end(), 0);
+    ShuffleBuilder.add(BV, Mask);
+    return ShuffleBuilder.finalize({});
----------------
fhahn wrote:

Adusted, thanks

https://github.com/llvm/llvm-project/pull/77790
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to