Implementation notes: amd64, titan0, crypto_scalarmult/kummer

Computer: titan0
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_scalarmult
Primitive: kummer
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
26035615408 0 039461 812 1792avx2intgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
2684898527 0 029922 860 1792avx2intclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
27144221355 0 045920 868 1760avx2intclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
27152318907 0 043176 868 1760avx2intclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
27192117423 0 038040 868 1728avx2intclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2876529665 0 031677 812 1792avx2intgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
2887789102 0 033141 812 1792avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
2892908854 0 030861 812 1792avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
2895398891 0 031872 868 1728avx2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2897798449 0 029970 860 1792avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2898328781 0 029965 812 1792avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
2904569019 0 033504 868 1760avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2907708763 0 028797 804 1760avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
2917479019 0 033816 868 1760avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2918708587 0 029304 868 1728avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2933319185 0 030373 812 1792avx2intgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
3023706527 0 026549 804 1760avx2intgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
3743159705 0 034456 868 1760avxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
375297? ? ?? ? ?avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
3756579135 0 030610 860 1792avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
3758369273 0 029976 868 1728avxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
3760369467 0 030637 812 1792avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
3763309540 0 031533 812 1792avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
3765819577 0 032512 868 1728avxclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
3775689705 0 034144 868 1760avxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
92698013524 0 038184 868 1760ref5clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
96476611853 0 036232 868 1760ref5clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9664164149 0 025546 860 1792ref5clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
96760813762 0 038456 868 1760ref5uclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9722954552 0 026485 812 1792ref5gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
98514413943 0 036824 868 1728ref5clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9906804291 0 025730 860 1792ref5uclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
99357312231 0 036632 868 1760ref5uclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9975126470 0 030405 812 1792ref5gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
100792914185 0 037040 868 1728ref5uclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
103213312243 0 032848 868 1728ref5clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
10505876825 0 030821 812 1792ref5ugcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
10539354857 0 026813 812 1792ref5ugcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
10540084448 0 024413 804 1760ref5gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
10973594757 0 025909 812 1792ref5gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
109854512477 0 033080 868 1728ref5uclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
11139934734 0 024669 804 1760ref5ugcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
11696755076 0 026237 812 1792ref5ugcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212

Test failure

Implementation: avx
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
measure.c: /usr/bin/ld: error in /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_rng_aes256_ref_constbranchindex-rng.o)(.eh_frame); no .eh_frame_hdr table will be created
measure.c: /usr/bin/ld: error in /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o)(.eh_frame); no .eh_frame_hdr table will be created
measure.c: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_rng_aes256_ref_constbranchindex-rng.o):(.text+0x...): relocation truncated to fit: R_X86_64_PC32 against `*UND*'
measure.c: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_rng_aes256_ref_constbranchindex-rng.o):(.eh_frame+0x20): relocation truncated to fit: R_X86_64_PC32 against `*UND*'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284688383 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 285212671 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 285736959 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 286326783 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 286851071 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 287440895 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 288030719 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 284164095 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 288620543 >= 212 for section `.strtab'
measure.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_aes256ctr_dolbeau_aesenc_int_constbranchindex-aesenc-int.o): invalid string offset 289210367 >= 212 for section `.strtab'
measure.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: error in /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_rng_chacha20_ref_constbranchindex-rng.o)(.eh_frame); no .eh_frame_hdr table will be created
try.c: /usr/bin/ld: error in /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_chacha20_moon_avx2_64_constbranchindex-crypto_stream.o)(.eh_frame); no .eh_frame_hdr table will be created
try.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_chacha20_moon_avx2_64_constbranchindex-crypto_stream.o): invalid string offset 262147 >= 268 for section `.strtab'
try.c: /usr/bin/ld: /home/djb/benchmarking/supercop-20231212/supercop-data/titan0/amd64/lib/libsupercop.a(crypto_stream_chacha20_moon_avx2_64_constbranchindex-crypto_stream.o): invalid string offset 262147 >= 268 for section `.strtab'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx

Compiler output

Implementation: avx2int
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
smult.c: smult.c:36:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t0 = _mm256_mul_epi32(a->v[0],*b);
smult.c: ^
smult.c: smult.c:36:8: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
smult.c: smult.c:37:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t1 = _mm256_mul_epi32(a->v[1],*b);
smult.c: ^
smult.c: smult.c:37:8: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
smult.c: smult.c:38:30: error: always_inline function '_mm256_srli_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t1 = _mm256_add_epi64(t1,_mm256_srli_epi64(t0,26)); t0 &= mask26;
smult.c: ^
smult.c: smult.c:38:30: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
smult.c: smult.c:38:10: error: always_inline function '_mm256_add_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t1 = _mm256_add_epi64(t1,_mm256_srli_epi64(t0,26)); t0 &= mask26;
smult.c: ^
smult.c: smult.c:38:10: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
smult.c: smult.c:39:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t2 = _mm256_mul_epi32(a->v[2],*b);
smult.c: ^
smult.c: smult.c:39:8: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
smult.c: smult.c:40:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t3 = _mm256_mul_epi32(a->v[3],*b);
smult.c: ^
smult.c: smult.c:40:8: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
smult.c: smult.c:41:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_constbranchindex_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2int