Implementation notes: amd64, haswell, crypto_dh/hector

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20130419
Operation: crypto_dh
Primitive: hector
TimeImplementationCompilerBenchmark dateSUPERCOP version
2115676refclang -O3 -mavx2013060920130419
2220132refclang -O32013060920130419
2335284refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
2353208refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
2385420refgcc -march=nocona -O -fomit-frame-pointer2013060920130419
2393484refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
2400189refgcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
2483971refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
2497534refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
2505890refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
2508824refgcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
2539112refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
2545064refgcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
2551225refgcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
2554459refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
2561561refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
2562584refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
2566296refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
2599572refgcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
2603939refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
2606102refgcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
2610924refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
2612152refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
2612168refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
2617556refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
2647120refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
2656022refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
2677426refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
2686689refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
2697169refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
2698998refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
2699192refgcc -O3 -fomit-frame-pointer2013060920130419
2704764refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
2706525refgcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
2709558refgcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
2713928refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
2716620refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
2725038refgcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
2727943refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
2728744refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
2730352refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
2731136refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
2736988refgcc -O2 -fomit-frame-pointer2013060920130419
2737600refgcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
2748752refgcc -m64 -O3 -fomit-frame-pointer2013060920130419
2751894refgcc -m64 -O -fomit-frame-pointer2013060920130419
2759837refgcc -m64 -O2 -fomit-frame-pointer2013060920130419
2763995refgcc -funroll-loops -O -fomit-frame-pointer2013060920130419
2776596refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
2778780refgcc -march=k8 -O -fomit-frame-pointer2013060920130419
2780122refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
2785891refgcc -march=barcelona -O -fomit-frame-pointer2013060920130419
2792390refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
2797307refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
2798114refgcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
2816160refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
2831208refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
2843468refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
2848384refgcc -O -fomit-frame-pointer2013060920130419
2849524refgcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
2868411refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
2868788refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
2871604refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
2871700refgcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
2885910refgcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
2886640refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
2889124refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
2898964refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
2909472refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
2914500refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
2923929refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
2928023refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
2929958refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
2959877refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
2967600refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
2968685refgcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
2996192refgcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
3003538refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
3006170refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
3027132refgcc -m64 -Os -fomit-frame-pointer2013060920130419
3049560refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
3120243refgcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
3167052refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
3188707refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
3194980refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
3200582refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
3258362refgcc -march=nocona -Os -fomit-frame-pointer2013060920130419
3302456refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
3306760refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
3318087refgcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
3359670refgcc -Os -fomit-frame-pointer2013060920130419
3438024refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
3467881refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
3517256refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
3531892refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
3565450refgcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
3578560refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
3582374refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
3621036refgcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
3627038refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
3695085refgcc -march=k8 -Os -fomit-frame-pointer2013060920130419
3957103refgcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
9125476refcc2013060920130419
9303162refgcc -funroll-loops2013060920130419
9335244refgcc2013060920130419

Compiler output

Implementation: crypto_dh/hector/ref
Compiler: clang -O3
common.c: In file included from common.c:7:
common.c: In file included from ./common.h:12:
common.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
common.c: void divclass_make_affine(divclass rop, const divclass const op);
common.c: ^
common.c: 1 warning generated.
config.c: In file included from config.c:10:
config.c: In file included from ./config.h:11:
config.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
config.c: void divclass_make_affine(divclass rop, const divclass const op);
config.c: ^
config.c: 1 warning generated.
conversion.c: In file included from conversion.c:9:
conversion.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
conversion.c: void divclass_make_affine(divclass rop, const divclass const op);
conversion.c: ^
conversion.c: 1 warning generated.
curve.c: In file included from curve.c:7:
curve.c: In file included from ./config.h:11:
curve.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
curve.c: void divclass_make_affine(divclass rop, const divclass const op);
curve.c: ^
curve.c: 1 warning generated.
divclass.c: In file included from divclass.c:7:
divclass.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
divclass.c: void divclass_make_affine(divclass rop, const divclass const op);
divclass.c: ^
divclass.c: 1 warning generated.
generator.c: In file included from generator.c:10:
generator.c: In file included from ./config.h:11:
generator.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
generator.c: void divclass_make_affine(divclass rop, const divclass const op);
generator.c: ^
generator.c: 1 warning generated.
hector_dh.c: In file included from hector_dh.c:12:
hector_dh.c: In file included from ./config.h:11:
hector_dh.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
hector_dh.c: void divclass_make_affine(divclass rop, const divclass const op);
hector_dh.c: ^
hector_dh.c: 1 warning generated.
wnaf.c: In file included from wnaf.c:10:
wnaf.c: In file included from ./config.h:11:
wnaf.c: ./divclass.h:53:56: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]
wnaf.c: void divclass_make_affine(divclass rop, const divclass const op);
wnaf.c: ^
wnaf.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 ref
clang -O3 -mavx ref