2016-07-24 146 views

回答

3

這是一個GCC特定擴展名,用於創建整數&大於64位的浮點類型,據我所知在VC++中沒有直接替換,但有一個__m128d類型可以替代。

1

這是gcc vector extensions的一個例子,它是對SIMD指令的抽象。

這個特殊行爲一個長度總共爲16個字節的向量創建一個類型別名vec,並且由32位大小的無符號迭代器組成。

MSVC似乎沒有等效的擴展名。通過alignment routines and inline assembly支持SIMD的使用。因此,沒有辦法完全重寫該行,並且僅使用這一行而不足以重寫,而且還不足以使用別名或使用該類型的對象的行。

+0

MSVC提供了[__m128i](https://msdn.microsoft.com/en-us/library/26232t5c.aspx)數據類型,其等效佈局與OP正在查找的數據類型相同。 「__m128i」類型的變量也適合在16字節邊界上對齊。通過[編譯器內部函數](https://msdn.microsoft.com/en-us/library/26td21ds.aspx)支持SIMD指令。 x64編譯器不支持內聯彙編,並且內聯彙編不是實現SIMD代碼的推薦方式。 – IInspectable

相關問題