Implementation notes: amd64, dali, crypto_kem/titaniumccasuper

Computer: dali
Microarchitecture: amd64; Zen (820f01)
Architecture: amd64
CPU ID: AuthenticAMD-00820f01-178bfbff
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: titaniumccasuper
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6661568150108 0 64311536 788 1816T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
6703282146938 0 64307000 788 1816T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
6709557147183 0 64307704 788 1816T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
8352575116442 0 36278040 820 1752T:optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
8363851103288 0 36264808 820 1752T:optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
860465095076 0 64256424 788 1816T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
888297482783 0 36242286 812 1752T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
902336282124 0 64242824 788 1816T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
910531698417 0 36260512 820 1752T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
925466481861 0 64242056 788 1816T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
112058205772129 0 36234208 820 1752T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
112300563787952 0 36249824 820 1752T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
112351159463973 0 36225736 820 1752T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
112503194355537 0 36214982 812 1752T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122620231212
112953852566668 0 64228072 788 1816T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
113439133155157 0 64215728 788 1816T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212
146157001155088 0 64215112 788 1816T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122620231212

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: In file included from encrypt.c:18:
encrypt.c: In file included from /usr/lib/llvm-11/lib/clang/11.0.1/include/x86intrin.h:13:
encrypt.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/ia32intrin.h:210:16: error: expected identifier or '('
encrypt.c: unsigned int D;
encrypt.c: ^
encrypt.c: ./param.h:28: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 /usr/lib/llvm-11/lib/clang/11.0.1/include/x86intrin.h:13:
encrypt.c: /usr/lib/llvm-11/lib/clang/11.0.1/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: /usr/lib/llvm-11/lib/clang/11.0.1/include/ia32intrin.h:227:22: error: expected identifier or '('
encrypt.c: unsigned long long D;
encrypt.c: ^
encrypt.c: ./param.h:28: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 /usr/lib/llvm-11/lib/clang/11.0.1/include/x86intrin.h:13:
encrypt.c: /usr/lib/llvm-11/lib/clang/11.0.1/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: /usr/lib/llvm-11/lib/clang/11.0.1/include/ia32intrin.h:244:9: error: expected identifier or '('
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
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 -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(sampler.o): in function `sampler_zq':
try.c: sampler.c:(.text+0x...): undefined reference to `load_24'
try.c: /usr/bin/ld: sampler.c:(.text+0x...): undefined reference to `barrett_zq'
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:avx2

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(encrypt.o): in function `crypto_encrypt_keypair':
try.c: encrypt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(fastrandombytes.o): in function `fastrandombytes':
try.c: fastrandombytes.c:(.text+0x...): undefined reference to `load_32'
try.c: /usr/bin/ld: fastrandombytes.c:(.text+0x...): undefined reference to `store_32'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_core':
try.c: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_2048_3328':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `intt_core':
try.c: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_3328_1280':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_32q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_2048_3072':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_3072_3072_inv':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_8q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_1280_1280_inv':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_1024_1280':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_8q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_1280_256':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_3072_3328':
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -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: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(encrypt.o): in function `crypto_encrypt_keypair':
try.c: encrypt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(fastrandombytes.o): in function `fastrandombytes':
try.c: fastrandombytes.c:(.text+0x...): undefined reference to `load_32'
try.c: /usr/bin/ld: fastrandombytes.c:(.text+0x...): undefined reference to `store_32'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_2':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_core':
try.c: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `intt_core':
try.c: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: ntt.c:(.text+0x...): undefined reference to `montgomery'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_2048_3328':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(ntt.o): in function `ntt_butterfly_3328_1280':
try.c: ntt.c:(.text+0x...): undefined reference to `barrett_32q'
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 -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(fastrandombytes.o): in function `fastrandombytes':
try.c: fastrandombytes.c:(.text+0x...): undefined reference to `load_32'
try.c: /usr/bin/ld: fastrandombytes.c:(.text+0x...): undefined reference to `store_32'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(pack.o): in function `poly_encode_c2':
try.c: pack.c:(.text+0x...): undefined reference to `store_8'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(pack.o): in function `poly_decode_c2':
try.c: pack.c:(.text+0x...): undefined reference to `load_8'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(sampler.o): in function `sampler_zb':
try.c: sampler.c:(.text+0x...): undefined reference to `load_8'
try.c: /usr/bin/ld: sampler.c:(.text+0x...): undefined reference to `load_8'
try.c: /usr/bin/ld: sampler.c:(.text+0x...): undefined reference to `load_8'
try.c: /usr/bin/ld: sampler.c:(.text+0x...): undefined reference to `load_8'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(sampler.o): in function `sampler_zq':
try.c: sampler.c:(.text+0x...): undefined reference to `load_24'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(sampler.o): in function `sampler_binomial':
try.c: sampler.c:(.text+0x...): undefined reference to `load_8'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -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: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(fastrandombytes.o): in function `fastrandombytes':
try.c: fastrandombytes.c:(.text+0x...): undefined reference to `load_32'
try.c: /usr/bin/ld: fastrandombytes.c:(.text+0x...): undefined reference to `store_32'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccasuper.a(sampler.o): in function `sampler_zq':
try.c: sampler.c:(.text+0x...): undefined reference to `load_24'
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