Hag*_*ble 5 memory assembly arm cpu-registers neon
我无法弄清楚ARM NEON指令之间vld4_f32和之间的区别vld4q_f32.
当我提高编码级别并开始查看汇编指令而不是信息量较少的内在函数时,就开始出现混乱.
我需要在这里使用vld4变体指令的原因是因为,我想从我的大数组的每个第4个位置捕获4个 .float32_t

在vld4_f32本征及相应的汇编指令是这样的(此链接)
float32x2x4_t vld4_f32 (const float32_t *)
Form of expected instruction(s): vld4.32 {d0, d1, d2, d3}, [r0]
Run Code Online (Sandbox Code Playgroud)
该vld4q_f32内部函数及其对应的汇编指令看起来像这样
float32x4x4_t vld4q_f32 (const float32_t *)
Form of expected instruction(s): vld4.32 {d0, d1, d2, d3}, [r0]
Run Code Online (Sandbox Code Playgroud)
好吧,在内在级别,我看到的差异是返回类型,但是如果我查看汇编指令和寄存器的数量,它们看起来都是一样的.编译器或汇编器将如何知道两者之间的区别?
有人可以澄清更多关于这一点,并解释我如何实现加载4个float32_t值,这些值位于每个第4个内存位置到一个寄存器中?
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |