neon汇编,C嵌入汇编

时间:2023-03-23 20:17:56

1. Neon-intrics.pdf中的

void vst2q_u16(__transfersize(16) uint16_t * ptr, uint16x8x2_t val);
// VST2.16 {d0, d2}, [r0]

有误,这样只store了d0,d2, d1,d3没有存,应该是vst2.16 {q0,q1},[r0]

2.C嵌入汇编

asm volatile (
    "vld1.32         {d2, d3}, [%0]            \n\t"   
    "vld1.32         {d4, d5}, [%1]            \n\t"    
    "vmul.f32         d0, d2, d4                \n\t"  
    "vmla.f32         d0, d3, d5                \n\t"    
    "vpadd.f32         d0, d0                    \n\t"    
    :

: "r"(v0), "r"(v1)

:
);

://输出

://输入

://用到的寄存器

+r 表示读写,=r 只可写