Checking for streaming simd extensions 2 support, Example 3-4, Identification of sse2 with cpuid -5 – Intel ARCHITECTURE IA-32 User Manual
Page 185

Coding for SIMD Architectures
3
3-5
Checking for Streaming SIMD Extensions 2 Support
Checking for support of SSE2 is like checking for SSE support. You
must also check whether your operating system (OS) supports SSE. The
OS requirements for SSE2 Support are the same as the requirements for
SSE.
To check whether your system supports SSE2, follow these steps:
1.
Check that your processor has the
cpuid
instruction.
2.
Check the feature bits of
cpuid
for SSE2 technology existence.
3.
Check for OS support for SSE.
shows how to find the SSE2 feature bit (bit 26) in the
cpuid
feature flags.
SSE2 requires the same support from the operating system as SSE. To
find out whether the operating system supports SSE2, execute an SSE2
instruction and trap for an exception if one occurs. Catching the
exception in a simple try/except clause (using structured exception
handling in C++) and checking whether the exception code is an invalid
opcode will give you the answer. See Example 3-5.
Example 3-4
Identification of SSE2 with
cpuid
…identify existence of cpuid instruction
…
; identify signature is genuine intel
mov eax, 1
; request for feature flags
cpuid
; 0Fh, 0A2h cpuid instruction
test EDX, 004000000h
; bit 26 in feature flags equal to 1
jnz
Found