| Time | Implementation | Compiler | Benchmark date | SUPERCOP version |
| 30584 | avx2 | clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments | 20161216 | 20161026 |
| 30602 | avx2 | clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 30676 | avx2 | g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 30692 | avx2 | g++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 30706 | avx2 | clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 30718 | avx2 | g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 30746 | avx2 | g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 30762 | avx2 | g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 30786 | avx2 | g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer | 20161216 | 20161026 |
| 30912 | avx2 | g++ -m64 -march=core-avx2 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 31250 | avx2 | g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 31498 | avx2 | g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 31792 | avx2 | clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 35332 | avx2 | g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 35452 | avx2 | g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 36912 | avx2 | g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 2385824 | ref | clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments | 20161216 | 20161026 |
| 2397610 | ref | clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 2442754 | ref | clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 2444822 | ref | clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 2445748 | ref | clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 2448286 | ref | clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 2481568 | ref | clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments | 20161216 | 20161026 |
| 2482076 | ref | clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments | 20161216 | 20161026 |
| 2490952 | ref | clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments | 20161216 | 20161026 |
| 2529516 | ref | clang -O3 -fomit-frame-pointer -Qunused-arguments | 20161216 | 20161026 |
| 2717676 | ref | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2719548 | ref | gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2889140 | ref | gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2892072 | ref | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2900240 | ref | gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2900456 | ref | gcc -funroll-loops -march=k8 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2902422 | ref | gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2903070 | ref | gcc -funroll-loops -m64 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2903168 | ref | gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2903388 | ref | gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2903756 | ref | gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2904148 | ref | gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2904162 | ref | gcc -funroll-loops -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2905384 | ref | gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2905580 | ref | gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2908322 | ref | gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2915750 | ref | gcc -funroll-loops -march=nocona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 2920634 | ref | gcc -funroll-loops -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2921440 | ref | gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2922390 | ref | gcc -funroll-loops -m64 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 2923364 | ref | gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2928334 | ref | gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2951256 | ref | gcc -funroll-loops -m64 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2954008 | ref | gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2954452 | ref | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2954576 | ref | gcc -fno-schedule-insns -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2956388 | ref | gcc -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2957666 | ref | gcc -m64 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2958260 | ref | gcc -funroll-loops -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2959346 | ref | gcc -m64 -march=corei7 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2960652 | ref | gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2964668 | ref | gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2968178 | ref | gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2971072 | ref | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2981254 | ref | gcc -march=nocona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 2983006 | ref | gcc -m64 -march=nocona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3061042 | ref | gcc -m64 -march=barcelona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3063776 | ref | gcc -march=k8 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3066002 | ref | gcc -march=barcelona -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3067950 | ref | gcc -m64 -march=k8 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3126852 | ref | gcc -m64 -march=core2 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3128956 | ref | gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3176906 | ref | gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3179316 | ref | gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 3179982 | ref | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer | 20161216 | 20161026 |
| 3924524 | ref | gcc -march=barcelona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 3930752 | ref | gcc -m64 -march=barcelona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 3978686 | ref | gcc -m64 -march=nocona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 3985314 | ref | gcc -march=nocona -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4043086 | ref | gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4047156 | ref | gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4055762 | ref | gcc -m64 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4056734 | ref | gcc -m64 -march=corei7 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4058538 | ref | gcc -m64 -march=core2 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4075722 | ref | gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4086554 | ref | gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4089484 | ref | gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4096704 | ref | gcc -fno-schedule-insns -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4098890 | ref | gcc -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4099862 | ref | gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4121256 | ref | gcc -m64 -march=k8 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4122954 | ref | gcc -march=k8 -O2 -fomit-frame-pointer | 20161216 | 20161026 |
| 4133036 | ref | gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 4409734 | ref | gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4413618 | ref | gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4414584 | ref | gcc -funroll-loops -m64 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4415304 | ref | gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4423656 | ref | gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4432374 | ref | gcc -funroll-loops -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4453348 | ref | gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4460774 | ref | gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4467380 | ref | gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 4646972 | ref | gcc -march=nocona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4653028 | ref | gcc -m64 -march=corei7 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4657218 | ref | gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4664470 | ref | gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4669290 | ref | gcc -m64 -march=nocona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4680402 | ref | gcc -m64 -march=core-avx-i -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4687228 | ref | gcc -m64 -march=corei7-avx -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4695680 | ref | gcc -m64 -march=core2 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4776838 | ref | gcc -march=barcelona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4823480 | ref | gcc -m64 -march=barcelona -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4882602 | ref | gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 4883560 | ref | gcc -m64 -march=core-avx2 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4884534 | ref | gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4923012 | ref | gcc -m64 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4938898 | ref | gcc -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4967260 | ref | gcc -fno-schedule-insns -O -fomit-frame-pointer | 20161216 | 20161026 |
| 4986522 | ref | gcc -m64 -march=k8 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 5006870 | ref | gcc -march=k8 -O -fomit-frame-pointer | 20161216 | 20161026 |
| 6054514 | ref | gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6057116 | ref | gcc -m64 -march=k8 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6058400 | ref | gcc -fno-schedule-insns -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6061252 | ref | gcc -m64 -march=corei7 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6061606 | ref | gcc -m64 -march=core2 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6062726 | ref | gcc -m64 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6063618 | ref | gcc -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6064620 | ref | gcc -m64 -march=barcelona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6066868 | ref | gcc -march=barcelona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6084756 | ref | gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6101078 | ref | gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6101774 | ref | gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6102454 | ref | gcc -march=k8 -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6105376 | ref | gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6111578 | ref | gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6112032 | ref | gcc -march=nocona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6116228 | ref | gcc -m64 -march=nocona -Os -fomit-frame-pointer | 20161216 | 20161026 |
| 6128704 | ref | gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv | 20161216 | 20161026 |
| 20014814 | ref | gcc | 20161216 | 20161026 |
| 20034106 | ref | gcc -funroll-loops | 20161216 | 20161026 |
| 20104528 | ref | cc | 20161216 | 20161026 |
| Compiler | Implementations
|
| g++ -O2 -fomit-frame-pointer | avx2 |
| g++ -O3 -fomit-frame-pointer | avx2 |
| g++ -O -fomit-frame-pointer | avx2 |
| g++ -Os -fomit-frame-pointer | avx2 |
| g++ -fno-schedule-insns -O2 -fomit-frame-pointer | avx2 |
| g++ -fno-schedule-insns -O3 -fomit-frame-pointer | avx2 |
| g++ -fno-schedule-insns -O -fomit-frame-pointer | avx2 |
| g++ -fno-schedule-insns -Os -fomit-frame-pointer | avx2 |
| g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer | avx2 |
| g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer | avx2 |
| g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer | avx2 |
| g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -O -fomit-frame-pointer | avx2 |
| g++ -m64 -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -O -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer | avx2 |
| g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -march=corei7 -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=corei7 -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=corei7 -O -fomit-frame-pointer | avx2 |
| g++ -m64 -march=corei7 -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -march=k8 -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=k8 -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=k8 -O -fomit-frame-pointer | avx2 |
| g++ -m64 -march=k8 -Os -fomit-frame-pointer | avx2 |
| g++ -m64 -march=nocona -O2 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=nocona -O3 -fomit-frame-pointer | avx2 |
| g++ -m64 -march=nocona -O -fomit-frame-pointer | avx2 |
| g++ -m64 -march=nocona -Os -fomit-frame-pointer | avx2 |
| g++ -march=barcelona -O2 -fomit-frame-pointer | avx2 |
| g++ -march=barcelona -O3 -fomit-frame-pointer | avx2 |
| g++ -march=barcelona -O -fomit-frame-pointer | avx2 |
| g++ -march=barcelona -Os -fomit-frame-pointer | avx2 |
| g++ -march=k8 -O2 -fomit-frame-pointer | avx2 |
| g++ -march=k8 -O3 -fomit-frame-pointer | avx2 |
| g++ -march=k8 -O -fomit-frame-pointer | avx2 |
| g++ -march=k8 -Os -fomit-frame-pointer | avx2 |
| g++ -march=nocona -O2 -fomit-frame-pointer | avx2 |
| g++ -march=nocona -O3 -fomit-frame-pointer | avx2 |
| g++ -march=nocona -O -fomit-frame-pointer | avx2 |
| g++ -march=nocona -Os -fomit-frame-pointer | avx2
|