[llvm] [LoopVectorize] Support vectorization of compressing patterns (PR #214491)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 28 04:06:20 PDT 2026


================
@@ -6205,6 +6239,38 @@ VPHistogramRecipe *VPRecipeBuilder::widenIfHistogram(VPInstruction *VPI) {
                                VPI->getDebugLoc());
 }
 
+VPWidenMemIntrinsicRecipe *VPRecipeBuilder::widenIfCompressedLoadOrStore(
+    VPInstruction *VPI, VPConditionalInductionPHIRecipe *PhiR) {
+  Instruction *I = VPI->getUnderlyingInstr();
+
+  std::optional<CompressedPtrInfo> Info = Legal->isCompressedLoadOrStore(I);
+  if (!Info || Info->ConditionalInductionPHI != PhiR->getPHINode())
+    return nullptr;
+
+  VPBuilder::InsertPointGuard Guard(Builder);
+  Builder.setInsertPoint(VPI);
+
+  VPValue *Mask = VPI->getMask();
----------------
MacDue wrote:

I've rejected this case for now. In theory we could support it if we could hoist the mask generation to occur before the load. 

https://github.com/llvm/llvm-project/pull/214491


More information about the llvm-commits mailing list