Implementation notes: amd64, calvin, crypto_dh/surf2113

Computer: calvin
Architecture: amd64
CPU ID: AuthenticAMD-00600f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_dh
Primitive: surf2113
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2775095? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111520171020
2788190? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111520171020
2791041? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111520171020
2793193? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111520171020
2800788? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111520171020
2801282? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111520171020
2935168? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017111520171020
2940326? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111520171020
2941779? ? ?? ? ?mpfqgcc_-march=barcelona_-O_-fomit-frame-pointer2017111520171020
2941791? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111520171020
2943284? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017111520171020
2943748? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111520171020
2945028? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017111520171020
2958391? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111520171020
2958741? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017111520171020
2961092? ? ?? ? ?mpfqgcc_-funroll-loops_-O_-fomit-frame-pointer2017111520171020
2964254? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017111520171020
2967226? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017111520171020
2968853? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017111520171020
2970390? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111520171020
2970476? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111520171020
2970986? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111520171020
2970989? ? ?? ? ?mpfqgcc_-funroll-loops_-O2_-fomit-frame-pointer2017111520171020
2970991? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017111520171020
2973442? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017111520171020
2974531? ? ?? ? ?mpfqgcc_-funroll-loops_-O3_-fomit-frame-pointer2017111520171020
2982037? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111520171020
2983456? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111520171020
2983998? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017111520171020
2987852? ? ?? ? ?mpfqgcc_-O_-fomit-frame-pointer2017111520171020
2988249? ? ?? ? ?mpfqgcc_-m64_-O_-fomit-frame-pointer2017111520171020
2989970? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017111520171020
2992102? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017111520171020
2992645? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111520171020
2992950? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111520171020
2995576? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017111520171020
3002073? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017111520171020
3003650? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017111520171020
3003906? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017111520171020
3011785? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111520171020
3013450? ? ?? ? ?mpfqgcc_-march=barcelona_-O3_-fomit-frame-pointer2017111520171020
3026213? ? ?? ? ?mpfqgcc_-march=barcelona_-O2_-fomit-frame-pointer2017111520171020
3027204? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017111520171020
3028326? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111520171020
3033509? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017111520171020
3038184? ? ?? ? ?mpfqgcc_-O2_-fomit-frame-pointer2017111520171020
3040555? ? ?? ? ?mpfqgcc_-m64_-O2_-fomit-frame-pointer2017111520171020
3041365? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111520171020
3044531? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111520171020
3046759? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111520171020
3050526? ? ?? ? ?mpfqgcc_-m64_-O3_-fomit-frame-pointer2017111520171020
3052237? ? ?? ? ?mpfqgcc_-O3_-fomit-frame-pointer2017111520171020
3052656? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017111520171020
3054446? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017111520171020
3088629? ? ?? ? ?mpfqgcc_-march=k8_-O_-fomit-frame-pointer2017111520171020
3095872? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111520171020
3096384? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111520171020
3100038? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017111520171020
3111146? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017111520171020
3115566? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017111520171020
3116071? ? ?? ? ?mpfqgcc_-march=k8_-O3_-fomit-frame-pointer2017111520171020
3119379? ? ?? ? ?mpfqgcc_-march=k8_-O2_-fomit-frame-pointer2017111520171020
3119732? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017111520171020
3120310? ? ?? ? ?mpfqgcc_-march=nocona_-O_-fomit-frame-pointer2017111520171020
3131427? ? ?? ? ?mpfqgcc_-march=nocona_-O2_-fomit-frame-pointer2017111520171020
3133050? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111520171020
3143228? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111520171020
3151272? ? ?? ? ?mpfqgcc_-march=nocona_-O3_-fomit-frame-pointer2017111520171020
3160615? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017111520171020
3235149? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017111520171020
3239082? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017111520171020
3285091? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111520171020
3286714? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111520171020
3286890? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111520171020
3297466? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017111520171020
3317807? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111520171020
3322188? ? ?? ? ?mpfqgcc_-funroll-loops_-Os_-fomit-frame-pointer2017111520171020
3326391? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017111520171020
3355715? ? ?? ? ?mpfqgcc_-march=barcelona_-Os_-fomit-frame-pointer2017111520171020
3356338? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111520171020
3430535? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111520171020
3435324? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111520171020
3439695? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111520171020
3452940? ? ?? ? ?mpfqgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017111520171020
3461791? ? ?? ? ?mpfqgcc_-march=k8_-Os_-fomit-frame-pointer2017111520171020
3468721? ? ?? ? ?mpfqgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017111520171020
3500492? ? ?? ? ?mpfqgcc_-m64_-Os_-fomit-frame-pointer2017111520171020
3500815? ? ?? ? ?mpfqgcc_-Os_-fomit-frame-pointer2017111520171020
3502396? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111520171020
3613488? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111520171020
3616749? ? ?? ? ?mpfqgcc_-march=nocona_-Os_-fomit-frame-pointer2017111520171020
3631839? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111520171020
3649934? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111520171020
3651671? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111520171020
3749784? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017111520171020
3819026? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017111520171020
3929861? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111520171020
3937283? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111520171020
3970986? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111520171020
4018645? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111520171020
4018767? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111520171020
4172321? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111520171020
4182686? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111520171020
4305570? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111520171020
13350161? ? ?? ? ?mpfqcc2017111520171020
13356696? ? ?? ? ?mpfqgcc2017111520171020
13372229? ? ?? ? ?mpfqgcc_-funroll-loops2017111520171020

Test failure

Implementation: crypto_dh/surf2113/mpfq
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/surf2113/mpfq
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
Surf2_113.c: In file included from Surf2_113.c:11:
Surf2_113.c: In file included from ./field.h:1:
Surf2_113.c: In file included from ./mpfq_2_113.h:5:
Surf2_113.c: ./x86_64/mpfq_2_113.h:714:14: error: use of unknown builtin '__builtin_ia32_pslldqi128' [-Wimplicit-function-declaration]
Surf2_113.c: r.s = t0 ^ SHLD(t1, 64);
Surf2_113.c: ^
Surf2_113.c: ./x86_64/mpfq_2_113.h:571:25: note: expanded from macro 'SHLD'
Surf2_113.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: ./x86_64/mpfq_2_113.h:714:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
Surf2_113.c: r.s = t0 ^ SHLD(t1, 64);
Surf2_113.c: ^~~~~~~~~~~~
Surf2_113.c: ./x86_64/mpfq_2_113.h:571:19: note: expanded from macro 'SHLD'
Surf2_113.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Surf2_113.c: ./x86_64/mpfq_2_113.h:721:14: error: use of unknown builtin '__builtin_ia32_psrldqi128' [-Wimplicit-function-declaration]
Surf2_113.c: r.s = t2 ^ SHRD(t1, 64);
Surf2_113.c: ^
Surf2_113.c: ./x86_64/mpfq_2_113.h:572:25: note: expanded from macro 'SHRD'
Surf2_113.c: #define SHRD(x,r) (v2di)__builtin_ia32_psrldqi128 ((gcc43bugfix) (x),(r))
Surf2_113.c: ^
Surf2_113.c: ./x86_64/mpfq_2_113.h:721:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
Surf2_113.c: r.s = t2 ^ SHRD(t1, 64);
Surf2_113.c: ^~~~~~~~~~~~
Surf2_113.c: ./x86_64/mpfq_2_113.h:572:19: note: expanded from macro 'SHRD'
Surf2_113.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments mpfq
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq