Implementation notes: amd64, genji154, crypto_dh/surf127eps

Computer: genji154
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20170228
Operation: crypto_dh
Primitive: surf127eps
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2821221? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017022620170105
2824146? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
2825602? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017022620170105
2826109? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
2826278? ? ?? ? ?mpfqclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017041020170228
2826369? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
2827942? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017022620170105
2828241? ? ?? ? ?mpfqclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017041020170228
2828358? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
2829203? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017022620170105
2829372? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017022620170105
2829515? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017022620170105
2829736? ? ?? ? ?mpfqgcc_-march=k8_-O2_-fomit-frame-pointer2017022620170105
2831556? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017022620170105
2831634? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017022620170105
2833701? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017022620170105
2833974? ? ?? ? ?mpfqgcc_-funroll-loops_-O3_-fomit-frame-pointer2017022620170105
2835092? ? ?? ? ?mpfqgcc_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
2835183? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017022620170105
2836301? ? ?? ? ?mpfqclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017041020170228
2836691? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
2837185? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017022620170105
2839408? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
2840162? ? ?? ? ?mpfqclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017041020170228
2840565? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
2842385? ? ?? ? ?mpfqgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017022620170105
2843087? ? ?? ? ?mpfqgcc_-m64_-O2_-fomit-frame-pointer2017022620170105
2843282? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017022620170105
2846207? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017022620170105
2850640? ? ?? ? ?mpfqclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2017041020170228
2854605? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
2855502? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
2857309? ? ?? ? ?mpfqgcc_-m64_-O3_-fomit-frame-pointer2017022620170105
2857621? ? ?? ? ?mpfqicc_-xMIC-AVX512_-O3_-fomit-frame-pointer2017022620170105
2860065? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017022620170105
2860468? ? ?? ? ?mpfqgcc_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
2863016? ? ?? ? ?mpfqclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017041020170228
2863458? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
2865291? ? ?? ? ?mpfqgcc_-O3_-fomit-frame-pointer2017022620170105
2865343? ? ?? ? ?mpfqgcc_-funroll-loops_-O2_-fomit-frame-pointer2017022620170105
2866656? ? ?? ? ?mpfqgcc_-O2_-fomit-frame-pointer2017022620170105
2866682? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017022620170105
2867397? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017022620170105
2871427? ? ?? ? ?mpfqclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017041020170228
2873559? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
2875249? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
2875782? ? ?? ? ?mpfqicc_-no-vec2017022620170105
2877121? ? ?? ? ?mpfqgcc_-march=k8_-O3_-fomit-frame-pointer2017022620170105
2877706? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017022620170105
2878746? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017022620170105
2880449? ? ?? ? ?mpfqclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017041020170228
2885493? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017022620170105
2885623? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017022620170105
2885857? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017022620170105
2887066? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017022620170105
2888405? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017022620170105
2889796? ? ?? ? ?mpfqgcc_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
2889913? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017022620170105
2892591? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017022620170105
2893072? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017022620170105
2893072? ? ?? ? ?mpfqicc_-xMIC-AVX512_-O2_-fomit-frame-pointer2017022620170105
2893397? ? ?? ? ?mpfqgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017022620170105
2894008? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017022620170105
2895243? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017022620170105
2895945? ? ?? ? ?mpfqgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017022620170105
2896699? ? ?? ? ?mpfqgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017022620170105
2897388? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017022620170105
2897414? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017022620170105
2897505? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017022620170105
2897726? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
2897843? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017022620170105
2898441? ? ?? ? ?mpfqgcc_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
2898597? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017022620170105
2898831? ? ?? ? ?mpfqgcc_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
2898974? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
2900352? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017022620170105
2902224? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017022620170105
2903823? ? ?? ? ?mpfqicc2017022620170105
2908204? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
2915653? ? ?? ? ?mpfqgcc_-march=k8_-O_-fomit-frame-pointer2017022620170105
2915705? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017022620170105
2920632? ? ?? ? ?mpfqgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017022620170105
2922517? ? ?? ? ?mpfqgcc_-funroll-loops_-O_-fomit-frame-pointer2017022620170105
2922712? ? ?? ? ?mpfqgcc_-O_-fomit-frame-pointer2017022620170105
2927964? ? ?? ? ?mpfqgcc_-m64_-O_-fomit-frame-pointer2017022620170105
2934932? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017022620170105
2935881? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017022620170105
2938767? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017022620170105
2941055? ? ?? ? ?mpfqgcc_-march=nocona_-O_-fomit-frame-pointer2017022620170105
2947971? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017022620170105
2952079? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017022620170105
2984176? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017022620170105
2991430? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017022620170105
3037697? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
3037840? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017022620170105
3038230? ? ?? ? ?mpfqgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
3039218? ? ?? ? ?mpfqgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017022620170105
3043469? ? ?? ? ?mpfqgcc_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
3045926? ? ?? ? ?mpfqgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017022620170105
3047252? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017022620170105
3050788? ? ?? ? ?mpfqgcc_-funroll-loops_-Os_-fomit-frame-pointer2017022620170105
3053037? ? ?? ? ?mpfqgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017022620170105
3059329? ? ?? ? ?mpfqgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017022620170105
3060200? ? ?? ? ?mpfqgcc_-march=k8_-Os_-fomit-frame-pointer2017022620170105
3062345? ? ?? ? ?mpfqgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017022620170105
3062982? ? ?? ? ?mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017022620170105
3065426? ? ?? ? ?mpfqgcc_-Os_-fomit-frame-pointer2017022620170105
3069131? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017022620170105
3069677? ? ?? ? ?mpfqgcc_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
3072251? ? ?? ? ?mpfqgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
3078933? ? ?? ? ?mpfqgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
3079583? ? ?? ? ?mpfqgcc_-m64_-Os_-fomit-frame-pointer2017022620170105
3083301? ? ?? ? ?mpfqgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017022620170105
3087591? ? ?? ? ?mpfqgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
3099538? ? ?? ? ?mpfqgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017022620170105
3102580? ? ?? ? ?mpfqgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017022620170105
3108599? ? ?? ? ?mpfqgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017022620170105
3113734? ? ?? ? ?mpfqgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
3124875? ? ?? ? ?mpfqgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017022620170105
3126461? ? ?? ? ?mpfqgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017022620170105

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: cc
surf127eps.c: In file included from mpfq_p_127_735.h:5:0,
surf127eps.c: from surf127eps.c:18:
surf127eps.c: x86_64/mpfq_p_127_735.h: In function 'mpfq_p_127_735_hadamard':
surf127eps.c: x86_64/mpfq_p_127_735.h:360:3: error: 'asm' operand has impossible constraints
surf127eps.c: __asm__ volatile (
surf127eps.c: ^

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -mavx2 -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 -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

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
surf127eps.c: In file included from surf127eps.c:18:
surf127eps.c: In file included from ./mpfq_p_127_735.h:5:
surf127eps.c: ./x86_64/mpfq_p_127_735.h:361:4: error: inline assembly requires more registers than available
surf127eps.c: " movq %0, %%rcx\n"
surf127eps.c: ^
surf127eps.c: ./x86_64/mpfq_p_127_735.h:361:4: error: inline assembly requires more registers than available
surf127eps.c: ./x86_64/mpfq_p_127_735.h:361:4: error: inline assembly requires more registers than available
surf127eps.c: ./x86_64/mpfq_p_127_735.h:361:4: error: inline assembly requires more registers than available
surf127eps.c: 4 errors generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments mpfq
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: gcc
surf127eps.c: In file included from mpfq_p_127_735.h:5:0,
surf127eps.c: from surf127eps.c:18:
surf127eps.c: x86_64/mpfq_p_127_735.h: In function 'mpfq_p_127_735_hadamard':
surf127eps.c: x86_64/mpfq_p_127_735.h:360:3: error: 'asm' operand has impossible constraints
surf127eps.c: __asm__ volatile (
surf127eps.c: ^~~~~~~

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc mpfq
gcc -funroll-loops mpfq