I converted the MASM libraries I have done recently into PB functions so that the late SSE capacity in PB could be tested on the running processor. As with the MASM versions the code only tests for Intel capacity as I don't have an AMD box to work on.
These are the results on the Intel boxes I have handy.
CPUID is supported
GenuineIntel
Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
SSE4.2 is supported
SSE4.1 is supported
SSE3 is supported
SSE2 is supported
SSE is supported
MMX is supported
Press any key to exit ....
CPUID is supported
GenuineIntel
Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz
SSE4.2 is not supported
SSE4.1 is supported
SSE3 is supported
SSE2 is supported
SSE is supported
MMX is supported
Press any key to exit ....
CPUID is supported
GenuineIntel
Genuine Intel(R) CPU 3.80GHz
SSE4.2 is not supported
SSE4.1 is not supported
SSE3 is supported
SSE2 is supported
SSE is supported
MMX is supported
Press any key to exit ....
prescott - the info is correct
CPUID is supported
GenuineIntel
Intel(R) Pentium(R) 4 CPU 3.00GHz
SSE4.2 is not supported
SSE4.1 is not supported
SSE3 is supported
SSE2 is supported
SSE is supported
MMX is supported
I think the answer is: IT WORKS FINEĀ :P
CPUID is supported
GenuineIntel
Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
SSE4.2 is not supported
SSE4.1 is not supported
SSE3 is supported
SSE2 is supported
SSE is supported
MMX is supported
Press any key to exit ....
Frank
So hutch, do any of those Core boxes support POPCNT and/or AES extensions?
Clive,
I have seen it in the reference material but have yet to do any real work on the i7. New box, new OS learning curve etc .... There are newer instructions, crc32, encryption and string handling and I have seen one MOVBE that is supposed to work like BSWAP but on different sized data. The Core2 quad I am currently using goes up to sse4.1 but its main use so far has been multicore/multithread and I have done little in terms of SSE stuff with it.
Slightly Later :
Had a quick play with the return values in ECX to test some of the later capacity, MOVBE, POPCNT AES and a few of the older ones. I get this result on the two different quads.
==========================================================
CPUID reports the following Intel specifications,
Vendor = GenuineIntel
CPU ID = Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz
CPU supports MMX SSE SSE2 SSE3 SSE4.1
Core(s) = 4 (logical)
Functions returned in ECX = SSE3 VMX SMX EST SSSE3 SSE4.1
Press any key to exit ....
==========================================================
CPUID reports the following Intel specifications,
Vendor = GenuineIntel
CPU ID = Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
CPU supports MMX SSE SSE2 SSE3 SSE4.1 SSE4.2
Core(s) = 8 (logical)
Functions returned in ECX = SSE3 VMX SMX EST SSSE3 SSE4.1 SSE4.2 POPCNT
Press any key to exit ....
==========================================================