Research Article

Crystals-Dilithium on ARMv8

Table 2

Summary of A64 and ASIMD instruction set in the ARMv8 platform [23, 24].

InstructionsOperandDescriptionCycles

ARM A64 instructitons
, , Signed multiplying two 32-bit registers, and writing the 64-bit destination register  =  3
, , Signed multiplying two 32-bit registers, subtracts the product from a 64-bit register value  =  -()3
, , , Arithmetic operations (addition, subtraction)  =  + ,  =  -1
, Logical shift right (, ) 1
, , Loading and storing the data from memory to the pair of general-purpose registers and the pair of general-purpose registers to memory, 2

NEON ASIMD instructions
, , Multiplying two vector register,  =  2
, , Signed multiplying two vector registers (upper half),  =  3
, , Signed multiplying two vector registers (lower half),  =  3
, , Signed multiplying two vector registers (upper half), subtracts the product from a 64-bit register value  =  -()3
, , Signed multiplying two vector registers (lower half), subtracts the product from a 64-bit register value  =  -()3
, , , , , , Narrowing half in each vector register, and writes the vector to the lower or upper half, [, ] 2
, , , Arithmetic operations (addition, subtraction)  =  + ,  =  -1
, {-}, []Loading and storing the data from memory to vector registers and vector registers to memory, -2