MASM32 Downloads
Is this possible ? to have SSE4.1 and not SSE3 ?Note: SSE and SSE2 are pre-set since the program will exit if SSE2 is not present, so this bit must be set by the test.
Supported by Processor and installed Operating System:------------------------------------------------------ MMX, CMOV and FCOMI, SSE, SSE2, SSE3, SSSE3, SSE4.1, POPCNT, SSE4.2 featurenumber = 13
Appear to match the Intel specs:http://ark.intel.com/products/77773
movzx eax, byte ptr [esp+8] if 1 imul eax, eax, 01010101h ; 4 bytes shorter, faster else mov ah, al mov ecx, eax shl eax, 16 add eax, ecx endif movd xmm0, eax pshufd xmm0, xmm0, 0 ; populate char
Intel(R) Pentium(R) CPU G3220 @ 3.00GHz (SSE4)24909 cycles for 100 * memchr scasb2864 cycles for 100 * memchr SSE2a2399 cycles for 100 * memchr SSE2b24934 cycles for 100 * memchr scasb2882 cycles for 100 * memchr SSE2a2366 cycles for 100 * memchr SSE2b24923 cycles for 100 * memchr scasb2886 cycles for 100 * memchr SSE2a2418 cycles for 100 * memchr SSE2b36 bytes for memchr scasb88 bytes for memchr SSE2a92 bytes for memchr SSE2b96 = eax memchr scasb96 = eax memchr SSE2a96 = eax memchr SSE2b
Intel(R) Celeron(R) M CPU 420 @ 1.60GHz (SSE3)43821 cycles for 100 * memchr scasb4477 cycles for 100 * memchr SSE2 lps/hps5556 cycles for 100 * memchr SSE2 nidud5205 cycles for 100 * memchr SSE2 ups43778 cycles for 100 * memchr scasb4476 cycles for 100 * memchr SSE2 lps/hps5606 cycles for 100 * memchr SSE2 nidud5206 cycles for 100 * memchr SSE2 ups43762 cycles for 100 * memchr scasb4482 cycles for 100 * memchr SSE2 lps/hps5607 cycles for 100 * memchr SSE2 nidud5200 cycles for 100 * memchr SSE2 ups36 bytes for memchr scasb88 bytes for memchr SSE2 lps/hps92 bytes for memchr SSE2 nidud84 bytes for memchr SSE2 ups
Intel(R) Pentium(R) CPU G3220 @ 3.00GHz (SSE4)24916 cycles for 100 * memchr scasb2889 cycles for 100 * memchr SSE2 lps/hps2422 cycles for 100 * memchr SSE2 nidud2351 cycles for 100 * memchr SSE2 ups24927 cycles for 100 * memchr scasb2890 cycles for 100 * memchr SSE2 lps/hps2469 cycles for 100 * memchr SSE2 nidud2342 cycles for 100 * memchr SSE2 ups24921 cycles for 100 * memchr scasb2885 cycles for 100 * memchr SSE2 lps/hps2405 cycles for 100 * memchr SSE2 nidud2351 cycles for 100 * memchr SSE2 ups36 bytes for memchr scasb88 bytes for memchr SSE2 lps/hps92 bytes for memchr SSE2 nidud84 bytes for memchr SSE2 ups