.macro KERNEL8x4_M2 fmla v16.2d, v4.2d, v12.d[0] fmla v20.2d, v4.2d, v13.d[0] fmla v24.2d, v4.2d, v14.d[0] fmla v28.2d, v4.2d, v15.d[0] ldp q0, q1, [pA], #32 fmla v17.2d, v5.2d, v12.d[0] fmla v25.2d, v5.2d, v14.d[0] ldp d8, d9, [pB], #16 fmla v21.2d, v5.2d, v13.d[0] fmla v29.2d, v5.2d, v15.d[0] ldp d10, d11, [pB], #16 fmla v18.2d, v6.2d, v12.d[0] fmla v22.2d, v6.2d, v13.d[0] prfm PLDL1KEEP, [pB, #B_PRE_SIZE] fmla v26.2d, v6.2d, v14.d[0] fmla v30.2d, v6.2d, v15.d[0] fmla v19.2d, v7.2d, v12.d[0] fmla v23.2d, v7.2d, v13.d[0] ldp q2, q3, [pA], #32 fmla v27.2d, v7.2d, v14.d[0] fmla v31.2d, v7.2d, v15.d[0] .endm
时间: 2024-04-18 08:32:05 浏览: 314
GAL16V8.zip
5星 · 资源好评率100%
这段代码是一个宏定义,名为KERNEL8x4_M2。它是基于前面的宏定义KERNEL8x4_I和KERNEL8x4_M1进行了一些修改和补充。在这个宏中,与之前相比,多了一些fmla指令,用于累加之前计算的结果。这样可以实现矩阵乘法的累加操作。其他部分与之前的宏定义类似,加载数据、进行乘法操作和存储结果。整个过程中使用的寄存器和内存地址根据具体的处理器架构可能会有所不同。
阅读全文