问题描述
检查字符是否在字符串中应该非常简单,以加快使用simd的速度。我希望现代自动矢量化能够为我带来可移植性和速度,但是我不知道如何给编译器足够的提示来实现这一目标。
这是我尝试过的:
static char find1[] = {
'"','"','\\','\\'
};
int match8(char *tpl)
{
int r = 0;
for (int at = 0; at < 8; at++) {
r |= (tpl[at] == find1[at]);
}
for (int at = 0; at < 8; at++) {
r |= (tpl[at] == find1[at + 8]);
}
return r;
}
根据天作之合
clang确实发出了一些漂亮的simd,但是gcc展开了循环。
这是gcc的继承限制,还是我可以更改我的代码以使其发出simd吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)