| Time | Implementation | Compiler | Benchmark date | SUPERCOP version |
| 421588 | vperm | gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 421912 | vperm | gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer | 20141014 | 20141014 |
| 422000 | vperm | gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 422340 | vperm | gcc -m64 -march=core2 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 422448 | vperm | gcc -m64 -march=corei7 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 423896 | vperm | gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 423976 | vperm | gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 424024 | vperm | gcc -m64 -march=corei7 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 424420 | vperm | gcc -m64 -march=core2 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 424556 | vperm | gcc -m64 -march=corei7 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 424752 | vperm | gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 424820 | vperm | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 424824 | vperm | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 425024 | vperm | gcc -m64 -march=core2 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 425040 | vperm | gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 425424 | vperm | gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 425436 | vperm | gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 425532 | vperm | clang -O3 -fwrapv -march=native -fomit-frame-pointer | 20141014 | 20141014 |
| 425600 | vperm | gcc -m64 -march=core2 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 425796 | vperm | gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 426052 | vperm | gcc -m64 -march=corei7 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 426880 | vperm | clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20141014 | 20141014 |
| 9121036 | ref | gcc -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9121308 | ref | gcc -m64 -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9122612 | ref | gcc -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9123376 | ref | gcc -m64 -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9125580 | ref | gcc -funroll-loops -m64 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9134008 | ref | gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9139572 | ref | gcc -m64 -march=corei7 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9140452 | ref | gcc -funroll-loops -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9141128 | ref | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9142476 | ref | gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9145784 | ref | gcc -m64 -march=core2 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9148612 | ref | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9185432 | ref | gcc -m64 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9186408 | ref | gcc -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9187372 | ref | gcc -fno-schedule-insns -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9213704 | ref | gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9215012 | ref | gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9221920 | ref | gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9222792 | ref | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9396264 | ref | gcc -m64 -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9397236 | ref | gcc -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9509336 | ref | gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9510228 | ref | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 13263340 | ref | gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13264824 | ref | gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13316324 | ref | gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13330460 | ref | gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13345568 | ref | gcc -funroll-loops -m64 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13355988 | ref | gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13364076 | ref | gcc -funroll-loops -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13887316 | ref | gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13889656 | ref | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 14300544 | ref | clang -O3 -fwrapv -march=native -fomit-frame-pointer | 20140722 | 20140622 |
| 14304324 | ref | clang -O3 -fwrapv -mavx2 -fomit-frame-pointer | 20140722 | 20140622 |
| 14304376 | ref | clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20140722 | 20140622 |
| 14306684 | ref | clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20140722 | 20140622 |
| 14307512 | ref | clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20141014 | 20141014 |
| 14317080 | ref | clang -O3 -fomit-frame-pointer | 20140722 | 20140622 |
| 14319396 | ref | clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer | 20141014 | 20141014 |
| 14503384 | ref | gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14515736 | ref | gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14566880 | ref | gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14567776 | ref | gcc -funroll-loops -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14569048 | ref | gcc -funroll-loops -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14571092 | ref | gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14574848 | ref | gcc -funroll-loops -m64 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14589452 | ref | gcc -funroll-loops -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14590716 | ref | gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 18783596 | ref | gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 18905444 | ref | gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18905696 | ref | gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18905736 | ref | gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18907264 | ref | gcc -m64 -march=corei7 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18908912 | ref | gcc -m64 -march=core2 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18987548 | ref | gcc -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18987572 | ref | gcc -fno-schedule-insns -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18987796 | ref | gcc -m64 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18988476 | ref | gcc -m64 -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18990568 | ref | gcc -m64 -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18991384 | ref | gcc -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 18998880 | ref | gcc -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19036896 | ref | gcc -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19041384 | ref | gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19041968 | ref | gcc -funroll-loops -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19042204 | ref | gcc -funroll-loops -m64 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19046888 | ref | gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19048100 | ref | gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19051344 | ref | gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19069224 | ref | gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19159144 | ref | gcc -m64 -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19249660 | ref | gcc -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19250492 | ref | gcc -m64 -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19282512 | ref | gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19301484 | ref | gcc -fno-schedule-insns -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19310196 | ref | gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19336648 | ref | gcc -m64 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19411648 | ref | gcc -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19491504 | ref | gcc -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19588832 | ref | gcc -m64 -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19673476 | ref | gcc -m64 -march=core2 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19723892 | ref | gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19724604 | ref | gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19737668 | ref | gcc -m64 -march=corei7 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 20409496 | ref | gcc -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20471984 | ref | gcc -m64 -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20509112 | ref | gcc -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 20512532 | ref | gcc -m64 -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 20959800 | ref | gcc -m64 -march=corei7 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20959964 | ref | gcc -m64 -march=core2 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20960416 | ref | gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20961836 | ref | gcc -m64 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20963036 | ref | gcc -fno-schedule-insns -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20965440 | ref | gcc -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20967860 | ref | gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20993740 | ref | gcc -m64 -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20995908 | ref | gcc -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 21093892 | ref | gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer | 20140606 | 20140525 |
| 21100096 | ref | gcc -m64 -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 21102076 | ref | gcc -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 64500440 | ref | cc | 20140606 | 20140525 |
| 64975068 | ref | gcc | 20140606 | 20140525 |
| 73037760 | ref | gcc -funroll-loops | 20140606 | 20140525 |
| Compiler | Implementations
|
| cc | vperm |
| gcc | vperm |
| gcc -O2 -fomit-frame-pointer | vperm |
| gcc -O3 -fomit-frame-pointer | vperm |
| gcc -O -fomit-frame-pointer | vperm |
| gcc -Os -fomit-frame-pointer | vperm |
| gcc -fno-schedule-insns -O2 -fomit-frame-pointer | vperm |
| gcc -fno-schedule-insns -O3 -fomit-frame-pointer | vperm |
| gcc -fno-schedule-insns -O -fomit-frame-pointer | vperm |
| gcc -fno-schedule-insns -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops | vperm |
| gcc -funroll-loops -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=k8 -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=nocona -O -fomit-frame-pointer | vperm |
| gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer | vperm |
| gcc -m64 -O2 -fomit-frame-pointer | vperm |
| gcc -m64 -O3 -fomit-frame-pointer | vperm |
| gcc -m64 -O -fomit-frame-pointer | vperm |
| gcc -m64 -Os -fomit-frame-pointer | vperm |
| gcc -m64 -march=k8 -O2 -fomit-frame-pointer | vperm |
| gcc -m64 -march=k8 -O3 -fomit-frame-pointer | vperm |
| gcc -m64 -march=k8 -O -fomit-frame-pointer | vperm |
| gcc -m64 -march=k8 -Os -fomit-frame-pointer | vperm |
| gcc -m64 -march=nocona -O2 -fomit-frame-pointer | vperm |
| gcc -m64 -march=nocona -O3 -fomit-frame-pointer | vperm |
| gcc -m64 -march=nocona -O -fomit-frame-pointer | vperm |
| gcc -m64 -march=nocona -Os -fomit-frame-pointer | vperm |
| gcc -march=barcelona -O2 -fomit-frame-pointer | vperm |
| gcc -march=barcelona -O3 -fomit-frame-pointer | vperm |
| gcc -march=barcelona -O -fomit-frame-pointer | vperm |
| gcc -march=barcelona -Os -fomit-frame-pointer | vperm |
| gcc -march=k8 -O2 -fomit-frame-pointer | vperm |
| gcc -march=k8 -O3 -fomit-frame-pointer | vperm |
| gcc -march=k8 -O -fomit-frame-pointer | vperm |
| gcc -march=k8 -Os -fomit-frame-pointer | vperm |
| gcc -march=nocona -O2 -fomit-frame-pointer | vperm |
| gcc -march=nocona -O3 -fomit-frame-pointer | vperm |
| gcc -march=nocona -O -fomit-frame-pointer | vperm |
| gcc -march=nocona -Os -fomit-frame-pointer | vperm
|