我有以下代码:
void palette(char* in, int* out, int* palette, int n) {
for(int i = 0; i < n ; ++i)
{
int value = palette[in[i]];
out[i] = value;
}
}
下面是生成的编译器代码https://godbolt.org/z/x3nvrw我想知道是否有可能生成更好的汇编,因为输入和输出数据指向不同的内存位置。是否有一些“别名”信息我可以注入到代码中,以便生成更好的程序集?(神箭的输出我实在看不懂)
编辑:我的问题实际上是:
null
null
根本原因是缓存在使用并行硬件分类别名方面非常有效,并且可以以许多GB/秒的速率进行分类。