[Clang][AArch64] svldr_vnum/svstr_vnum should use cntsb iso vscale for the offset
The specification for LDR/STR says that: The ZA array vector is selected by the sum of the vector select register and immediate offset, modulo the number of bytes in a Streaming SVE vector. [..] This instruction does not require the PE to be in Streaming SVE mode When the instruction is used outside of streaming mode, 'vscale' will result in the wrong value being used for the offset because LLVM's code-generator will emit the non-streaming 'RDVL/ADDVL' instead of the 'RDSVL/ADDSVL' instructions which are used to get the Streaming-SVE vector length. Reviewed By: bryanpkc Differential Revision: https://reviews.llvm.org/D156121
Loading
Please sign in to comment