Implementation notes: amd64, h6sandy, crypto_kem/titaniumccamed
Computer: h6sandy
Microarchitecture: amd64; Sandy Bridge (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240808
Operation: crypto_kem
Primitive: titaniumccamed
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
5605109 | 66510 0 36 | 231229 868 1760 | T:opt | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
5664808 | 65085 0 36 | 230861 868 1760 | T:opt | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
5687477 | 89901 0 36 | 256565 868 1760 | T:opt | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
5908327 | 45620 0 36 | 208791 860 1760 | T:opt | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
5965365 | 68149 0 64 | 233451 828 1824 | T:opt | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
6097421 | 44779 0 36 | 208333 868 1760 | T:opt | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
6227774 | 48151 0 64 | 212515 828 1824 | T:opt | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
6823622 | 47822 0 64 | 211747 828 1824 | T:opt | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
505706922 | 46967 0 36 | 212037 868 1760 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
505749314 | 58151 0 36 | 223901 868 1760 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
505767232 | 78462 0 36 | 245485 868 1760 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
519727903 | 36364 0 36 | 199885 868 1760 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
529251845 | 51287 0 64 | 216587 828 1824 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
531815201 | 36930 0 36 | 199919 860 1760 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
532135891 | 36786 0 64 | 200955 828 1824 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
640265293 | 37022 0 64 | 200771 828 1824 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
1786140703 | 35518 0 64 | 198131 820 1792 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240727 | 20240716 |
Compiler output
encrypt.c: encrypt.c:65:8: error: always_inline function '_mm256_mul_epu32' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t = _mm256_mul_epu32(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:80:8: error: always_inline function '_mm256_add_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t = _mm256_add_epi64(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:81:9: error: always_inline function '_mm256_mul_epu32' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t1 = _mm256_mul_epu32(t, V_B4Q_B4Q_B4Q_B4Q);
encrypt.c: ^
encrypt.c: encrypt.c:82:9: error: always_inline function '_mm256_srli_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t1 = _mm256_srli_epi64(t1, BARRETT_BITSHIFT_4Q);
encrypt.c: ^
encrypt.c: encrypt.c:83:9: error: always_inline function '_mm256_mul_epu32' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t1 = _mm256_mul_epu32(t1, V_Q_Q_Q_Q);
encrypt.c: ^
encrypt.c: encrypt.c:84:8: error: always_inline function '_mm256_sub_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t = _mm256_sub_epi64(t, t1);
encrypt.c: ^
encrypt.c: 6 errors generated.
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:avx2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:avx2 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:avx2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
encrypt.c: encrypt.c:63:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx'
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:63:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
encrypt.c: encrypt.c:64:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx'
encrypt.c: v = _mm256_loadu_si256((__m256i *)(s + j));
encrypt.c: ^
encrypt.c: encrypt.c:64:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
encrypt.c: encrypt.c:65:8: error: always_inline function '_mm256_mul_epu32' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: t = _mm256_mul_epu32(u, v);
encrypt.c: ^
encrypt.c: encrypt.c:65:8: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
encrypt.c: encrypt.c:66:4: error: always_inline function '_mm256_storeu_si256' requires target feature 'avx', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx'
encrypt.c: _mm256_storeu_si256((__m256i *)(a[i] + j), t);
encrypt.c: ^
encrypt.c: encrypt.c:66:4: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
encrypt.c: encrypt.c:78:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx'
encrypt.c: u = _mm256_loadu_si256((__m256i *)(a[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:78:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
encrypt.c: encrypt.c:79:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx'
encrypt.c: v = _mm256_loadu_si256((__m256i *)(e[i] + j));
encrypt.c: ^
encrypt.c: encrypt.c:79:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
encrypt.c: encrypt.c:80:8: error: always_inline function '_mm256_add_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_encrypt_keypair' that is compiled without support for 'avx2'
encrypt.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:avx2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
encrypt.c: from encrypt.c:18:
encrypt.c: encrypt.c: In function 'crypto_encrypt_keypair':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:567:1: error: inlining failed in call to 'always_inline' '_mm256_mul_epu32': target specific option mismatch
encrypt.c: 567 | _mm256_mul_epu32 (__m256i __A, __m256i __B)
encrypt.c: | ^~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:65:29: note: called from here
encrypt.c: 65 | t = _mm256_mul_epu32(u, v);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
encrypt.c: from encrypt.c:18:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:567:1: error: inlining failed in call to 'always_inline' '_mm256_mul_epu32': target specific option mismatch
encrypt.c: 567 | _mm256_mul_epu32 (__m256i __A, __m256i __B)
encrypt.c: | ^~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:65:29: note: called from here
encrypt.c: 65 | t = _mm256_mul_epu32(u, v);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
encrypt.c: from encrypt.c:18:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:822:1: error: inlining failed in call to 'always_inline' '_mm256_sub_epi64': target specific option mismatch
encrypt.c: 822 | _mm256_sub_epi64 (__m256i __A, __m256i __B)
encrypt.c: | ^~~~~~~~~~~~~~~~
encrypt.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(encrypt.o): in function `crypto_encrypt_keypair':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/encrypt.c:55: undefined reference to `barrett_4q2'
try.c: /usr/bin/ld: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/encrypt.c:63: undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(encrypt.o): in function `crypto_encrypt':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/encrypt.c:140: undefined reference to `barrett_4q2'
try.c: /usr/bin/ld: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/encrypt.c:150: undefined reference to `barrett_4q2'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(encrypt.o): in function `crypto_encrypt_open':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/encrypt.c:194: undefined reference to `barrett_4q2'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_1280_2048':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:350: undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_2048_768':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:374: undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_512_1792':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:387: undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_1280_1792':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:407: undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_1792_1792_inv':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:429: undefined reference to `barrett_16q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_768_768_inv':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:447: undefined reference to `barrett_8q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_512_768':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:460: undefined reference to `barrett_4q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_768_256':
try.c: .../supercop-data/h6sandy/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_kem/titaniumccamed/opt/work/ntt.c:468: undefined reference to `barrett_8q'
try.c: /usr/bin/ld: libcrypto_kem_titaniumccamed.a(ntt.o): in function `ntt_butterfly_1792_2048':
try.c: ...
Number of similar (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
T:opt | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Namespace violations
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 B
fastrandombytes.o key B
ntt.o intt_1792_1792_inv T
ntt.o intt_2048_256 T
ntt.o intt_2048_768 T
ntt.o intt_768_256 T
ntt.o ntt_1280_1792 T
ntt.o ntt_1280_2048 T
ntt.o ntt_1792_2048 T
ntt.o ntt_512_1792 T
ntt.o ntt_512_768 T
ntt.o ntt_768_768_inv 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 (implementation,compiler) pairs: 8, namely:
Implementation | Compiler |
T:opt | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:opt | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:opt | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:opt | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Namespace violations
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 B
fastrandombytes.o key B
ntt.o intt_1792_1792_inv T
ntt.o intt_2048_2048 T
ntt.o intt_768_768 T
ntt.o ntt_1792_1792 T
ntt.o ntt_768_768_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 (implementation,compiler) pairs: 9, namely:
Implementation | Compiler |
T:ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |