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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to