【发布时间】:2020-06-02 11:55:10
【问题描述】:
是否可以使用 ARM NEON Intrinsics 一次为向量的多个通道设置不同的值?
例如,而不是像这样做
int32x2_t a, b, c, d, e, f;
.......... a few other operations...................
int *val;
...............val is pointing to another variable......
for(int i=0;i<var1;i++)
{
a = vset_lane_s32(val1[i], a, 0);
a = vset_lane_s32(val2[i], a, 1);
b = vset_lane_s32(val3[i], b, 0);
b = vset_lane_s32(val4[i], b, 1);
c = vset_lane_s32(val5[i], c, 0);
c = vset_lane_s32(val6[i], c, 1);
d = vset_lane_s32(val7[i], d, 0);
d = vset_lane_s32(val8[i], d, 1);
few operations based on a,b,c, and d
}
从 val1 到 val7 的值在每次循环迭代中都会发生变化。还有其他最佳的初始化方式吗?
【问题讨论】:
标签: optimization arm simd intrinsics neon