访问的未知对齐方式:/ SLP:step不分割矢量大小

时间:2015-08-08 13:06:06

标签: gcc vectorization

访问的未知对齐方式:/ SLP:step不分割矢量大小。 我试图自动矢量化嵌套循环。矢量化器输出表明外部循环是矢量化的,但不是内部循环。

vectorizer throws out the following error-

/src/vectest.cpp:104: note: SLP: step doesn't divide the vector-size.
/src/vectest.cpp:104: note: Unknown alignment for access: *stack1.0_22
/src/vectest.cpp:104: note: vect_compute_data_ref_alignment:
/src/vectest.cpp:104: note: SLP: step doesn't divide the vector-size.
/src/vectest.cpp:104: note: Unknown alignment for access: rsum1
/src/vectest.cpp:104: note: vect_compute_data_ref_alignment:
/src/vectest.cpp:104: note: SLP: step doesn't divide the vector-size.

以下是代码片段:

rsum1[yi]=rsum;
gsum1[yi]=gsum;
bsum1[yi]=bsum;
asum1[yi]=asum;
routsum1[yi]=(int)routsum;
goutsum1[yi]=(int)goutsum;
boutsum1[yi]=(int)boutsum;
aoutsum1[yi]=(int)aoutsum;
yi++;
}

所有变量都声明为int。 我正在为arm编译,变量应该与机器默认值对齐。

有人可以帮助我更好地理解这个错误信息吗?

编译器是arm-linux-androideabi-g ++(GCC)4.8

完整的来源在此处上传:

[1]http://pastebin.com/8Q1t6apg

我检查了以下两个链接,虽然对齐的概念很明确,但我无法理解我的错误。

[2]https://gcc.gnu.org/projects/tree-ssa/vectorization.html#using
[3]https://stackoverflow.com/questions/12096599/gcc-vectorization-difference-between-two-similar-loops#new-answer

0 个答案:

没有答案