Implementation notes: aarch64, pi4b, crypto_aead/ketjemajorv2

Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: ketjemajorv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
426547413 0 027259 872 864T:ARMv8Agcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
426547413 0 028371 872 880T:ARMv8Agcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
426547361 0 027403 872 864T:ARMv8Agcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
426547013 0 025339 856 856T:ARMv8Agcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
7467645709 0 067497 896 872T:generic64clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
7823247957 0 069745 896 872T:generic64lcclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
8178847329 0 068370 880 880T:generic64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
8534448573 0 069618 880 880T:generic64lcgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
8623346061 0 066034 880 864T:generic64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
9156746365 0 066338 880 864T:generic64lcgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
9956842293 0 060818 864 856T:generic64lcgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
10045744213 0 064258 880 864T:generic64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
10134644909 0 064954 880 864T:generic64lcgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
10401347441 0 065962 864 856T:generic64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1706168433 0 030217 896 872T:compactclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
18483411499 0 032467 872 880T:compactgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
21424918861 0 040633 896 872T:generic32clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
22748818585 0 038586 880 864T:generic32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
22748821717 0 042770 880 880T:generic32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
23025115273 0 033794 864 856T:generic32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
23291815753 0 035818 880 864T:generic32gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
2559246834 0 026755 872 864T:compactgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
3696686942 0 026923 872 864T:compactgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
4691946077 0 024531 856 856T:compactgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
339598084362 1192 4797130 1904 960T:refg++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
499262463539 1192 4781362 1920 944T:refg++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
726224159203 1192 4784896 1920 944T:refg++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
959586647016 1192 4763941 1872 904T:refg++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625

Compiler output


KeccakP-1600-armv8a-neon.s: <instantiation>:18:18: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s:     mov     v5.2d[0], v0.2d[1]            // v5 = (A[4] ^ A[14]) || ????
KeccakP-1600-armv8a-neon.s:                  ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:524:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s:     KeccakRound
KeccakP-1600-armv8a-neon.s:     ^
KeccakP-1600-armv8a-neon.s: <instantiation>:23:18: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s:     mov     v4.2d[1], v3.2d[0]            // v4 = B[4] || B[3]
KeccakP-1600-armv8a-neon.s:                  ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:524:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s:     KeccakRound
KeccakP-1600-armv8a-neon.s:     ^
KeccakP-1600-armv8a-neon.s: <instantiation>:57:18: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s:     mov     x11, v20.2d[0]                // x11   = A[1]
KeccakP-1600-armv8a-neon.s:                  ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:524:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s:     KeccakRound
KeccakP-1600-armv8a-neon.s:     ^
KeccakP-1600-armv8a-neon.s: <instantiation>:2:18: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s:     mov     x10, v25.2d[0]
KeccakP-1600-armv8a-neon.s:                  ^
KeccakP-1600-armv8a-neon.s: <instantiation>:59:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s:     RhoPi   v25.2d[0], x11, x10, 1        // A[10] = ROTL64(A[1], 1)
KeccakP-1600-armv8a-neon.s:     ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:524:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:ARMv8Aclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


Keccak-f.cpp: In file included from Keccak-f.cpp:17:
Keccak-f.cpp: Keccak-f.h: In instantiation of 'void KeccakF::forward(std::vector<Lane>&) const [with Lane = long long unsigned int]':
Keccak-f.cpp: Keccak-f.cpp:175:12:   required from here
Keccak-f.cpp: Keccak-f.h:473:33: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
Keccak-f.cpp:   473 |     for(int i=startRoundIndex; i<startRoundIndex+nrRounds; i++)
Keccak-f.cpp:       |                                ~^~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refg++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)