文章目录
- SVE 多向量操作
- LD2D(加载)
- LD2D 操作说明
- LD2D 使用举例
- ST2D(存储)
- ST2D 使用举例
- ST2D 存储示例代码
- ld2d 和 st2d 小结
SVE 多向量操作
在ARMv8/9的SVE (Scalable Vector Extension) 指令集中,st2d
和ld2d
指令用于向量化的存储和加载操作,具体地,它们允许同时对两个向量寄存器进行连续的存储或加载操作,适用于处理双精度浮点数或双字整数等64位数据类型。这些指令非常有用于需要连续处理数据块的场景,比如矩阵计算或图像处理。
LD2D(加载)
ld2d
指令从内存中加载两个连续的双字数据到两个向量寄存器中。它的基本格式如下:
LD2D { <Zt1>.D, <Zt2>.D }, <Pg>/Z, [<Xn|SP>, <Xm>, LSL #3]
Zt1.D
和Zt2.D
是目标向量寄存器,用于存储加载的数据,.D
指示操作的数据类型为双字。Pg/Z
是谓词寄存器,用于控制加载操作,实现条件加载。[Xn, Xm{, LSL #shift}]
是内存地址生成方式,Xn
是一个64位的标量基址寄存器,Xm
是一个64位的标量索引寄存器,可选地通过左移 (LSL