[clang] [llvm] [AArch64][SVE] Lower unpredicated loads/stores as LDR/STR. (PR #127837)
Benjamin Maxwell via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 21 09:48:44 PST 2025
MacDue wrote:
I think with the `AllowMisalignedMemAccesses` check (preventing this applying when `+strict-align` is set) this _probably_ okay. The `LDR ZPR` notes:
> The load is performed as contiguous byte accesses, with no endian conversion and no guarantee of single-copy atomicity larger than a byte. However, if alignment is checked, then the base register must be aligned to 16 bytes.
http://developer.arm.com/documentation/ddi0602/2024-12/SVE-Instructions/LDR--vector---Load-vector-register-
Alignment checking is enabled by `SCTLR_EL1.A`, which is disabled by default:
https://developer.arm.com/documentation/ddi0488/h/system-control/aarch64-register-descriptions/system-control-register--el1
https://github.com/llvm/llvm-project/pull/127837
More information about the cfe-commits
mailing list