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