[llvm] [IA] Relax the requirement of having ExtractValue users on deinterleave intrinsic (PR #148716)
Min-Yih Hsu via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 15 10:09:12 PDT 2025
mshockwave wrote:
> I think that trying to handle the shuffle based and intrinsic based cases via the same API was a mistake. If we design an API for the intrinsic lowering path, we can pas the "load like" instruction, and the deinterleave intrinsic directly. The fact that some of the loads are LoadInst, and others are IntrinsicInst are implementation details. Doing it that way achieves a similar effect in that the extracts become irrelevant, we're directly replacing the pair of load + deinterleave.
One of the original motivations to piggy-back shufflevector path on top of intrinsic lowering path was because the vp.load + shufflevector case needs to propagate the mask. In other words, the interfaces were separated by whether we need to propagate mask (i.e. vp.load) or not (i.e. load). At that time it seemed fine, but I agree that with the new feature I'm trying to add here this does look like a mistake. And we should probably separate the interface by shufflevector v.s. intrinsic lowering path (for the mask problem, just pass mask in both interfaces).
https://github.com/llvm/llvm-project/pull/148716
More information about the llvm-commits
mailing list