Implementation notes: aarch64, minimac, crypto_kem/titaniumccatoy

Computer: minimac
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20211108
Operation: crypto_kem
Primitive: titaniumccatoy
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1293949? ? ?? ? ?T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021060220210529
1353280? ? ?? ? ?T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021060220210529
1360880? ? ?? ? ?T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021060220210529
127849405? ? ?? ? ?T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021060220210529
128283656? ? ?? ? ?T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021060220210529
174778640? ? ?? ? ?T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021060220210529

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: In file included from encrypt.c:18:
encrypt.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/x86intrin.h:13:
encrypt.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/ia32intrin.h:210:16: error: expected identifier or '('
encrypt.c: unsigned int D;
encrypt.c: ^
encrypt.c: ./param.h:29:11: note: expanded from macro 'D'
encrypt.c: #define D 256
encrypt.c: ^
encrypt.c: In file included from encrypt.c:18:
encrypt.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/x86intrin.h:13:
encrypt.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/ia32intrin.h:211:20: error: cannot take the address of an rvalue of type 'int'
encrypt.c: __builtin_memcpy(&D, &__A, sizeof(__A));
encrypt.c: ^~
encrypt.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/ia32intrin.h:227:22: error: expected identifier or '('
encrypt.c: unsigned long long D;
encrypt.c: ^
encrypt.c: ./param.h:29:11: note: expanded from macro 'D'
encrypt.c: #define D 256
encrypt.c: ^
encrypt.c: In file included from encrypt.c:18:
encrypt.c: In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/x86intrin.h:13:
encrypt.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/ia32intrin.h:228:20: error: cannot take the address of an rvalue of type 'int'
encrypt.c: __builtin_memcpy(&D, &__A, sizeof(__A));
encrypt.c: ^~
encrypt.c: /Library/Developer/CommandLineTools/usr/lib/clang/12.0.5/include/ia32intrin.h:244:9: error: expected identifier or '('
encrypt.c: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: encrypt.c:18:10: fatal error: x86intrin.h: No such file or directory
encrypt.c: 18 | #include <x86intrin.h>
encrypt.c: | ^~~~~~~~~~~~~
encrypt.c: compilation terminated.

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

Compiler output

Implementation: T:opt
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/knownrandombytes.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: 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: 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/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.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/libkeccak.a(SimpleFIPS202.o)) was built for newer macOS version (11.2) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/libkeccak.a(SP800-185.o)) was built for newer macOS version (11.2) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Update.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash256_Update.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE256_Initialize.part.0: registers 23 and 24 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Initialize.part.0: register 26 saved somewhere other than in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash256_Initialize.part.0: register 26 saved somewhere other than in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE128_Initialize.part.0: registers 23 and 24 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE128: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC128_Initialize: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC128: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Final.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash256_Final.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _TupleHash128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE256_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE256: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC256_Initialize: registers 21 and 22 not saved contiguously in frame
try.c: ...

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

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: Undefined symbols for architecture arm64:
try.c: "_barrett_16q", referenced from:
try.c: _ntt_butterfly_1280_512 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_butterfly_1280_256 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: "_barrett_2q2", referenced from:
try.c: _intt_core.constprop.0 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_core.constprop.0 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: "_barrett_4q", referenced from:
try.c: _crypto_encrypt_keypair in libcrypto_kem_titaniumccatoy.a(encrypt.o)
try.c: _ntt_butterfly_512_512_inv in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_butterfly_512_256 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_2.constprop.0 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: "_barrett_4q2", referenced from:
try.c: _crypto_encrypt_keypair in libcrypto_kem_titaniumccatoy.a(encrypt.o)
try.c: _crypto_encrypt in libcrypto_kem_titaniumccatoy.a(encrypt.o)
try.c: _crypto_encrypt_open in libcrypto_kem_titaniumccatoy.a(encrypt.o)
try.c: _ntt_2.constprop.0 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: "_barrett_8q", referenced from:
try.c: _ntt_butterfly_768_1280 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_butterfly_768_1024 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_butterfly_1024_1024_inv in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: _ntt_butterfly_1024_1280 in libcrypto_kem_titaniumccatoy.a(ntt.o)
try.c: "_barrett_zq", referenced from:
try.c: _sampler_zq in libcrypto_kem_titaniumccatoy.a(sampler.o)
try.c: "_load_24", referenced from:
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt

Compiler output

Implementation: T:ref
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/knownrandombytes.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/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/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.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/libkeccak.a(SimpleFIPS202.o)) was built for newer macOS version (11.2) than being linked (11.0)
try.c: ld: warning: object file (/Users/djb/supercop-20210529/supercop-data/minimac/aarch64/lib/libkeccak.a(SP800-185.o)) was built for newer macOS version (11.2) than being linked (11.0)
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Update.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash256_Update.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE256_Initialize.part.0: registers 23 and 24 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Initialize.part.0: register 26 saved somewhere other than in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash256_Initialize.part.0: register 26 saved somewhere other than in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE128_Initialize.part.0: registers 23 and 24 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE128: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC128_Initialize: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC128: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash128_Final.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _ParallelHash256_Final.part.0: registers 21 and 22 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _TupleHash128_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE256_Squeeze: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _cSHAKE256: registers 19 and 20 not saved contiguously in frame
try.c: ld: warning: could not create compact unwind for _KMAC256_Initialize: registers 21 and 22 not saved contiguously in frame
try.c: ...

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: Undefined symbols for architecture arm64:
try.c: "_load_24", referenced from:
try.c: _sampler_zq in libcrypto_kem_titaniumccatoy.a(sampler.o)
try.c: "_load_32", referenced from:
try.c: _fastrandombytes in libcrypto_kem_titaniumccatoy.a(fastrandombytes.o)
try.c: "_store_32", referenced from:
try.c: _fastrandombytes in libcrypto_kem_titaniumccatoy.a(fastrandombytes.o)
try.c: ld: symbol(s) not found for architecture arm64
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref