[AArch64][ISel] Always use pre-inc/post-inc addressing mode for auto-indexed...
[AArch64][ISel] Always use pre-inc/post-inc addressing mode for auto-indexed load/store with constant offset. Unlike ARM target, current AArch64 target doesn't have facility to encode the operation bit: whether to add an offset to base pointer for pre-inc/post-inc addressing mode, or to subtract an offset from base pointer for pre-dec/post-dec addressing mode. A mis-compile (https://github.com/llvm/llvm-project/issues/60645) was noticed due to this limitation. Therefore, for AArch64 auto-indexed load/store with constant offset, always use pre-inc/post-inc addressing mode. The constant offset is negated for pre-dec/post-dec addressing mode. An auto-indexed address with non-constant offset is currently not split into base and offset parts. If we are to handle non-constant offset in the future, offset node will need to take a negate. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D143796
Loading
Please sign in to comment