[llvm] [AArch64] Let patterns for NEON instructions check runtime mode. (PR #95560)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 15 06:54:27 PDT 2024


paulwalker-arm wrote:

Personally I don't see value in a mass rename of `HasNEON` because the runtime mode checking only applies to isel and not assembly.  I see the overriding of the predicate as just a convenient way to restrict only isel for the common case of most all NEON instructions not being safe to execute in streaming mode.

I guess I'm worried we'll introduce complexity where it's not needed because the modal behaviour is mostly handled before isel and if we get this far we're already toast.  The rational for change HasNEON is mainly to fail in a nicer way.

That said, I do think we're at the point where `HasNEONOrSME` doesn't represent what we mean (i.e. it's hard to tell but I don't think it's the case that an implementation with SME but not NEON must have these instructions?) so perhaps `HasNEONAndStreamingSafe` is a better name to show the separate feature (i.e. Inst) and runtime (isel) requirements whilst also implying blocks protected by `HasNEON` are not streaming safe.

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


More information about the llvm-commits mailing list