我试图对这个简单的缩减循环进行矢量化:
#ifndef POISSONSOLVERJACOBI_HPP
#define POISSONSOLVERJACOBI_HPP
#include <stdlib.h>
class P{
public:
P();
void iterate();
protected:
float* m_func;
unsigned int m_maxIt;
};
P::P(){
m_func=(float*)calloc(5000,sizeof(float));
m_maxIt=5000;
}
void P::iterate(){
float err(0.);
for(unsigned int i(0);i< m_maxIt;i++){
err+=m_func[i];
}
}
#endif
使用以下编译命令与 gcc 4.6.3 -march = x86_64:
g++ -c -O3 -msse2 -ftree-vectorizer-verbose=2 -fassociative-math -funsafe-math-optimizations
有人可以帮我指出为什么会失败吗?