Implementation notes: amd64, mace, crypto_dh/surf2113

Computer: mace
Architecture: amd64
CPU ID: AuthenticAMD-00040fb2-178bfbff
SUPERCOP version: 20170105
Operation: crypto_dh
Primitive: surf2113
TimeImplementationCompilerBenchmark dateSUPERCOP version
4635093mpfqgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016111820161009
4646477mpfqgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016111820161009
4657426mpfqgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016111820161009
4658458mpfqgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016111820161009
4664363mpfqgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016111820161009
4664577mpfqgcc -funroll-loops -O2 -fomit-frame-pointer2016111820161009
4665573mpfqgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016111820161009
4667612mpfqgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016111820161009
4669934mpfqgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016111820161009
4671591mpfqgcc -funroll-loops -O3 -fomit-frame-pointer2016111820161009
4747980mpfqgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016111820161009
4749230mpfqgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016111820161009
4756982mpfqgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016111820161009
4762633mpfqgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016111820161009
4780574mpfqgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016111820161009
4784887mpfqgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016111820161009
4784892mpfqgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016111820161009
4787729mpfqgcc -march=k8 -O3 -fomit-frame-pointer2016111820161009
4788713mpfqgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016111820161009
4789693mpfqgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016111820161009
4790571mpfqgcc -O3 -fomit-frame-pointer2016111820161009
4792977mpfqgcc -m64 -O3 -fomit-frame-pointer2016111820161009
4794090mpfqgcc -march=k8 -O2 -fomit-frame-pointer2016111820161009
4794955mpfqgcc -O2 -fomit-frame-pointer2016111820161009
4795423mpfqgcc -m64 -O2 -fomit-frame-pointer2016111820161009
4798336mpfqgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016111820161009
4802837mpfqgcc -funroll-loops -m64 -O -fomit-frame-pointer2016111820161009
4802998mpfqgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016111820161009
4804847mpfqgcc -funroll-loops -O -fomit-frame-pointer2016111820161009
4809378mpfqgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016111820161009
4819855mpfqgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016111820161009
4831128mpfqgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016111820161009
4833450mpfqgcc -m64 -march=k8 -O -fomit-frame-pointer2016111820161009
4833828mpfqgcc -march=k8 -O -fomit-frame-pointer2016111820161009
4858356mpfqgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016111820161009
4861181mpfqgcc -fno-schedule-insns -O -fomit-frame-pointer2016111820161009
4863702mpfqgcc -m64 -O -fomit-frame-pointer2016111820161009
4865539mpfqgcc -O -fomit-frame-pointer2016111820161009
4870340mpfqgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016111820161009
4911201mpfqgcc -m64 -march=nocona -O -fomit-frame-pointer2016111820161009
4922113mpfqgcc -m64 -march=core2 -O -fomit-frame-pointer2016111820161009
4923373mpfqgcc -march=nocona -O -fomit-frame-pointer2016111820161009
4931669mpfqgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016111820161009
4933487mpfqgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016111820161009
4938865mpfqgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016111820161009
4949199mpfqgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016111820161009
4996194mpfqgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016111820161009
5001568mpfqgcc -march=nocona -O3 -fomit-frame-pointer2016111820161009
5010547mpfqgcc -march=nocona -O2 -fomit-frame-pointer2016111820161009
5013132mpfqgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016111820161009
6078136mpfqgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016111820161009
6084446mpfqgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016111820161009
6129392mpfqgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016111820161009
6137901mpfqgcc -funroll-loops -Os -fomit-frame-pointer2016111820161009
6144556mpfqgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016111820161009
6176328mpfqgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016111820161009
6198809mpfqgcc -march=k8 -Os -fomit-frame-pointer2016111820161009
6203453mpfqgcc -m64 -march=k8 -Os -fomit-frame-pointer2016111820161009
6209907mpfqgcc -m64 -march=core2 -Os -fomit-frame-pointer2016111820161009
6246956mpfqgcc -march=nocona -Os -fomit-frame-pointer2016111820161009
6249686mpfqgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016111820161009
6260816mpfqgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016111820161009
6279483mpfqgcc -m64 -march=nocona -Os -fomit-frame-pointer2016111820161009
6391160mpfqgcc -Os -fomit-frame-pointer2016111820161009
6392241mpfqgcc -fno-schedule-insns -Os -fomit-frame-pointer2016111820161009
6420130mpfqgcc -m64 -Os -fomit-frame-pointer2016111820161009
6515648mpfqgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016111820161009
20529113mpfqgcc -funroll-loops2016111820161009
20538337mpfqgcc2016111820161009
20550878mpfqcc2016111820161009

Test failure

Implementation: crypto_dh/surf2113/mpfq
Compiler: gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_dh not associative

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer mpfq
gcc -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -march=barcelona -O -fomit-frame-pointer mpfq
gcc -march=barcelona -Os -fomit-frame-pointer mpfq

Test failure

Implementation: crypto_dh/surf2113/mpfq
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_dh not associative
error 111
crypto_dh not associative

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

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