x64 Assembly Tutorial 54: Floating Point Sign Masks (SIMD Floating Point ASM Examples) @WhatsACreel
x64 Assembly Tutorial 54: Floating Point Sign Masks (SIMD Floating Point ASM Examples)  @WhatsACreel
Uploaded October 2012 | Updated September 2026, 2 weeks ago
Today we'll look at three instructions, MOVMSKPS, MOVMSKPD and PMOVMSKB. They move the signs of elements in SSE registers into an x86 register. They are especially useful after the SIMD comparison instructions.

I made an error at the end, the final example's first move should be MOVAPS instead of MOVUPS and the data should be aligned to 16 bytes.

Support What's a Creel? on Patreon:
patreon.com/whatsacreel

FaceBook:
facebook.com/whatsacreel

Music Channel:
youtube.com/channel/UC2nWRGqPL6O-Lm8mexWhISQ

Another channel with random things:
youtube.com/channel/UCK7bPumWNzWRnb3N8LCzKsA

Example at the end is from:
stackoverflow.com/questions/116485/fastest-way-to-see-how-many-bytes-are-equal-between-fixed-length-arrays
x64 Assembly Tutorial 54: Floating Point Sign Masks (SIMD Floating Point ASM Examples)Agner Fogs VCL (Vector Class Library Installation and Overview)Why is Radix Sort so Fast? Part 3 Comparison and Code, Radix Sort vs QuickSortC++ Tutorial 13: Passing by Reference vs Pointerx64 Assembly Tutorial 60: C++ Image Processing Negative Image, Negate ColorsSet Associative Caches 1: What is a Set Associative Cache?NVIDIA CUDA Tutorial 7: An Embarrassingly Parallel Algorithm 2x64 Assembly and C++ Tutorial 53: Classesx64 Assembly and C++ Tutorial 66: Checking Error (Low Level, Manual Accuracy and Profiling Example)x64 Assembly and C++ Tutorial 64: Calling the BoxBlur function in Assembly from C++ DLLFor Loop Puzzles 2: SolutionsModern x64 Assembly 2: 16 Bit Registers
Creel |

x64 Assembly Tutorial 54: Floating Point Sign Masks (SIMD Floating Point ASM Examples)

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER