Implementation notes: amd64, pmnod003, crypto_dh/curve2251

Computer: pmnod003
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_dh
Primitive: curve2251
TimeImplementationCompilerBenchmark dateSUPERCOP version
368590relic/amd64-avxicc -xCORE-AVX-I -O2 -fomit-frame-pointer2019081920190816
368646relic/amd64-avxicc -xAVX -O2 -fomit-frame-pointer2019081920190816
368902relic/amd64-avxicc -xSSE4.2 -O2 -fomit-frame-pointer2019081920190816
368994relic/amd64-avxicc -xCORE-AVX512 -O2 -fomit-frame-pointer2019081920190816
369240relic/amd64-avxicc -xCORE-AVX512 -O3 -fomit-frame-pointer2019081920190816
369262relic/amd64-avxicc -xSSE4.2 -O3 -fomit-frame-pointer2019081920190816
369290relic/amd64-avxicc -xCOMMON-AVX512 -O2 -fomit-frame-pointer2019081920190816
369330relic/amd64-avxicc -xSSE4.1 -O3 -fomit-frame-pointer2019081920190816
369466relic/amd64-avxicc -xCOMMON-AVX512 -O3 -fomit-frame-pointer2019081920190816
369474relic/amd64-avxicc -xAVX -O3 -fomit-frame-pointer2019081920190816
369560relic/amd64-avxicc -xCORE-AVX2 -O2 -fomit-frame-pointer2019081920190816
369582relic/amd64-avxgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2019081920190816
369652relic/amd64-avxicc -xCORE-AVX2 -O3 -fomit-frame-pointer2019081920190816
370194relic/amd64-avxicc -xCORE-AVX-I -O3 -fomit-frame-pointer2019081920190816
370404relic/amd64-avxicc -xSSE4.1 -O2 -fomit-frame-pointer2019081920190816
371308relic/amd64-avxgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
372254relic/amd64-avxgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2019081920190816
372686relic/amd64-clmulicc -xCORE-AVX-I -O2 -fomit-frame-pointer2019081920190816
372900relic/amd64-clmulicc -xCOMMON-AVX512 -O3 -fomit-frame-pointer2019081920190816
372922relic/amd64-clmulicc -xSSE4.1 -O2 -fomit-frame-pointer2019081920190816
373772relic/amd64-clmulicc -xCOMMON-AVX512 -O2 -fomit-frame-pointer2019081920190816
373846relic/amd64-clmulicc -xSSE4.1 -O3 -fomit-frame-pointer2019081920190816
373984relic/amd64-clmulicc -xAVX -O2 -fomit-frame-pointer2019081920190816
374056relic/amd64-clmulicc -xCORE-AVX2 -O2 -fomit-frame-pointer2019081920190816
374190relic/amd64-clmulgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2019081920190816
374328relic/amd64-clmulicc -xSSE4.2 -O3 -fomit-frame-pointer2019081920190816
374362relic/amd64-clmulicc -xCORE-AVX512 -O3 -fomit-frame-pointer2019081920190816
374404relic/amd64-clmulicc -xCORE-AVX512 -O2 -fomit-frame-pointer2019081920190816
374456relic/amd64-clmulicc -xSSE4.2 -O2 -fomit-frame-pointer2019081920190816
374690relic/amd64-clmulgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
374900relic/amd64-clmulicc -xCORE-AVX2 -O3 -fomit-frame-pointer2019081920190816
375296relic/amd64-clmulicc -xAVX -O3 -fomit-frame-pointer2019081920190816
377048relic/amd64-clmulgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2019081920190816
379860relic/amd64-avxgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2019081920190816
380484relic/amd64-clmulicc -xCORE-AVX-I -O3 -fomit-frame-pointer2019081920190816
383670relic/amd64-clmulgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2019081920190816
1049260relic/amd64-ssse3icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer2019081920190816
1051968relic/amd64-ssse3gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
1055652relic/amd64-ssse3icc -xSSE4.1 -O2 -fomit-frame-pointer2019081920190816
1055806relic/amd64-ssse3icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer2019081920190816
1056660relic/amd64-ssse3icc -xCORE-AVX512 -O3 -fomit-frame-pointer2019081920190816
1056662relic/amd64-ssse3icc -xSSE4.2 -O2 -fomit-frame-pointer2019081920190816
1057126relic/amd64-ssse3icc -xAVX -O3 -fomit-frame-pointer2019081920190816
1057184relic/amd64-ssse3icc -xCORE-AVX2 -O3 -fomit-frame-pointer2019081920190816
1059186relic/amd64-ssse3icc -xCORE-AVX-I -O3 -fomit-frame-pointer2019081920190816
1062264relic/amd64-ssse3icc -xSSE4.1 -O3 -fomit-frame-pointer2019081920190816
1062788relic/amd64-ssse3icc -xCORE-AVX-I -O2 -fomit-frame-pointer2019081920190816
1063580relic/amd64-ssse3icc -xSSE4.2 -O3 -fomit-frame-pointer2019081920190816
1063672relic/amd64-ssse3icc -xAVX -O2 -fomit-frame-pointer2019081920190816
1064880relic/amd64-ssse3icc -xCORE-AVX512 -O2 -fomit-frame-pointer2019081920190816
1064912relic/amd64-ssse3icc -xCORE-AVX2 -O2 -fomit-frame-pointer2019081920190816
1067308relic/amd64-ssse3gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2019081920190816
1071724relic/amd64-ssse3gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2019081920190816
1079482relic/amd64-ssse3gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2019081920190816
2582296mpfqgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2019081920190816
3046162mpfqgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2019081920190816
3058762mpfqgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2019081920190816
3072124mpfqgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2019081920190816

Compiler output

Implementation: crypto_dh/curve2251/relic/amd64-avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c: 117 | srand(time(NULL));
relic.c: | ^~~~

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3

Compiler output

Implementation: crypto_dh/curve2251/relic/amd64-avx
Compiler: icc -xAVX -O2 -fomit-frame-pointer
relic.c: In file included from relic.c(4):
relic.c: src/relic_rand.c(117): warning #266: function "time" declared implicitly
relic.c: srand(time(NULL));
relic.c: ^
relic.c:

Number of similar (compiler,implementation) pairs: 42, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xAVX -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCORE-AVX-I -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCORE-AVX-I -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCORE-AVX2 -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCORE-AVX2 -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCORE-AVX512 -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xCORE-AVX512 -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xSSE4.1 -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xSSE4.1 -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xSSE4.2 -O2 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
icc -xSSE4.2 -O3 -fomit-frame-pointer relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3

Compiler output

Implementation: crypto_dh/curve2251/mpfq
Compiler: icc -xAVX -O2 -fomit-frame-pointer
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_dh_curve2251.a(curve2_251.o): in function `mpfq_2_251_addmul_basecase128x128s4X64x2':
try.c: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: curve2_251.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: ...

Number of similar (compiler,implementation) pairs: 14, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer mpfq
icc -xAVX -O3 -fomit-frame-pointer mpfq
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer mpfq
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer mpfq
icc -xCORE-AVX-I -O2 -fomit-frame-pointer mpfq
icc -xCORE-AVX-I -O3 -fomit-frame-pointer mpfq
icc -xCORE-AVX2 -O2 -fomit-frame-pointer mpfq
icc -xCORE-AVX2 -O3 -fomit-frame-pointer mpfq
icc -xCORE-AVX512 -O2 -fomit-frame-pointer mpfq
icc -xCORE-AVX512 -O3 -fomit-frame-pointer mpfq
icc -xSSE4.1 -O2 -fomit-frame-pointer mpfq
icc -xSSE4.1 -O3 -fomit-frame-pointer mpfq
icc -xSSE4.2 -O2 -fomit-frame-pointer mpfq
icc -xSSE4.2 -O3 -fomit-frame-pointer mpfq