Disabling SSE2 support

Disabling SSE2 support

Hi folks. I found SDE to be fantastic for emulating instruction sets not supported by my CPU, but is it possible to do the reverse and disable support for specific extensions?

I'm working on a project that uses lots of assembly intrinsics in an abstract vector math library. But things like vectors of 4 integers are only supported when the CPU has SSE2 capabilities, and some operations even require SSE3 or SSE4. It's up to the user to know when an operation can be used or not, and this is becoming very hard to test rigorously since I don't have a system without SSE2 support at my disposal.

If SDE is of no help in this situation, does anyone perhaps know of other ways to disable specific instruction set extensions on the CPU? Thanks for any suggestions.

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi, Thanks for the feedback.

Yes, you can use the "-chip-check PENTIUM3" to catch the execution of SSE2 instructions (and other instructions added on Pentium4).
Look at the output of "sde -thelp" to see the various -chip-check-* knobs.
Different options to dump stuff to a file or keep going to find all of them, etc.
One of them, -chip-check-list will list all the processors names it knows about:
as in
path-to-kit/sde -chip-check-list -- someprogram

Brilliant, thanks for the quick reply!

On a somewhat unrelated note, are there any plans for adding a graphical version of SDE? That would help avoid having to dig through the somewhat obscure command line options. If I find some spare time to do it myself I'd love to contribute it (probably Windows only). Cheers!

I found that I still had to set -sse2_cpuid 0 even though -chip_check PENTIUM3 was set. Is this by design? Also -chip_check_list wasn't working for me.

The cpuid emulators are separate from the instruction emulators

to allow people to test dispatch.
about -chip-check-list: are you using the latest version of sde?
show the command you typed and the error you saw.

Ah yes controlling the CPUID flags separately helps check whether an application uses the extension when considered available. Got it.

I used the following prompt (which shows you the version) and command line:

>sde -chip-check-list -- C:\\app.

There is no error message, it just returns to the prompt immediately without showing the chip names.

Hi, I was wondering
how to disable SSE2 from test.exe so that test.exe will use only SSE .

Leave a Comment

Please sign in to add a comment. Not a member? Join today