Implementation notes: aarch64, minimac, crypto_aead/riverkeyakv2

Computer: minimac
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20211108
Operation: crypto_aead
Primitive: riverkeyakv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
25466? ? ?? ? ?T:generic64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
25599? ? ?? ? ?T:generic32lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
25732? ? ?? ? ?T:generic64lcclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
26265? ? ?? ? ?T:generic64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26399? ? ?? ? ?T:generic32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26399? ? ?? ? ?T:generic64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26533? ? ?? ? ?T:generic64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26533? ? ?? ? ?T:generic64lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26666? ? ?? ? ?T:generic32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26799? ? ?? ? ?T:generic32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
26799? ? ?? ? ?T:generic32lcgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
26932? ? ?? ? ?T:generic64lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
27199? ? ?? ? ?T:generic32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
27732? ? ?? ? ?T:generic64lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
27866? ? ?? ? ?T:generic32lcgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
27999? ? ?? ? ?T:generic32lcgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
33198? ? ?? ? ?T:referenceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021053020210529
33732? ? ?? ? ?T:generic64lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
34532? ? ?? ? ?T:generic32lcgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
35598? ? ?? ? ?T:generic64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
35732? ? ?? ? ?T:generic32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
72798? ? ?? ? ?T:referencegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
75464? ? ?? ? ?T:compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
134928? ? ?? ? ?T:compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
143994? ? ?? ? ?T:compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
155061? ? ?? ? ?T:compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
269190? ? ?? ? ?T:referencegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
286123? ? ?? ? ?T:referencegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
462915? ? ?? ? ?T:referencegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
847434? ? ?? ? ?T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
886765? ? ?? ? ?T:refnewg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
1016627? ? ?? ? ?T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
1034093? ? ?? ? ?T:refnewg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
1993122? ? ?? ? ?T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
1995255? ? ?? ? ?T:refnewg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
2112318? ? ?? ? ?T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326
2118184? ? ?? ? ?T:refnewg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021040220210326

Checksum failure

Implementation: T:compact
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
220d119bf182db9a295036a49ebfb8a0d13236a8479e1b6acbf85a93c12509ce
Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact

Compiler output

Implementation: T:ARMv8A
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-1600-armv8a-neon.s: <instantiation>:18:14: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s: mov v5.2d[0], v0.2d[1]
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:511:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s: KeccakRound
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: <instantiation>:23:14: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s: mov v4.2d[1], v3.2d[0]
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:511:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s: KeccakRound
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: <instantiation>:57:14: error: invalid operand for instruction
KeccakP-1600-armv8a-neon.s: mov x11, v20.2d[0]
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:511:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s: KeccakRound
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: <instantiation>:2:14: 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
KeccakP-1600-armv8a-neon.s: ^
KeccakP-1600-armv8a-neon.s: KeccakP-1600-armv8a-neon.s:511:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ARMv8A

Compiler output

Implementation: T:ARMv8A
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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:511: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:511: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:511: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:511:5: note: while in macro instantiation
KeccakP-1600-armv8a-neon.s: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ARMv8A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ARMv8A
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ARMv8A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ARMv8A

Compiler output

Implementation: T:compact
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
KeccakP-200-compact.c: KeccakP-200-compact.c:20:36: warning: '/*' within block comment [-Wcomment]
KeccakP-200-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-200-compact.c: ^
KeccakP-200-compact.c: 1 warning generated.
KeccakP-800-compact.c: KeccakP-800-compact.c:27:36: warning: '/*' within block comment [-Wcomment]
KeccakP-800-compact.c: /* #define DIVISION_INSTRUCTION /* comment if no division instruction or more compact when not using division */
KeccakP-800-compact.c: ^
KeccakP-800-compact.c: 1 warning generated.
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:compact

Compiler output

Implementation: T:generic32
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/kernelrandombytes.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/cpucycles.o) was built for newer macOS version (11.3) than being linked (11.0)
measure.c: ld: warning: could not create compact unwind for _init: registers 21 and 22 not saved contiguously in frame

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:generic32 T:generic32lc T:generic64 T:generic64lc T:reference

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keyakv2.cpp: In file included from Keyakv2.h:21,
Keyakv2.cpp: from Keyakv2.cpp:16:
Keyakv2.cpp: Motorist.h:31:5: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
Keyakv2.cpp: 31 | auto_ptr<UINT8> state;
Keyakv2.cpp: | ^~~~~~~~
Keyakv2.cpp: In file included from /opt/homebrew/Cellar/gcc/10.2.0_4/include/c++/10.2.1/memory:83,
Keyakv2.cpp: from Motorist.h:20,
Keyakv2.cpp: from Keyakv2.h:21,
Keyakv2.cpp: from Keyakv2.cpp:16:
Keyakv2.cpp: /opt/homebrew/Cellar/gcc/10.2.0_4/include/c++/10.2.1/bits/unique_ptr.h:57:28: note: declared here
Keyakv2.cpp: 57 | template<typename> class auto_ptr;
Keyakv2.cpp: | ^~~~~~~~
Motorist.cpp: In file included from Motorist.cpp:17:
Motorist.cpp: Motorist.h:31:5: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
Motorist.cpp: 31 | auto_ptr<UINT8> state;
Motorist.cpp: | ^~~~~~~~
Motorist.cpp: In file included from /opt/homebrew/Cellar/gcc/10.2.0_4/include/c++/10.2.1/memory:83,
Motorist.cpp: from Motorist.h:20,
Motorist.cpp: from Motorist.cpp:17:
Motorist.cpp: /opt/homebrew/Cellar/gcc/10.2.0_4/include/c++/10.2.1/bits/unique_ptr.h:57:28: note: declared here
Motorist.cpp: 57 | template<typename> class auto_ptr;
Motorist.cpp: | ^~~~~~~~
encrypt.cpp: In file included from Keyakv2.h:21,
encrypt.cpp: from encrypt.cpp:22:
encrypt.cpp: Motorist.h:31:5: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
encrypt.cpp: 31 | auto_ptr<UINT8> state;
encrypt.cpp: | ^~~~~~~~
encrypt.cpp: In file included from /opt/homebrew/Cellar/gcc/10.2.0_4/include/c++/10.2.1/memory:83,
encrypt.cpp: from Motorist.h:20,
encrypt.cpp: from Keyakv2.h:21,
encrypt.cpp: from encrypt.cpp:22:
encrypt.cpp: /opt/homebrew/Cellar/gcc/10.2.0_4/include/c++/10.2.1/bits/unique_ptr.h:57:28: note: declared here
encrypt.cpp: 57 | template<typename> class auto_ptr;
encrypt.cpp: | ^~~~~~~~

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:refnew