Carry-less Multiplication (CLMUL) is an extension to the x86 instruction set used by microprocessors from Intel and AMD which was proposed by Intel in March 2008[1] and made available in the Intel Westmere processors announced in early 2010. Mathematically, the instruction implements multiplication of polynomials over the finite field GF(2) where the bitstring represents the polynomial . The CLMUL instruction also allows a more efficient implementation of the closely related multiplication of larger finite fields GF(2k) than the traditional instruction set.[2]
One use of these instructions is to improve the speed of applications doing block cipher encryption in Galois/Counter Mode, which depends on finite field GF(2k) multiplication. Another application is the fast calculation of CRC values,[3] including those used to implement the LZ77 sliding window DEFLATE algorithm in zlib and pngcrush.[4]
ARMv8 also has a version of CLMUL. SPARC calls their version XMULX, for "XOR multiplication".
^"Intel Software Network". Intel. Archived from the original on 2008-04-07. Retrieved 2008-04-05.
^Shay Gueron; Michael E. Kounavis (2014-04-20). "Intel Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode – Rev 2.02" (PDF). Intel. Archived from the original on 2019-08-06.
^"Fast CRC Computation for Generic Polynomials Using PCLMULQDQ" (PDF).
^Vlad Krasnov (2015-07-08). "Fighting Cancer: The Unexpected Benefit Of Open Sourcing Our Code". CloudFlare. Retrieved 2016-09-04.
and 23 Related for: CLMUL instruction set information
Carry-less Multiplication (CLMUL) is an extension to the x86 instructionset used by microprocessors from Intel and AMD which was proposed by Intel in...
The FMA instructionset is an extension to the 128 and 256-bit Streaming SIMD Extensions instructions in the x86 microprocessor instructionset to perform...
The x86 instructionset refers to the set of instructions that x86-compatible microprocessors support. The instructions are usually part of an executable...
Operations) instructionset, announced by AMD on May 1, 2009, is an extension to the 128-bit SSE core instructions in the x86 and AMD64 instructionset for the...
multiplication can be implemented using a carryless multiply such as CLMULinstructionset, which is good for n ≤ 64. A multiplication uses one carryless multiply...
support for the instruction in June 2015. (RDRAND is available in Ivy Bridge processors and is part of the Intel 64 and IA-32 instructionset architectures...
the x86 architecture, the CPUID instruction (identified by a CPUID opcode) is a processor supplementary instruction (its name derived from CPU Identification)...
The F16C (previously/informally known as CVT16) instructionset is an x86 instructionset architecture extension which provides support for converting...
also known as Gesher New Instructions and then Sandy Bridge New Instructions) are SIMD extensions to the x86 instructionset architecture for microprocessors...
processors, the number of ALU instructions in the decoding step can be reduced by taking advantage of the CLMULinstructionset. If MASK is the constant binary...
as 80x86 or the 8086 family) is a family of complex instructionset computer (CISC) instructionset architectures initially developed by Intel based on...
Intel Atom is a line of IA-32 and x86-64 instructionset ultra-low-voltage processors by Intel Corporation designed to reduce electric consumption and...
including E-cores on Alder Lake Dedicated floating-point adders New instructionset extensions: PTWRITE User-mode wait (WAITPKG): TPAUSE, UMONITOR, UMWAIT...
2 low power Crestmont efficient cores (LP E-core) on the SoC tile L1 instruction cache per P-core increased to 64 KB, up from 32 KB in Raptor Cove 2 MB...
PadLock is a central processing unit (CPU) instructionset extension to the x86 microprocessor instructionset architecture (ISA) found on processors produced...
version 5) was a SIMD instructionset extension proposed by AMD on August 30, 2007 as a supplement to the 128-bit SSE core instructions in the AMD64 architecture...