[clang] [AArch64][SME] Remove immediate argument restriction for svldr and svstr (PR #68565)

Sander de Smalen via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 30 13:32:31 PDT 2023


sdesmalen-arm wrote:

> Also, you might want to consider marking the offset immarg, instead of trying to handle variable offsets in isel.

`vnum` doesn't need to be an immediate in the C/C++ intrinsic, so it makes sense to just pass it onto LLVM so that ISel can try to fold it into the immediate operands of the instruction. The reason for having a separate operand for this in the intrinsic, is because the tile-slice offset and the (scaled) pointer offset *must* be the same, and if we encode that as a separate operand ISel can simply ensure that the same immediate is used. At the moment it's more difficult to match the immediate (because we need to analyse both the pointer and the tileslice), so have simply resorted to always use an immediate of `0`.

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


More information about the cfe-commits mailing list