Ios 将循环内带有continue语句的条件转换为NEON

Ios 将循环内带有continue语句的条件转换为NEON,ios,inline-assembly,neon,Ios,Inline Assembly,Neon,我曾想过这在NEON intrinsics中会是什么样子: if (!(a > 1 && b > 1 && a < w-2 && b < h-2)) { ... continue; } // other operations 我想知道当a和b是4向量时,这是否真的可以写 1我是否必须为后面的每个操作设置一个条件,检查可能为零/无效的数字是否不必添加到计算中 2我会失去NEON Intrinsic给我的速度提升吗?

我曾想过这在NEON intrinsics中会是什么样子:

if (!(a > 1 && b > 1 && a < w-2 && b < h-2)) {
  ...
  continue;
}

// other operations
我想知道当a和b是4向量时,这是否真的可以写

1我是否必须为后面的每个操作设置一个条件,检查可能为零/无效的数字是否不必添加到计算中


2我会失去NEON Intrinsic给我的速度提升吗?

似乎a和b是x和y坐标,正在检查它们是否在图像大小范围内。它们很可能被用作索引。NEON寄存器中的值不能用作索引。为了达到这个目的,它们必须被转移到ARM寄存器中,这会带来可怕的开销。在这个特殊的程序中,最好远离霓虹灯。你是对的,这是a和b的用法。在你看来,GPGPU是否能更好地加速投影残差的计算?在这种情况下,GPGPU的刻度甚至比NEON更差。你应该重新考虑你的算法。a和b在每次迭代时必须是随机的吗?是否不可能按顺序访问像素?变换是不断变化的,因此投影位置将不允许按顺序读取内存。在这种情况下,算法一开始就不可模拟。