CLMUL
E637104
CLMUL is an x86 instruction set extension that accelerates carry-less multiplication operations used in cryptography and error-correcting codes.
Observed surface forms (1)
| Surface form | Occurrences |
|---|---|
| Zbc (carry-less multiplication) | 1 |
Statements (48)
| Predicate | Object |
|---|---|
| instanceOf | x86 instruction set extension ⓘ |
| acceleratesOperation |
GF(2) polynomial multiplication
ⓘ
carry-less multiplication ⓘ |
| alsoKnownAs | PCLMULQDQ NERFINISHED ⓘ |
| benefit |
faster CRC and checksum algorithms
ⓘ
hardware acceleration of polynomial multiplication over GF(2) ⓘ reduced latency for GCM authentication ⓘ |
| bitwiseInterpretation | treats operands as polynomials over GF(2) ⓘ |
| carriesHandled | no integer carries (carry-less) ⓘ |
| category | SIMD integer instruction extension ⓘ |
| compatibleWith | SSE4.2 NERFINISHED ⓘ |
| cpuidLeaf | CPUID leaf 1 ECX bit 1 ⓘ |
| definedIn |
AMD64 Architecture Programmer’s Manual
NERFINISHED
ⓘ
Intel 64 and IA-32 Architectures Software Developer’s Manual NERFINISHED ⓘ |
| extensionOf | SSE instruction set ⓘ |
| featureFlag | PCLMULQDQ CPUID feature bit ⓘ |
| fullName | Carry-Less Multiplication instruction set NERFINISHED ⓘ |
| hasVariant | VPCLMULQDQ ⓘ |
| improvesPerformanceFor |
AES-GCM implementations
ⓘ
CRC32C computation ⓘ Reed-Solomon style codes over GF(2^k) ⓘ |
| instructionForm | PCLMULQDQ xmm, xmm/m128, imm8 ⓘ |
| introducedBy | Intel NERFINISHED ⓘ |
| introducedWithMicroarchitecture | Intel Westmere NERFINISHED ⓘ |
| introducedYear | 2008 ⓘ |
| opcodeName | PCLMULQDQ NERFINISHED ⓘ |
| operandSize | 64-bit lanes within 128-bit XMM registers ⓘ |
| operatesOnRegisterType | XMM ⓘ |
| operationDomain |
GF(2^n)
ⓘ
binary finite fields ⓘ |
| requires | SSE2 support ⓘ |
| resultType | 128-bit carry-less product ⓘ |
| supportedByVendor |
AMD
NERFINISHED
ⓘ
Intel NERFINISHED ⓘ VIA NERFINISHED ⓘ |
| supportsImmediateControl | 8-bit immediate selects source 64-bit halves ⓘ |
| targetArchitecture |
x86
ⓘ
x86-64 ⓘ |
| usedByLibrary |
BoringSSL
NERFINISHED
ⓘ
OpenSSL NERFINISHED ⓘ |
| usedByLibrary |
Linux kernel crypto API
NERFINISHED
ⓘ
cryptography libraries implementing AES-GCM ⓘ |
| usedIn |
CRC computation
ⓘ
GHASH NERFINISHED ⓘ Galois/Counter Mode (GCM) NERFINISHED ⓘ cryptography ⓘ error-correcting codes ⓘ message authentication codes ⓘ |
Referenced by (3)
Full triples — surface form annotated when it differs from this entity's canonical label.
this entity surface form:
Zbc (carry-less multiplication)