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

Page 185

Advertising
background image

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.

Example 3-4

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

Advertising