Implementation notes: amd64, jasper3, crypto_kem/bikel1

Computer: jasper3
Microarchitecture: amd64; Tremont (906c0)
Architecture: amd64
CPU ID: GenuineIntel-000906c0-20-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: bikel1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
557173730503 56 451220 884 1724T:aes-ni-and-pclmulclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
872634821747 56 440132 884 1724T:aes-ni-and-pclmulclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
986650470230 56 490088 852 1756T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1112351216571 56 434178 876 1724T:aes-ni-and-pclmulclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1149336815132 56 431570 876 1724T:aes-ni-and-pclmulclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1162286135541 56 454192 852 1756T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1182004033798 56 451896 852 1756T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1291611021227 56 437528 844 1724T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1643904230081 56 450748 884 1724T:aes-ni-onlyclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1645164026861 48 448226 932 1724T:portableclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1653190630056 48 450018 932 1724T:portableclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1887140361769 48 482235 916 1756T:portablegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1892981365762 56 485664 852 1756T:aes-ni-onlygcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1957795721325 56 439724 884 1724T:aes-ni-onlyclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
1961925218894 48 437938 932 1724T:portableclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2729255211883 48 428992 924 1724T:portableclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2745260814108 56 430506 876 1724T:aes-ni-onlyclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2792072414049 48 432312 924 1724T:portableclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2807195516165 56 433778 876 1724T:aes-ni-onlyclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2863433436417 56 455080 852 1756T:aes-ni-onlygcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2869355633666 48 452939 916 1756T:portablegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2947262434391 56 452464 852 1756T:aes-ni-onlygcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2980334832168 48 450851 916 1756T:portablegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
2999369518703 48 435595 908 1724T:portablegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625
3010404920910 56 437168 844 1724T:aes-ni-onlygcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070220240625

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_11.0.1)
T:aes-ni-onlyclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512-vpclmulclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:ches2021clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


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

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

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: AVX vector return without AVX 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/10/include/immintrin.h:51,
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/10/include/avxintrin.h:926:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
decode.c:   926 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
decode.c:       | ^~~~~~~~~~~~~~~~~~~
decode.c: In file included 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: x86_64_intrinsic.h:31:27: note: called from here
decode.c:    31 | #  define STORE(mem, reg) _mm256_storeu_si256((void *)(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: ...

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

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_11.0.1)
T:avx512clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512-vpclmulclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512-vpclmulclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512-vpclmulclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx512-vpclmulclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

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/10/include/immintrin.h:55,
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/10/include/avx512fintrin.h:6429:1: error: inlining failed in call to 'always_inline' '_mm512_storeu_si512': target specific option mismatch
decode.c:  6429 | _mm512_storeu_si512 (void *__P, __m512i __A)
decode.c:       | ^~~~~~~~~~~~~~~~~~~
decode.c: In file included 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: 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: ...

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

Compiler output


decode.c: decode.c:303:20: error: '__builtin_ia32_vec_ext_v4di' needs target feature avx
decode.c:         printf("%.16llX", _mm256_extract_epi64(v, 0));
decode.c:                           ^
decode.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/avxintrin.h:2024:14: note: expanded from macro '_mm256_extract_epi64'
decode.c:   (long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N))
decode.c:              ^
decode.c: decode.c:304:21: error: '__builtin_ia32_vec_ext_v4di' needs target feature avx
decode.c:         printf(" %.16llX", _mm256_extract_epi64(v, 1));
decode.c:                            ^
decode.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/avxintrin.h:2024:14: note: expanded from macro '_mm256_extract_epi64'
decode.c:   (long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N))
decode.c:              ^
decode.c: decode.c:305:21: error: '__builtin_ia32_vec_ext_v4di' needs target feature avx
decode.c:         printf(" %.16llX", _mm256_extract_epi64(v, 2));
decode.c:                            ^
decode.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/avxintrin.h:2024:14: note: expanded from macro '_mm256_extract_epi64'
decode.c:   (long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N))
decode.c:              ^
decode.c: decode.c:306:23: error: '__builtin_ia32_vec_ext_v4di' needs target feature avx
decode.c:         printf(" %.16llX\n", _mm256_extract_epi64(v, 3));
decode.c:                              ^
decode.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/avxintrin.h:2024:14: note: expanded from macro '_mm256_extract_epi64'
decode.c:   (long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N))
decode.c:              ^
decode.c: 4 errors 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_11.0.1)
T:ches2021clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:ches2021clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:ches2021clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


decode.c: decode.c: In function 'dump1':
decode.c: decode.c:301:6: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
decode.c:   301 | void dump1(__m256i v)
decode.c:       |      ^~~~~
decode.c: decode.c: In function 'find_err1':
decode.c: decode.c:331:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
decode.c:   331 |    buf[j] = LOAD(&syndrome->qw[4 * j]);
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
decode.c:                  from x86_64_intrinsic.h:20,
decode.c:                  from defs.h:106,
decode.c:                  from bike_defs.h:10,
decode.c:                  from types.h:15,
decode.c:                  from decode.h:17,
decode.c:                  from decode.c:39:
decode.c: gf2x.h: In function 'gf2x_mod_add':
decode.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:926:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
decode.c:   926 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
decode.c:       | ^~~~~~~~~~~~~~~~~~~
decode.c: In file included from defs.h:106,
decode.c:                  from bike_defs.h:10,
decode.c:                  from types.h:15,
decode.c:                  from decode.h:17,
decode.c:                  from decode.c:39:
decode.c: x86_64_intrinsic.h:31:27: note: called from here
decode.c:    31 | #  define STORE(mem, reg) _mm256_storeu_si256((void *)(mem), (reg))
decode.c: ...

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