The spec [1] doesn't restrict the offset register (i.e. Rm != 11111) in
SVE contiguous load/store (scalar plus scalar) instructions, permit XZR.
[1] https://developer.arm.com/documentation/ddi0596/2020-12/SVE-Instructions
| Paths 
 |  Differential  D130365  
[AArch64][SVE] Allow XZR as offset reg in contiguous loads/stores AbandonedPublic Authored by c-rhodes on Jul 22 2022, 7:58 AM. 
Details 
 Summary The spec [1] doesn't restrict the offset register (i.e. Rm != 11111) in [1] https://developer.arm.com/documentation/ddi0596/2020-12/SVE-Instructions 
Diff Detail Event TimelineComment Actions Following the link in the summary and looking at LD1H I see if Rm == '11111' then UNDEFINED; which suggests whilst the encoding might be valid the result is undefined and so I doubt we want users to fall into such a trap. Comment Actions 
 ah, well spotted, I didn't see that. I was looking for Rm != 11111 in the encoding as I've seen for other instructions in the past, not at the pseudo code. It seems XZR shouldn't be accepted by the assembler after all, abandoning this. 
Revision Contents 
 
Diff 446837 llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
 llvm/test/MC/AArch64/SVE/ld1b-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1b.s
 llvm/test/MC/AArch64/SVE/ld1d-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1d.s
 llvm/test/MC/AArch64/SVE/ld1h-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1h.s
 llvm/test/MC/AArch64/SVE/ld1sb-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1sb.s
 llvm/test/MC/AArch64/SVE/ld1sh-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1sh.s
 llvm/test/MC/AArch64/SVE/ld1sw-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1sw.s
 llvm/test/MC/AArch64/SVE/ld1w-diagnostics.s
 llvm/test/MC/AArch64/SVE/ld1w.s
 llvm/test/MC/AArch64/SVE/st1b-diagnostics.s
 llvm/test/MC/AArch64/SVE/st1b.s
 llvm/test/MC/AArch64/SVE/st1d-diagnostics.s
 llvm/test/MC/AArch64/SVE/st1d.s
 llvm/test/MC/AArch64/SVE/st1h-diagnostics.s
 llvm/test/MC/AArch64/SVE/st1h.s
 llvm/test/MC/AArch64/SVE/st1w-diagnostics.s
 llvm/test/MC/AArch64/SVE/st1w.s
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||