关于自动向量化不同宽度的整数之间的赋值
我最近在试用ICC10.1,主要是了解它的自动向量化技术.
根据我的应用,我对不同宽度整数之间的赋值做了大量的实验:初步结果如下:
1)对于非流情况,只有整数之间的赋值才可能自动向量化
2)对于流,低宽度给高宽度赋值编译器可能会使用unpack指令先将低宽度unpack到高宽度,然后进行赋值
3)对于高宽度流给低宽度流赋值,不能使用pack指令将高宽度pack到低宽度.
例子:
const int LEN = 10000;
BYTE low_width[LEN];
int high_width[LEN];
for(int i=0; i<LEN; i++)
{
low_width[i] = high_widht[i];
}
编译器报告:unsupported data type.
请问有没有办法修改代码,使得上面这种情况也可以自动向量化?