Implementation notes: amd64, comet, crypto_kem/bikel3

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: bikel3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5156203108648 72 4131149 940 1732T:ches2021clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5190335149144 72 4172093 940 1796T:ches2021clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5480815103240 72 4124676 868 1764T:ches2021gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
633778773407 72 493084 868 1764T:ches2021gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
641348254495 72 473795 932 1796T:ches2021clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
662344661235 72 480053 940 1732T:ches2021clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
675730970688 72 489756 868 1764T:ches2021gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
719331628906 64 451509 932 1732T:avx2clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
724415838242 64 461277 932 1796T:avx2clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
761893554726 72 472812 860 1732T:ches2021gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
808293757521 64 478956 860 1764T:avx2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
1074419840869 56 463829 924 1796T:aes-ni-and-pclmulclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
1158196433703 64 453188 860 1764T:avx2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
1307976416598 64 436091 924 1796T:avx2clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
1444901617196 64 436141 932 1732T:avx2clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
1720945829833 56 452517 924 1732T:aes-ni-and-pclmulclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2084390474103 56 495452 852 1764T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2364743033246 64 452292 860 1764T:avx2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2389733843148 56 462604 852 1764T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2432312130284 64 448300 852 1732T:avx2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2435902415746 56 435155 916 1796T:aes-ni-and-pclmulclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2667487215929 56 434901 924 1732T:aes-ni-and-pclmulclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2792838941885 56 460764 852 1764T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2825647629335 56 447196 844 1732T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
3617283437780 48 461419 972 1796T:portableclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
3643587840850 56 463789 924 1796T:aes-ni-onlyclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
4212185132817 48 454867 972 1732T:portableclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
4272596827307 48 450651 972 1732T:portableclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
4292244429814 56 452477 924 1732T:aes-ni-onlyclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5025785140006 48 460029 916 1764T:portablegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5153561042516 56 461940 852 1764T:aes-ni-onlygcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5442459515395 56 434341 924 1732T:aes-ni-onlyclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5442663313080 48 432723 972 1732T:portableclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5472434828995 56 446812 844 1732T:aes-ni-onlygcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5685966438848 48 458341 916 1764T:portablegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
5722455141163 56 460036 852 1764T:aes-ni-onlygcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
6359152726806 48 445261 908 1732T:portablegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
6576529893594 48 4115549 916 1764T:portablegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
7330399497335 56 4118748 852 1764T:aes-ni-onlygcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
8680610613321 48 433385 964 1796T:portableclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
8776608615626 56 434931 916 1796T:aes-ni-onlyclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625

Compiler output


aes.c: aes.c:9:4: error: "This code requries support for AES_NI and SSSE3"
aes.c: #  error "This code requries support for AES_NI and SSSE3"
aes.c:    ^
aes.c: 1 error generated.

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:aes-ni-and-pclmulclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:aes-ni-onlyclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512-vpclmulclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:ches2021clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


decode.c: In file included from decode.c:39:
decode.c: ./gf2x.h:22:10: error: always_inline function '_mm512_loadu_si512' requires target feature 'avx512f', but would be inlined into function 'gf2x_mod_add' that is compiled without support for 'avx512f'
decode.c:     va = LOAD(&a_qwords[i]);
decode.c:          ^
decode.c: ./x86_64_intrinsic.h:40:27: note: expanded from macro 'LOAD'
decode.c: #  define LOAD(mem)       _mm512_loadu_si512((mem))
decode.c:                           ^
decode.c: In file included from decode.c:39:
decode.c: ./gf2x.h:22:10: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'avx512f' enabled changes the ABI
decode.c: ./x86_64_intrinsic.h:40:27: note: expanded from macro 'LOAD'
decode.c: #  define LOAD(mem)       _mm512_loadu_si512((mem))
decode.c:                           ^
decode.c: In file included from decode.c:39:
decode.c: ./gf2x.h:23:10: error: always_inline function '_mm512_loadu_si512' requires target feature 'avx512f', but would be inlined into function 'gf2x_mod_add' that is compiled without support for 'avx512f'
decode.c:     vb = LOAD(&b_qwords[i]);
decode.c:          ^
decode.c: ./x86_64_intrinsic.h:40:27: note: expanded from macro 'LOAD'
decode.c: #  define LOAD(mem)       _mm512_loadu_si512((mem))
decode.c:                           ^
decode.c: In file included from decode.c:39:
decode.c: ./gf2x.h:23:10: error: AVX vector return of type '__m512i' (vector of 8 'long long' values) without 'avx512f' enabled changes the ABI
decode.c: ./x86_64_intrinsic.h:40:27: note: expanded from macro 'LOAD'
decode.c: #  define LOAD(mem)       _mm512_loadu_si512((mem))
decode.c:                           ^
decode.c: In file included from decode.c:39:
decode.c: ...

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
T:avx512clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512-vpclmulclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512-vpclmulclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512-vpclmulclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:avx512-vpclmulclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


decode.c: In file included from decode.c:39:
decode.c: gf2x.h: In function 'gf2x_mod_add':
decode.c: gf2x.h:22:8: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi]
decode.c:    22 |     va = LOAD(&a_qwords[i]);
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/12/include/immintrin.h:49,
decode.c:                  from x86_64_intrinsic.h:20,
decode.c:                  from defs.h:103,
decode.c:                  from bike_defs.h:10,
decode.c:                  from types.h:13,
decode.c:                  from decode.h:10,
decode.c:                  from decode.c:37:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h:6523:1: error: inlining failed in call to 'always_inline' '_mm512_storeu_si512': target specific option mismatch
decode.c:  6523 | _mm512_storeu_si512 (void *__P, __m512i __A)
decode.c:       | ^~~~~~~~~~~~~~~~~~~
decode.c: x86_64_intrinsic.h:41:27: note: called from here
decode.c:    41 | #  define STORE(mem, reg) _mm512_storeu_si512((mem), (reg))
decode.c:       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: gf2x.h:25:5: note: in expansion of macro 'STORE'
decode.c:    25 |     STORE(&c_qwords[i], va ^ vb);
decode.c:       |     ^~~~~
decode.c: /usr/lib/gcc/x86_64-linux-gnu/12/include/avx512fintrin.h:6490:1: error: inlining failed in call to 'always_inline' '_mm512_loadu_si512': target specific option mismatch
decode.c:  6490 | _mm512_loadu_si512 (void const *__P)
decode.c:       | ^~~~~~~~~~~~~~~~~~
decode.c: x86_64_intrinsic.h:40:27: note: called from here
decode.c:    40 | #  define LOAD(mem)       _mm512_loadu_si512((mem))
decode.c: ...

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
T:avx512gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512-vpclmulgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512-vpclmulgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512-vpclmulgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avx512-vpclmulgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

Compiler output


decode.c: decode.c:177:15: warning: unused function 'adder_size_63' [-Wunused-function]
decode.c: _INLINE_ void adder_size_63(OUT upc_t *upc,
decode.c:               ^
decode.c: decode.c:246:15: warning: unused function 'bit_sliced_adder_test' [-Wunused-function]
decode.c: _INLINE_ void bit_sliced_adder_test(OUT upc_t *upc,
decode.c:               ^
decode.c: 2 warnings generated.
gf2x_mul.c: gf2x_mul.c:116:15: warning: function 'karatzuba' is not needed and will not be emitted [-Wunneeded-internal-declaration]
gf2x_mul.c: _INLINE_ void karatzuba(OUT uint64_t *c,
gf2x_mul.c:               ^
gf2x_mul.c: 1 warning generated.
rkara3_mul_avx2.c: rkara3_mul_avx2.c:11:9: warning: unused function 'msbyte' [-Wunused-function]
rkara3_mul_avx2.c: __m256i msbyte( __m256i a ) { return _mm256_permute4x64_epi64(_mm256_srli_si256(a,15),0xfe); } // 11,11,11,10
rkara3_mul_avx2.c:         ^
rkara3_mul_avx2.c: rkara3_mul_avx2.c:169:6: warning: unused function 'mul_2bits_test' [-Wunused-function]
rkara3_mul_avx2.c: void mul_2bits_test( uint8_t *c , const uint8_t *a , uint8_t b , int len )
rkara3_mul_avx2.c:      ^
rkara3_mul_avx2.c: 2 warnings generated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:ches2021clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:ches2021clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:ches2021clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:ches2021clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


rkara3_mul_avx2.c: rkara3_mul_avx2.c:169:6: warning: 'mul_2bits_test' defined but not used [-Wunused-function]
rkara3_mul_avx2.c:   169 | void mul_2bits_test( uint8_t *c , const uint8_t *a , uint8_t b , int len )
rkara3_mul_avx2.c:       |      ^~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:ches2021gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:ches2021gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:ches2021gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:ches2021gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)