[cfe-dev] Over-aligned vst1.64 and vld1.64 for arm-linux-androideabi
Friedman, Eli via cfe-dev
cfe-dev at lists.llvm.org
Wed Feb 14 12:44:01 PST 2018
On 2/14/2018 12:08 PM, Greg McGary wrote:
> An excerpt from test.s:
>
> S::S(S&):
> .fnstart
> ...
> vld1.64 {d16, d17}, [r2]!
> vst1.64 {d16, d17}, [lr]!
>
> The vxx1.64 insns assemble to forms with 128-bit alignment, so :128 is
> the default alignment clause.
That isn't how vld1.64 works.
There are three forms of vld1.64 which load two registers (encoding
comments generated using "llvm-mc --arch=arm -mattr=+neon -show-encoding"):
vld1.64 {d16, d17}, [r2]! @ encoding: [0xcd,0x0a,0x62,0xf4]
vld1.64 {d16, d17}, [r2:64]! @ encoding: [0xdd,0x0a,0x62,0xf4]
vld1.64 {d16, d17}, [r2:128]! @ encoding: [0xed,0x0a,0x62,0xf4]
The first requires no alignment, the second requires 64-bit alignment,
the third requires 128-bit alignment.
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the cfe-dev
mailing list