我已经开始在新的英特尔Sandy Bridge处理器上播放AVX指令。我使用GCC 4.5.2,MinGW64的TDM-GCC 64bit版本。GCC中的矢量类型__m128,__m256与超载冲突
我想超载运营商< < ostream能够打印出矢量类型__m256
,__m128
等到控制台。但我遇到了一个超载冲突。下面的代码的第二个函数产生一个错误“的冲突与早先的声明void f(__vector(8) float)
”:
void f(__m128 v) {
cout << 4;
}
void f(__m256 v) {
cout << 8;
}
看来,编译器不能两种类型区分和consideres他们两个f(float __vector)
。
有没有办法解决这个问题?我一直无法在网上找到任何东西。任何帮助是极大的赞赏。
请注意,从gcc-5开始,这不再需要,因为默认的'-fabi-version'已更改。 – 2014-12-04 15:02:00