Implementation notes: amd64, haswell, crypto_dh/curve25519

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20130419
Operation: crypto_dh
Primitive: curve25519
TimeImplementationCompilerBenchmark dateSUPERCOP version
664472refgcc -march=k8 -O -fomit-frame-pointer2013060920130419
665616refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
666724refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
667468refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
668420refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
668548refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
669504refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
669620refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
670012refgcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
670448refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
671516refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
675264refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
676900refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
680864refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
686600refgcc -Os -fomit-frame-pointer2013060920130419
686745refgcc -O3 -fomit-frame-pointer2013060920130419
687689refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
687996refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
688903refgcc -march=nocona -Os -fomit-frame-pointer2013060920130419
690485refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
691298refgcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
691753refgcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
692238refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
692902refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
693419refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
693775refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
693925refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
695238refgcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
695532refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
697140refcc2013060920130419
697835refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
698175refgcc -march=k8 -Os -fomit-frame-pointer2013060920130419
698556refgcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
699347refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
707082refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
707829refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
710760refgcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
711176refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
714396refgcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
715640refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
716952refgcc -m64 -O2 -fomit-frame-pointer2013060920130419
717348refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
717572refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
717592refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
717692refgcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
717808refgcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
718260refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
718712refgcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
721268refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
721580refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
722344refgcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
722400refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
723339refgcc -m64 -O -fomit-frame-pointer2013060920130419
724704refgcc -march=nocona -O -fomit-frame-pointer2013060920130419
725016refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
726496refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
737544refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
738652refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
738708refgcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
739152refgcc -m64 -Os -fomit-frame-pointer2013060920130419
740900refgcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
741008refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
742818refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
743316refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
743830refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
743896refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
744328refgcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
745256refgcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
745502refclang -O32013060920130419
746324refgcc -funroll-loops -O -fomit-frame-pointer2013060920130419
746328refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
746808refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
749740refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
751896refgcc2013060920130419
753436refgcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
756556refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
758763refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
760478refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
768119refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
768400refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
769224refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
769644refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
770172refgcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
770252refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
771376refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
771404refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
771900refgcc -O2 -fomit-frame-pointer2013060920130419
772000refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
772848refgcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
773596refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
774180refgcc -march=barcelona -O -fomit-frame-pointer2013060920130419
780008refgcc -funroll-loops2013060920130419
780248refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
780935refgcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
790672refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
790700refclang -O3 -mavx2013060920130419
802807refgcc -O -fomit-frame-pointer2013060920130419
806072refgcc -m64 -O3 -fomit-frame-pointer2013060920130419
812899refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
837449refgcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
838357refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
843904refgcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
845258refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
848625refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
889107refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
990856mpfqgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
991636mpfqgcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
999952mpfqgcc -m64 -O3 -fomit-frame-pointer2013060920130419
1002768mpfqgcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
1007764mpfqgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
1012100mpfqgcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1015148mpfqgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
1043743mpfqgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
1045728mpfqgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
1048006mpfqgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
1048442mpfqgcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
1052540mpfqgcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
1053440mpfqgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
1053939mpfqgcc -m64 -O2 -fomit-frame-pointer2013060920130419
1054184mpfqgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
1055302mpfqgcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
1059440mpfqgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
1059536mpfqgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
1061808mpfqgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1065676mpfqgcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
1067336mpfqgcc -O2 -fomit-frame-pointer2013060920130419
1067454mpfqgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1075813mpfqgcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
1077220mpfqgcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
1079504mpfqgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
1081552mpfqgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1083519mpfqgcc -funroll-loops -O -fomit-frame-pointer2013060920130419
1087674mpfqgcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
1088792mpfqgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
1092268mpfqgcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
1092430mpfqgcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
1093856mpfqgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1100032mpfqgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
1101656mpfqgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
1101677mpfqgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
1106960mpfqgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
1114996mpfqgcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
1120022mpfqclang -O32013060920130419
1120610mpfqgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
1124528mpfqgcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1125048mpfqgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
1129864mpfqgcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
1131116mpfqgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
1131817mpfqgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
1133812mpfqgcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
1136684mpfqclang -O3 -mavx2013060920130419
1139836mpfqgcc -m64 -Os -fomit-frame-pointer2013060920130419
1142268mpfqgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
1144715mpfqgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
1145888mpfqgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
1148644mpfqgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
1149944mpfqgcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
1151804mpfqgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
1152104mpfqgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
1154056mpfqgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
1156556mpfqgcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
1158368mpfqgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1159244mpfqgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
1159428mpfqgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
1159738mpfqgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
1161312mpfqgcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
1169052mpfqgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
1169106mpfqgcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
1169504mpfqgcc -march=k8 -O -fomit-frame-pointer2013060920130419
1172110mpfqgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
1173042mpfqgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
1173192mpfqgcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
1174001mpfqgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
1181986mpfqgcc -m64 -O -fomit-frame-pointer2013060920130419
1182557mpfqgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
1184952mpfqgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
1185673mpfqgcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
1187567mpfqgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
1189415mpfqgcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
1189816mpfqgcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
1194742mpfqgcc -O3 -fomit-frame-pointer2013060920130419
1205472mpfqgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1207476mpfqgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
1208780mpfqgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
1212876mpfqgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
1213928mpfqgcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
1215580mpfqgcc -march=nocona -O -fomit-frame-pointer2013060920130419
1228916mpfqgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
1228972mpfqgcc -march=barcelona -O -fomit-frame-pointer2013060920130419
1234640mpfqgcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
1235952mpfqgcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
1240202mpfqgcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
1256527mpfqgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
1259970mpfqgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
1263679mpfqgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
1267484mpfqgcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
1269396mpfqgcc -march=nocona -Os -fomit-frame-pointer2013060920130419
1279210mpfqgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
1282600mpfqgcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
1304172mpfqgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
1322136mpfqgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
1332623mpfqgcc -O -fomit-frame-pointer2013060920130419
1365337mpfqgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
1371191mpfqgcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
1371878mpfqgcc -march=k8 -Os -fomit-frame-pointer2013060920130419
1375242mpfqgcc -Os -fomit-frame-pointer2013060920130419
1453354mpfqgcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
2247231mpfqcc2013060920130419
2437906mpfqgcc2013060920130419
2521491mpfqgcc -funroll-loops2013060920130419

Compiler output

Implementation: crypto_dh/curve25519/mpfq
Compiler: clang -O3
mpfq_p_25519.c: In file included from mpfq_p_25519.c:5:
mpfq_p_25519.c: ./x86_64/mpfq_p_25519.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_25519.c: }
mpfq_p_25519.c: ^
mpfq_p_25519.c: 1 warning generated.

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