ARM Neon:性能vld4.u8 vs 4x vld1.u8

时间:2016-09-14 08:14:46

标签: assembly arm neon

vld1和vld4之间的最快速度是4倍。显然,加载的数据不一样,但如果我有选择,最好还是一样?

pld[in]
vld1.u8 { d0 }, [in]!
vld1.u8 { d1 }, [in]!
vld1.u8 { d2 }, [in]!
vld1.u8 { d3 }, [in]!

VS

pld[in]
vld4.u8 { d0, d1, d2, d3 }, [in]!

1 个答案:

答案 0 :(得分:2)

vld1.u8 {d0, d1, d2, d3}, [in]!通常会在同一列表中快于或等于vld4.u8。这是因为vld4在加载数据后可能必须置换数据以将其输入正确的寄存器。

即使它需要更多的工作,额外的成本可能隐藏在其他因素背后,所以它不一定是一个大问题。