[llvm] [VPlan] Strip VPDT-assert forbidding replicate regions (PR #189342)

Andrei Elovikov via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 2 09:57:31 PDT 2026


eas wrote:

> > `%ld1` doesn't dominate `store0` , so there **might** be possible issues with the new semantics
> 
> Wouldn't your example also apply to interleave count > 1 in non-replicate regions?

That would result in

```
%ld0 = 
%ld1 =
store0
store1
```

so each `%ld*` would dominate every `store*`. Also the "unroll" part of the semantics isn't that different from the implicit widening that is fundamental to the VPlan so the interleaving doesn't introduce extra uncertainty.

> Not sure what the problem would be: yes, we handle unrolling of recipes in non-replicate and replicate regions in VPlanUnroll? Isn't it similar to when we run the LoopUnroll pass on the normal IR?

I want to re-iterate, I'm not aware of any existing problems, just saying there might be (or might be introduced in future) because the semantics isn't as strict as one could naively expect. As such, there is some minor risk in dong this change, but if the benefits are real then it's probably worth it.

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


More information about the llvm-commits mailing list