Implementation notes: amd64, pmnod003, crypto_dh/curve2251

Computer: pmnod003
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_dh
Primitive: curve2251
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
36466637034 385024 107267674 385920 2696relic/amd64-avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
36546051905 385024 107285264 385928 2696relic/amd64-avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
36781037010 385024 107267650 385920 2696relic/amd64-clmulgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
36844851881 385024 107285240 385928 2696relic/amd64-clmulgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
36864499164 385024 992134880 385960 2568relic/amd64-avxicc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
368764100564 385024 1024136405 385952 2632relic/amd64-avxicc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
36893498956 385024 992133400 385960 2568relic/amd64-avxicc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
36903499260 385024 992135469 385952 2600relic/amd64-avxicc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
36905298212 385024 1024134581 385952 2632relic/amd64-avxicc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
36915899036 385024 992133748 385960 2568relic/amd64-avxicc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
369170101580 385024 992137693 385952 2600relic/amd64-avxicc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
36919299452 385024 992135429 385952 2568relic/amd64-avxicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
36921296540 385024 992131180 385960 2568relic/amd64-avxicc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
369412101756 385024 992137504 385960 2568relic/amd64-avxicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
36941696476 385024 992130864 385960 2568relic/amd64-avxicc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
369442101756 385024 992137504 385960 2568relic/amd64-avxicc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
369490101836 385024 992137397 385952 2568relic/amd64-avxicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
37044699164 385024 992134880 385960 2568relic/amd64-avxicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
37181031813 385024 107262178 385920 2696relic/amd64-avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
373142101444 385024 992137557 385952 2600relic/amd64-clmulicc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
374044100540 385024 1024136381 385952 2632relic/amd64-clmulicc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
37406098932 385024 992133376 385960 2568relic/amd64-clmulicc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
37431899124 385024 992135333 385952 2600relic/amd64-clmulicc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
37437099028 385024 992134744 385960 2568relic/amd64-clmulicc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
37442899316 385024 992135293 385952 2568relic/amd64-clmulicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
374508101700 385024 992137261 385952 2568relic/amd64-clmulicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
37457898188 385024 1024134557 385952 2632relic/amd64-clmulicc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
37458096516 385024 992131156 385960 2568relic/amd64-clmulicc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
37473499012 385024 992133724 385960 2568relic/amd64-clmulicc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
37474231789 385024 107262154 385920 2696relic/amd64-clmulgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
374840101620 385024 992137368 385960 2568relic/amd64-clmulicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
375084101620 385024 992137368 385960 2568relic/amd64-clmulicc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
37627696452 385024 992130840 385960 2568relic/amd64-clmulicc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
37830228344 385024 107257914 385912 2696relic/amd64-avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
38271428320 385024 107257890 385912 2696relic/amd64-clmulgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
39825499028 385024 992134744 385960 2568relic/amd64-clmulicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
1049240108836 385024 1024144669 385952 2632relic/amd64-ssse3icc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
105099260177 385024 107293528 385928 2696relic/amd64-ssse3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1054578104748 385024 992139128 385960 2568relic/amd64-ssse3icc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
1055124104812 385024 992139444 385960 2568relic/amd64-ssse3icc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
1056582106484 385024 1024142845 385952 2632relic/amd64-ssse3icc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
105845440085 385024 107270442 385920 2696relic/amd64-ssse3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1058472109660 385024 992145765 385952 2600relic/amd64-ssse3icc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
1058634109836 385024 992145576 385960 2568relic/amd64-ssse3icc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
1060130109836 385024 992145576 385960 2568relic/amd64-ssse3icc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
1060688109916 385024 992145469 385952 2568relic/amd64-ssse3icc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
1061370107308 385024 992142012 385960 2568relic/amd64-ssse3icc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
1061734107228 385024 992141664 385960 2568relic/amd64-ssse3icc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
1063458107244 385024 992142952 385960 2568relic/amd64-ssse3icc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
1064156107244 385024 992142952 385960 2568relic/amd64-ssse3icc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
1066700107340 385024 992143541 385952 2600relic/amd64-ssse3icc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
106705445306 385024 107275938 385920 2696relic/amd64-ssse3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1068150107532 385024 992143501 385952 2568relic/amd64-ssse3icc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
108141636616 385024 107266178 385912 2696relic/amd64-ssse3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
260546011302 0 053993 920 1616mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
301510429524 0 075844 920 1616mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
307087628466 0 072148 920 1616mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
308190029306 0 072716 920 1616mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910

Compiler output

Implementation: crypto_dh/curve2251/relic/amd64-avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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 -fPIC -fPIE relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE relic/amd64-avx relic/amd64-clmul relic/amd64-ssse3
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE 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