for C code scratch_in[0] = Fin_r[0 * in_step];
the type of scratch_in and Fin_r are both float*,
and the read action showed in disassembly code is ldr q0, [x1, #0]
since the value of X1 is 0x1000000c(not aligned with 128bits), it will cause sync exception (ESR_EL3 == 0x96000021)
I guess it is an alignment fault,
so what I want to know is: how to avoid q register being used for single ldr?
anyway if it is ldr x8, [x1,#0], eveything is fine
any advice would be admired, thanks.
cmd for compiling: armclang.exe --target=aarch64-arm-none-eabi -mcpu=cortex-a53 -mfpu=neon -mfloat-abi=hard -marm -mcmse filename.c