Start64!In this tutorial we're looking at comparison instructions that compare SSE registers but set the x86 flags register. These allow us to compare the lowest singles or doubles in SSE registers and then jump using the x86 conditional jumps or perform conditional moves.

There's a complication. Performing operations on NaN (Not a Number) may or may not generate an exception. Usually the result (if there's no exception) is QNaN but there seems very little literature on exactly what circumstances generate the Float Point Invalid Operation exception, I've included a table as the final slide which shows most of the operations outcomes on my CPU but I'm not sure that these results aren't hardware specific.

x64 Assembly and C++ Tutorial 56: SSE Comparisons that Set rFlags - YouTube