Too many times in the past I've gotten bug reports from users with systems without SSE2 support, because I had unknowingly used an SSE2 instruction somewhere.
-my compiler (Delphi) can't tell me where I've used an SSE2 instruction
-I can't find anything in my BIOS to disable SSE2 (apparently some have such features?)
-it's hard to rely on users for debugging things efficiently (making sure they could unzip files properly, etc)
-I don't have a time machine to go back to prehistory where non-SSE2 systems still existed
Anyone knows a software solution to efficiently debug this?
My #1 suspect is ANDNPS. I hesitated using it, as AMD's docs say it's SSE2, but pretty much everywhere on the net (even Wikipedia)it's said to be SSE1. ANDPS, (X)ORPS are all SSE1.
I swear that "AMD64 Architecture Programmers Manual Volume 4: 128-Bit Media Instructions" claims it's SSE2.
However I just got rid of it and I'm still reported it doesn't work. Is ANDNPS really SSE2? (& thus is it another useless instruction released in the same pack as PANDN that does the same thing?)
Does Intel have a reliable list of instruction sets somewhere?
Edit: I found "Intel 64 and IA-32 Architectures Software Developers Manual Volume 1: Basic Architecture" that says that ANDNPS is an SSE1 instruction.
But also this website that lists it as an SSE2: http://softpixel.com/~cwright/programming/simd/sse2.php