JIT: Missing support for pre-indexed addressing on arm64 #105193
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Pre-indexed addressing with writeback allows computing
x = x + c; var y = *x
in a single instruction on arm64. We should add support for this.The post-indexed addressing mode was added as an emitter peephole in #105181. #105185 adds a lowering transformation that tries to set the IR up to produce patterns that are amenable to be replaced by the peephole in the emitter. The pre-indexing can work in a similar way: run the peephole when we are going to emit a load/store instruction and try to combine it with a previous add/sub. In lowering try to look for a previous
GT_ADD
/GT_SUB
RMW to make adjacent when we see an indir. One problematic thing there is that we currently do not have a convenient list of the previous RMWADD
/SUB
nodes, so we either need to search for longer (probably expensive) or we need to add such a list.The text was updated successfully, but these errors were encountered: