开发者
下载
[object Object][object Object][object Object]undefined
[object Object]

reg计算数据搬运接口,适用于从矢量数据寄存器连续非32B对齐的起始地址连续搬出到UB的尾块场景。

该接口每调用一次接口会更新目的操作数在UB上的地址。

需要先调用下列接口之一后,再调用本接口。

  • 使用uint32_t作为存储偏移量的接口。

搬运原理如下: 记目的操作数的起始地址为 dst_start,结束地址为 dst_end,尾块元素个数为 unalign_count = (dst_end - dst_end / 32 * 32) / sizeof(T)。 则搬运的数据会分为两部分,分别是:

  • 32B对齐的主块部分[dst_start, dst_end - unalign_count * sizeof(T)]。
  • 非32B对齐的尾块部分[dst_end - unalign_count * sizeof(T), dst_end]。 store_unalign或store_unalign_postupdate接口执行时,会将主块搬出至UB,尾块暂存至非对齐寄存器[0, unalign_count]。 本接口执行时,会将尾块从非对齐寄存器[0, unalign_count]搬出至UB。
[object Object]
[object Object]
[object Object][object Object]undefined

非对齐寄存器和地址寄存器的详细说明请参见

[object Object]

[object Object]

PIPE_V

[object Object]
  • 该接口中的dst不需要32B对齐,但数据类型为T的dst需要sizeof(T) Byte对齐。
  • 调用本接口之前,需要调用使用uint32_t作为存储偏移量的接口,且本接口与前序接口的非对齐寄存器要保持一致。
[object Object]
[object Object]