Implementation notes: amd64, hydra1, crypto_dh/surf2113

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_dh
Primitive: surf2113
TimeImplementationCompilerBenchmark dateSUPERCOP version
3157666mpfqgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102420161009
3159872mpfqgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102420161009
3165186mpfqgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102420161009
3165780mpfqgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102420161009
3177053mpfqgcc -funroll-loops -O2 -fomit-frame-pointer2016102420161009
3177803mpfqgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102420161009
3177921mpfqgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102420161009
3189326mpfqgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102420161009
3190094mpfqgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102420161009
3190362mpfqgcc -funroll-loops -O3 -fomit-frame-pointer2016102420161009
3202538mpfqgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102420161009
3203043mpfqgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102420161009
3208665mpfqgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102420161009
3209227mpfqgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102420161009
3352443mpfqgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102420161009
3353394mpfqgcc -march=barcelona -O3 -fomit-frame-pointer2016102420161009
3354226mpfqgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102420161009
3355104mpfqgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102420161009
3356284mpfqgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102420161009
3363882mpfqgcc -march=barcelona -O2 -fomit-frame-pointer2016102420161009
3364431mpfqgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102420161009
3366404mpfqgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102420161009
3374906mpfqgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102420161009
3375130mpfqgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102420161009
3385109mpfqgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102420161009
3385799mpfqgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102420161009
3390578mpfqgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102420161009
3391374mpfqgcc -funroll-loops -O -fomit-frame-pointer2016102420161009
3391841mpfqgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102420161009
3409926mpfqgcc -march=k8 -O3 -fomit-frame-pointer2016102420161009
3411087mpfqgcc -m64 -O3 -fomit-frame-pointer2016102420161009
3415165mpfqgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102420161009
3415281mpfqgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102420161009
3416067mpfqgcc -march=barcelona -O -fomit-frame-pointer2016102420161009
3416214mpfqgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102420161009
3417472mpfqgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102420161009
3420118mpfqgcc -O3 -fomit-frame-pointer2016102420161009
3420866mpfqgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102420161009
3421507mpfqgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102420161009
3422006mpfqgcc -O2 -fomit-frame-pointer2016102420161009
3422453mpfqgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102420161009
3424415mpfqgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102420161009
3424604mpfqgcc -march=k8 -O2 -fomit-frame-pointer2016102420161009
3424667mpfqgcc -m64 -O2 -fomit-frame-pointer2016102420161009
3425398mpfqgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102420161009
3429752mpfqgcc -march=k8 -O -fomit-frame-pointer2016102420161009
3430957mpfqgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102420161009
3431434mpfqgcc -m64 -march=k8 -O -fomit-frame-pointer2016102420161009
3449469mpfqgcc -m64 -O -fomit-frame-pointer2016102420161009
3449759mpfqgcc -O -fomit-frame-pointer2016102420161009
3450718mpfqgcc -fno-schedule-insns -O -fomit-frame-pointer2016102420161009
3465120mpfqgcc -march=nocona -O -fomit-frame-pointer2016102420161009
3466096mpfqgcc -m64 -march=nocona -O -fomit-frame-pointer2016102420161009
3479152mpfqgcc -m64 -march=core2 -O -fomit-frame-pointer2016102420161009
3529150mpfqgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102420161009
3529830mpfqgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102420161009
3530652mpfqgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102420161009
3531627mpfqgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102420161009
3565664mpfqgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102420161009
3565834mpfqgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102420161009
3569578mpfqgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102420161009
3571833mpfqgcc -march=nocona -O3 -fomit-frame-pointer2016102420161009
3578635mpfqgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102420161009
3583251mpfqgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102420161009
3584475mpfqgcc -march=nocona -O2 -fomit-frame-pointer2016102420161009
3585013mpfqgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102420161009
3623528mpfqgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102420161009
3625048mpfqgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102420161009
3625145mpfqgcc -funroll-loops -Os -fomit-frame-pointer2016102420161009
3776730mpfqgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102420161009
3804213mpfqgcc -march=barcelona -Os -fomit-frame-pointer2016102420161009
3809248mpfqgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102420161009
3809309mpfqgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102420161009
3900458mpfqgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102420161009
3901066mpfqgcc -Os -fomit-frame-pointer2016102420161009
3903517mpfqgcc -m64 -Os -fomit-frame-pointer2016102420161009
3907217mpfqgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102420161009
3923301mpfqgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102420161009
3924861mpfqgcc -march=k8 -Os -fomit-frame-pointer2016102420161009
3926918mpfqgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102420161009
3937993mpfqgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102420161009
3993024mpfqgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102420161009
3994030mpfqgcc -march=nocona -Os -fomit-frame-pointer2016102420161009
17086203mpfqgcc2016102420161009
17087314mpfqgcc -funroll-loops2016102420161009
17098377mpfqcc2016102420161009

Test failure

Implementation: crypto_dh/surf2113/mpfq
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -O -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -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: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -march=native -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