在使用汇编优化neon时,发现一个问题:
假设函数的输入两个参数x[2048],y[2048],那么x,y的首地址是不连续的
当在汇编中只读x的数据时所用时间明显比即读取x,也读取y的数据要长很多,我猜想是由于cache没有高效利用的原因,即造成了hit miss的现象,有什么方法可以尽可能的利用cache呢?
汇编代码如下:
只读取x
vld1.32 {d0-d1}, [r0]!
vld1.32 {d2-d3}, [r0]!
读取x,y
vld1.32 {d0-d1}, [r0]!
vld1.32 {d0-d1}, [r1]!