Skip to content

CLMULH

Operation

Writes the high selected-width half of the carryless source-by-destination product.

Assembler Syntax

CLMULH.Q <ea>(e), Rn(d)

CLMULH.Q Rn(s), Rn(d)

Privilege

Unprivileged

Repeat eligibility

REP eligible; REPcc observes dst

Forms the carryless polynomial product of the selected-width source and destination values and writes its high half to the destination.

Treat each selected-width operand as a polynomial over \(\operatorname{GF}(2)\), with operand bit \(i\) as the coefficient of \(x^i\). Their double-width product is $\(P = \bigoplus_{i=0}^{n-1} s_i (d \ll i) .\)$ Addition in this expression is exclusive-or, so no carry propagates between bit positions. CLMULH writes the high \(n\) bits of \(P\) to the destination.

2.75in

Encodings

CLMULH.Q <ea>(e), Rn(d)

Format: Instruction format for CLMULH.Q <ea>(e), Rn(d)

Format: Instruction format for CLMULH.Q <ea>(e), Rn(d)

2.75in CLMULH.Q Rn(s), Rn(d)

Format: Instruction format for CLMULH.Q Rn(s), Rn(d)

Format: Instruction format for CLMULH.Q Rn(s), Rn(d)