[llvm] [AArch64][GlobalISel] Add G_SQDMULL node (PR #185842)

Hari Limaye via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 11 05:14:04 PDT 2026


hazzlim wrote:

> I was thinking we could avoid G_SQDMULL in GISel and just use the intrinsic directly. AArch64ISD::SQDMULL was added for SDAG as it isn't possible to get the types correct, but we should just be able to mark it as FPR for GISel and make sure the patterns cover both cases. The extra patterns make it difficult and might mean it is better to create this new node anyway - it depends on whether the patterns would be needed otherwise, and if there are other transforms we would want to apply to G_SQDMULL.

Ah OK that makes sense. If I understand correctly, this would involve the following:
- Marking `aarch64_neon_sqdmulls_scalar` as FPR for GISel
- Adding (duplicate) tablegen patterns for everything that match the intrinsic `int_aarch64_neon_sqdmulls_scalar` as well as the existing ones for  AArch64ISD::SQDMULL

is that roughly correct?

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


More information about the llvm-commits mailing list