Implementation notes: amd64, gcc14, crypto_kem/titaniumccatoy

Computer: gcc14
Architecture: amd64
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20220506
Operation: crypto_kem
Primitive: titaniumccatoy
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
392935740199 0 0223203 828 1752T:optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
393347139919 0 0222043 828 1752T:optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
393632839919 0 0222043 828 1752T:optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
393892940792 0 0223659 828 1752T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
398696673179 0 0257430 852 1800T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
405684531767 0 0212941 820 1752T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
411129935151 0 0217886 852 1800T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
441583235100 0 0217366 852 1800T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
444668633842 0 0215054 844 1768T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
28004080231489 0 0214387 828 1752T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
28008541530944 0 0213995 828 1752T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
28012906130952 0 0213027 828 1752T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
28059729130952 0 0213027 828 1752T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
32122901423963 0 0204957 820 1752T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011820210114
32385461638746 0 0223070 852 1800T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
33073603424375 0 0206878 852 1800T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
35667698024306 0 0206390 852 1800T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114
61108254623200 0 0204238 844 1768T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011820210114

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:68:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:69:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: v = _mm256_loadu_si256((__m256i *)(s + j));
encrypt.c: ^
encrypt.c: encrypt.c:70:8: error: always_inline function '_mm256_mul_epu32' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: t = _mm256_mul_epu32(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:71:4: error: always_inline function '_mm256_storeu_si256' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: _mm256_storeu_si256((__m256i *)(a[i] + j), t);
encrypt.c: ^
encrypt.c: encrypt.c:83:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:84:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: v = _mm256_loadu_si256((__m256i *)(e[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:85:8: error: always_inline function '_mm256_add_epi64' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: t = _mm256_add_epi64(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:86:9: error: always_inline function '_mm256_mul_epu32' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: t1 = _mm256_mul_epu32(t, V_B4Q_B4Q_B4Q_B4Q);
encrypt.c: ^
encrypt.c: encrypt.c:87:9: error: always_inline function '_mm256_srli_epi64' requires target feature 'xsave', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'xsave'
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, 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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:68:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:69:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: v = _mm256_loadu_si256((__m256i *)(s + j));
encrypt.c: ^
encrypt.c: encrypt.c:70:8: error: always_inline function '_mm256_mul_epu32' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: t = _mm256_mul_epu32(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:71:4: error: always_inline function '_mm256_storeu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: _mm256_storeu_si256((__m256i *)(a[i] + j), t);
encrypt.c: ^
encrypt.c: encrypt.c:83:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:84:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: v = _mm256_loadu_si256((__m256i *)(e[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:85:8: error: always_inline function '_mm256_add_epi64' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: t = _mm256_add_epi64(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:86:9: error: always_inline function '_mm256_mul_epu32' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
encrypt.c: t1 = _mm256_mul_epu32(t, V_B4Q_B4Q_B4Q_B4Q);
encrypt.c: ^
encrypt.c: encrypt.c:87:9: error: always_inline function '_mm256_srli_epi64' requires target feature 'sse4.2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'sse4.2'
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: In function 'crypto_encrypt_keypair':
encrypt.c: encrypt.c:68:6: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/6/include/x86intrin.h:48,
encrypt.c: from encrypt.c:18:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avxintrin.h:900:1: error: inlining failed in call to always_inline '_mm256_storeu_si256': target specific option mismatch
encrypt.c: _mm256_storeu_si256 (__m256i *__P, __m256i __A)
encrypt.c: ^~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:71:4: note: called from here
encrypt.c: _mm256_storeu_si256((__m256i *)(a[i] + j), t);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:43:0,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/6/include/x86intrin.h:48,
encrypt.c: from encrypt.c:18:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avx2intrin.h:567:1: error: inlining failed in call to always_inline '_mm256_mul_epu32': target specific option mismatch
encrypt.c: _mm256_mul_epu32 (__m256i __A, __m256i __B)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:70:6: note: called from here
encrypt.c: t = _mm256_mul_epu32(u, v);
encrypt.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:41:0,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/6/include/x86intrin.h:48,
encrypt.c: from encrypt.c:18:
encrypt.c: ...

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

Namespace violations

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.o crypto_encrypt T
encrypt.o crypto_encrypt_keypair T
encrypt.o crypto_encrypt_open T
fastrandombytes.o fastrandombytes T
fastrandombytes.o fastrandombytes_setseed T
fastrandombytes.o iv C
fastrandombytes.o key C
ntt.o intt_1024_1024_inv T
ntt.o intt_1280_256 T
ntt.o intt_1280_512 T
ntt.o intt_512_256 T
ntt.o ntt_1024_1280 T
ntt.o ntt_256_1024 T
ntt.o ntt_512_512_inv T
ntt.o ntt_768_1024 T
ntt.o ntt_768_1280 T
pack.o poly_decode T
pack.o poly_decode_c2 T
pack.o poly_encode T
pack.o poly_encode_c2 T
sampler.o sampler_binomial T
sampler.o sampler_zb T
sampler.o sampler_zq T

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt

Namespace violations

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.o crypto_encrypt T
encrypt.o crypto_encrypt_keypair T
encrypt.o crypto_encrypt_open T
fastrandombytes.o fastrandombytes T
fastrandombytes.o fastrandombytes_setseed T
fastrandombytes.o iv C
fastrandombytes.o key C
ntt.o intt_1024_1024_inv T
ntt.o intt_1280_1280 T
ntt.o intt_512_512 T
ntt.o ntt_1024_1024 T
ntt.o ntt_512_512_inv T
pack.o poly_decode T
pack.o poly_decode_c2 T
pack.o poly_encode T
pack.o poly_encode_c2 T
product.o mp T
product.o product T
sampler.o sampler_binomial T
sampler.o sampler_zb T
sampler.o sampler_zq T

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref