我已经开始在新的英特尔 Sandy Bridge 处理器上使用 AVX 指令。我正在使用 GCC 4.5.2,TDM-GCC 64 位版本的 MinGW64。
我想重载 operator<< 以便 ostream 能够将向量类型等打印__m256
到__m128
控制台。但是我遇到了超载冲突。以下代码中的第二个函数产生错误“与先前声明冲突void f(__vector(8) float)
”:
void f(__m128 v) {
cout << 4;
}
void f(__m256 v) {
cout << 8;
}
似乎编译器无法区分这两种类型并同时考虑它们f(float __vector)
。
有没有解决的办法?我一直无法在网上找到任何东西。任何帮助是极大的赞赏。