sse4

    5熱度

    2回答

    我想,我聽說過,但不知道在哪裏。 UPD:我告訴JIT

    8熱度

    1回答

    除了測試單個寄存器是否全零之外,您還可以使用SSE4.1 ptest做什麼? 您可以使用SF和CF的組合來測試關於兩個未知輸入寄存器的任何有用信息嗎? 什麼是PTEST的好處?你可能會認爲這將是很好的檢查結果爲填充比較(如PCMPEQD或CMPPS),但至少在英特爾CPU,it costs more uops to compare-and-branch using PTEST + JCC than

    2熱度

    1回答

    如何使用pcmpestri指令編寫類似於strpos函數的函數?我可以使用g ++編譯器。 pcmpestri是在SSE4

    0熱度

    1回答

    如何獲得兩個字符串字符比較表與SSE 4.2內部函數在C? _mm_cmpistrm重要位的返回掩碼,即通過比較表處理結果對char by char進行聚合函數。 __m128i _mm_cmpistrm ( __m128i a, __m128i b, const int mode ); 如何通過字符比較表提取字符而沒有任何聚合func調用? (也許_SIDD_U

    6熱度

    1回答

    根據描述的算法by Intel [pdf],我在pixman中實現了快速x888→565像素轉換功能。他們的代碼轉換x888 - > 555,而我想轉換爲565.不幸的是,轉換爲565意味着高位被設置,這意味着我不能使用符號飽和包指令。直到SSE4.1才加入未簽名的包裝指令packusdw。我想用SSE2來實現它的功能,或者找到另一種方式來做到這一點。 該函數需要兩個包含4個32位像素的XMM寄存

    5熱度

    1回答

    假設我有上證所SSE4.1,而不是AVX(2),什麼是加載一個包裝的內存佈局是這樣的(所有32位整數),最快的方法: a0 b0 c0 d0 a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3 分爲四個向量a, b, c, d ? a: {a0, a1, a2, a3} b: {b0, b1, b2, b3} c: {c0, c1, c2, c3} d: {d0, d

    3熱度

    3回答

    我試着在我的電腦上運行下面的程序(Fedora 17 32bit)。我怎樣才能使我的系統支持popcnt快速人口計數指令? #include <stdio.h> #include <smmintrin.h> int main(void) { int pop = _mm_popcnt_u32(0xf0f0f0f0ULL); printf("pop = %d\n", pop

    2熱度

    1回答

    給定xmm0中的打包字節,將每個字節的符號 (即最高位)位提取到xmm1的有效方法是什麼?換句話說,我想 計算邏輯AND與0x80爲每個打包字節。 例如: xmm0: 0xff 0xef 0x80 0x7f 0x01 ... xmm1: 0x80 0x80 0x80 0x00 0x00 ...

    2熱度

    1回答

    我研究了AVX或AVX2 ISA支持的字符串指令,但是我找不到像SSE4.2這樣的任何256位字符串比較指令如果有任何字符串比較我找不到它們?否則爲什麼AVX/AVX2 ISA不支持256位字符串指令? 我還發現,AVX2不支持mullo爲unsigned short作爲16位無符號整數,我不知道原因。因爲它已在SSE4.2中得到支持。

    6熱度

    3回答

    我需要快速比較機器上的兩個字符串與SSE4支持。我怎樣才能不用寫彙編器插入? 一些包裝如long long bitmask = strcmp(char* a, char* b)將是完美的。