Implementation notes: amd64, h3neo, crypto_dh/surf2113

Computer: h3neo
Architecture: amd64
CPU ID: AuthenticAMD-00100f63-078bfbff
SUPERCOP version: 20170105
Operation: crypto_dh
Primitive: surf2113
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4366914? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2016111320161009
4367946? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2016111320161009
4369374? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2016111320161009
4372560? ? ?? ? ?mpfqgcc_-funroll-loops_-O2_-fomit-frame-pointer2016111320161009
4376638? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2016111320161009
4378292? ? ?? ? ?mpfqgcc_-funroll-loops_-O3_-fomit-frame-pointer2016111320161009
4380710? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2016111320161009
4388016? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2016111320161009
4391697? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2016111320161009
4392183? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2016111320161009
4392188? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2016111320161009
4392494? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2016111320161009
4394844? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2016111320161009
4396076? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2016111320161009
4556585? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2016111320161009
4559791? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2016111320161009
4560223? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2016111320161009
4560416? ? ?? ? ?mpfqgcc_-m64_-O3_-fomit-frame-pointer2016111320161009
4560468? ? ?? ? ?mpfqgcc_-O3_-fomit-frame-pointer2016111320161009
4560826? ? ?? ? ?mpfqgcc_-march=barcelona_-O3_-fomit-frame-pointer2016111320161009
4562239? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2016111320161009
4566560? ? ?? ? ?mpfqgcc_-march=k8_-O3_-fomit-frame-pointer2016111320161009
4567412? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2016111320161009
4571448? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2016111320161009
4572228? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2016111320161009
4574337? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2016111320161009
4576630? ? ?? ? ?mpfqgcc_-march=barcelona_-O2_-fomit-frame-pointer2016111320161009
4579367? ? ?? ? ?mpfqgcc_-march=k8_-O2_-fomit-frame-pointer2016111320161009
4579565? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2016111320161009
4580220? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2016111320161009
4580291? ? ?? ? ?mpfqgcc_-m64_-O2_-fomit-frame-pointer2016111320161009
4581848? ? ?? ? ?mpfqgcc_-O2_-fomit-frame-pointer2016111320161009
4590828? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2016111320161009
4609518? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2016111320161009
4618247? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2016111320161009
4626681? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2016111320161009
4626759? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2016111320161009
4630040? ? ?? ? ?mpfqgcc_-funroll-loops_-O_-fomit-frame-pointer2016111320161009
4636951? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2016111320161009
4637129? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2016111320161009
4697882? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2016111320161009
4698368? ? ?? ? ?mpfqgcc_-march=barcelona_-O_-fomit-frame-pointer2016111320161009
4700801? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2016111320161009
4702109? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2016111320161009
4703213? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2016111320161009
4704286? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2016111320161009
4710547? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2016111320161009
4710893? ? ?? ? ?mpfqgcc_-O_-fomit-frame-pointer2016111320161009
4711641? ? ?? ? ?mpfqgcc_-m64_-O_-fomit-frame-pointer2016111320161009
4712505? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2016111320161009
4717250? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2016111320161009
4717834? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O_-fomit-frame-pointer2016111320161009
4719548? ? ?? ? ?mpfqgcc_-march=k8_-O_-fomit-frame-pointer2016111320161009
4735078? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2016111320161009
4737273? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2016111320161009
4743821? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2016111320161009
4743969? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O_-fomit-frame-pointer2016111320161009
4745682? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2016111320161009
4762630? ? ?? ? ?mpfqgcc_-march=nocona_-O_-fomit-frame-pointer2016111320161009
4764269? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2016111320161009
4785580? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2016111320161009
4786005? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2016111320161009
4789928? ? ?? ? ?mpfqgcc_-march=nocona_-O2_-fomit-frame-pointer2016111320161009
4792485? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2016111320161009
4795009? ? ?? ? ?mpfqgcc_-march=nocona_-O3_-fomit-frame-pointer2016111320161009
4796918? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2016111320161009
4810486? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2016111320161009
4815172? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2016111320161009
4818598? ? ?? ? ?mpfqgcc_-funroll-loops_-Os_-fomit-frame-pointer2016111320161009
4968408? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2016111320161009
4969713? ? ?? ? ?mpfqgcc_-Os_-fomit-frame-pointer2016111320161009
4970072? ? ?? ? ?mpfqgcc_-m64_-Os_-fomit-frame-pointer2016111320161009
5013956? ? ?? ? ?mpfqgcc_-march=k8_-Os_-fomit-frame-pointer2016111320161009
5017744? ? ?? ? ?mpfqgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2016111320161009
5055331? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2016111320161009
5071020? ? ?? ? ?mpfqgcc_-march=barcelona_-Os_-fomit-frame-pointer2016111320161009
5071158? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2016111320161009
5072611? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2016111320161009
5073791? ? ?? ? ?mpfqgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2016111320161009
5168017? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2016111320161009
5168248? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2016111320161009
5282252? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2016111320161009
5284439? ? ?? ? ?mpfqgcc_-march=nocona_-Os_-fomit-frame-pointer2016111320161009
19062821? ? ?? ? ?mpfqcc2016111320161009
19063754? ? ?? ? ?mpfqgcc_-funroll-loops2016111320161009
19069615? ? ?? ? ?mpfqgcc2016111320161009

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