Implementation notes: amd64, katana, crypto_dh/surf2113

Computer: katana
Architecture: amd64
CPU ID: GenuineIntel-000006f6-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_dh
Primitive: surf2113
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2992872? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2016103020161009
2993312? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2016103020161009
3053384? ? ?? ? ?mpfqgcc_-O_-fomit-frame-pointer2016103020161009
3054256? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2016103020161009
3058088? ? ?? ? ?mpfqgcc_-m64_-O_-fomit-frame-pointer2016103020161009
3081752? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2016103020161009
3082480? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2016103020161009
3083216? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O_-fomit-frame-pointer2016103020161009
3087904? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2016103020161009
3088168? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2016103020161009
3088192? ? ?? ? ?mpfqgcc_-funroll-loops_-O_-fomit-frame-pointer2016103020161009
3093864? ? ?? ? ?mpfqgcc_-march=k8_-O_-fomit-frame-pointer2016103020161009
3094536? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O_-fomit-frame-pointer2016103020161009
3105952? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2016103020161009
3106704? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2016103020161009
3119424? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2016103020161009
3125608? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2016103020161009
3144216? ? ?? ? ?mpfqgcc_-march=nocona_-O_-fomit-frame-pointer2016103020161009
3145672? ? ?? ? ?mpfqgcc_-funroll-loops_-Os_-fomit-frame-pointer2016103020161009
3146392? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2016103020161009
3150888? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2016103020161009
3156304? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2016103020161009
3167840? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2016103020161009
3169080? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2016103020161009
3174680? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2016103020161009
3187456? ? ?? ? ?mpfqgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2016103020161009
3187688? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2016103020161009
3212256? ? ?? ? ?mpfqgcc_-m64_-Os_-fomit-frame-pointer2016103020161009
3219912? ? ?? ? ?mpfqgcc_-funroll-loops_-O3_-fomit-frame-pointer2016103020161009
3220648? ? ?? ? ?mpfqgcc_-Os_-fomit-frame-pointer2016103020161009
3220976? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2016103020161009
3221248? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2016103020161009
3233584? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2016103020161009
3247480? ? ?? ? ?mpfqgcc_-march=k8_-Os_-fomit-frame-pointer2016103020161009
3266776? ? ?? ? ?mpfqgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2016103020161009
3325576? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
3325976? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
3424096? ? ?? ? ?mpfqgcc_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
3454400? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
3454960? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
3456744? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2016103020161009
3456952? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
3471680? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2016103020161009
3471712? ? ?? ? ?mpfqgcc_-m64_-O2_-fomit-frame-pointer2016103020161009
3472144? ? ?? ? ?mpfqgcc_-O2_-fomit-frame-pointer2016103020161009
3533192? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2016103020161009
3535312? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2016103020161009
3566360? ? ?? ? ?mpfqgcc_-march=k8_-O2_-fomit-frame-pointer2016103020161009
3571256? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2016103020161009
3673520? ? ?? ? ?mpfqgcc_-march=k8_-O3_-fomit-frame-pointer2016103020161009
3674800? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2016103020161009
3729576? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
3731144? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
3866096? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2016103020161009
3869784? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2016103020161009
3902288? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2016103020161009
3904416? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2016103020161009
3949888? ? ?? ? ?mpfqgcc_-funroll-loops_-O2_-fomit-frame-pointer2016103020161009
3950000? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2016103020161009
3950992? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2016103020161009
3967408? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2016103020161009
4061432? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2016103020161009
4063720? ? ?? ? ?mpfqgcc_-O3_-fomit-frame-pointer2016103020161009
4064000? ? ?? ? ?mpfqgcc_-m64_-O3_-fomit-frame-pointer2016103020161009
4080720? ? ?? ? ?mpfqgcc_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
4086752? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
4261368? ? ?? ? ?mpfqgcc_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
4262064? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
13819568? ? ?? ? ?mpfqgcc2016103020161009
13822712? ? ?? ? ?mpfqcc2016103020161009
13823160? ? ?? ? ?mpfqgcc_-funroll-loops2016103020161009

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 -msse4.1 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
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