SIMD Visualisers
Interactive visualisers for x86 SIMD instructions
PSHUFB / PSHUFW / PSHUFD / PSHUFLW / PSHUFHW
Integer shuffles — byte, word, dword (per 128-bit lane, mask or imm8 controlled)
SSE / SSE2 / SSSE3 / AVX2 / AVX-512
MMX / XMM / YMM / ZMM
→
SHUFPS / SHUFPD
Float shuffles — single / double precision, two source registers, imm8 controlled
SSE / SSE2 / AVX / AVX-512F
XMM / YMM / ZMM
→
VSHUFF32x4 / VSHUFF64x2 / VSHUFI32x4 / VSHUFI64x2
128-bit lane shuffles — pick whole 128-bit lanes from two sources, imm8 controlled, k-mask supported
AVX-512F / AVX-512F+VL
YMM / ZMM
→
VPBROADCASTB/W/D/Q / VBROADCASTSS/SD / VBROADCAST*x*
Broadcasts — replicate one element or a 128-/256-bit unit across the destination, k-mask supported
AVX / AVX2 / AVX-512
XMM / YMM / ZMM
→
VPMOVSX / VPMOVZX (BW/BD/BQ/WD/WQ/DQ)
Sign / zero extension — widen each packed byte/word/dword element to a larger element, k-mask supported
AVX / AVX2 / AVX-512
XMM / YMM / ZMM
→
PCMPEQB / PCMPEQW / PCMPEQD / PCMPEQQ
Packed equality — all-ones or all-zeros per element, or an opmask in the EVEX form
SSE2 / SSE4.1 / AVX / AVX2 / AVX-512
XMM / YMM / ZMM
→
VPCMPB/W/D/Q / VPCMPUB/UW/UD/UQ
Predicate compares into an opmask — imm8 picks EQ/LT/LE/FALSE/NEQ/NLT/NLE/TRUE, signed or unsigned
AVX-512F / AVX-512BW (+VL)
XMM / YMM / ZMM
→