假設我有在128位變量16個ASCII字符(因此16個8位數字)/註冊多個號碼的位掩碼。我想創建一個位掩碼,其中這些位將是高位,其位位置(索引)由這16個字符表示。有效的方式來創建從可能使用SSE/SSE2/SSE3/SSE4指令
例如,如果由這16個字符構成的字符串是"CAD..."
,則在位掩碼的第67位,第65位,第68位等應爲1.其餘位應爲0.其效率是多少?專門使用SIMD指令做的方法?
我知道其中的一種技術是這樣的:2^(67-1)+2^(65-1)+2^(68-1)+...
但是這將需要大量的操作。如果可能的話,我想在一個/兩個操作/指令中完成。
請讓我知道解決辦法。
聽起來你對發生的或有缺字母的測試? – Mysticial 2012-04-09 03:23:56
我不認爲甚至AVX2聚集/分散可以爲評論這樣做有效地... – Mysticial 2012-04-09 03:26:39
@Mystical,謝謝。是的你的權利,我試圖測試發生或丟失的字符。你能想象任何其他方法比強力(兩個冪的加法)方法更好嗎? – 2012-04-09 09:12:55