我已經開始在新的英特爾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