Intel® PCLMULQDQ instruction is a new instruction available beginning with the all new 2010 Intel® Core™ processor family based on the 32nm Intel® microarchitecture codename Westmere. PCLMULQDQ instruction performs carry-less multiplication of two 64-bit operands.
This paper provides information on the instruction, and its usage for computing the Galois Hash. It also provides code examples for the usage of PCLMULQDQ, together with the new AES instructions (introduced together with PCLMULQDQ) for efficient implementation of AES in Galois Counter Mode (AES-GCM).
This version of the paper also provides high performance code examples for AES-GCM, and discloses, for the first time, their measured performance numbers.
[Revisions history: Rev. 1.0 in 4/2008; Rev. 2.0 in 5/2009; Rev. 2.01 in 9/2012]