[llvm] [SPIR-V] Lower llvm.x.with.overflow intrinsics (PR #95012)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 12 14:05:21 PDT 2024


efriedma-quic wrote:

> Could you please elaborate what do you consider exactly to be a blocker for exiting "experimental" status?

Specifically, the fact that it's impossible for an intrinsic with multiple results to reach GlobalISel.

The reason why we want SPRIV lowering to go through GlobalISel in the first place is so that we can take advantage of shared code: legalization and lowering optimizations don't need to be specifically coded for SPIRV.  If a large fraction of intrinsics can't ever be lowered to GlobalISel operations, we lose that: those intrinsics will all need to be special-cased in SPIRV-specific code.

I expect the simplest way to make that would would be to just reconstruct aggregates inside GlobalISel... but if you can come up with some other approach to exclude intrinsics from aggregate lowering, that's okay, I guess.

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


More information about the llvm-commits mailing list