In the Carry-less Multiplication x86 instruction, PCLMULQDQ
, what does the "P" prefix stand for?
I've looked in these sources, but none of them explain the mnemonics.
Secondly, what does "QDQ" stand for?
P is for Packed (integer). All SSE/AVX integer instructions have mnemonics starting with p
, like paddb
. (Or vp
for the AVX versions). As opposed to ...ps
(packed-single) and ...pd
packed-double instructions.
Q for Quad-word (64-bit) chunks of the source operand multiplying into a double-quad (128-bit) integer.
Related:
punpcklqdq
as an example of where dq
is used instead of o
(octword like scalar cqo
), for interleaving 64-bit chunks to make a 128-bit, following the same pattern as punpcklwd
(16 bit interleave).cbw
as well as SIMD element sizes.