| Time | Implementation | Compiler | Benchmark date | SUPERCOP version |
| 361248 | vperm | gcc -m64 -march=core2 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 361260 | vperm | gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 361324 | vperm | gcc -m64 -march=corei7 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 361368 | vperm | gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 361376 | vperm | gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer | 20141014 | 20141014 |
| 363088 | vperm | gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 363580 | vperm | gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 364196 | vperm | clang -O3 -fwrapv -march=native -fomit-frame-pointer | 20141014 | 20141014 |
| 364244 | vperm | gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 364664 | vperm | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 364716 | vperm | gcc -m64 -march=corei7 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 364764 | vperm | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 365172 | vperm | gcc -m64 -march=corei7 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 365248 | vperm | gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer | 20141014 | 20141014 |
| 365388 | vperm | gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 365412 | vperm | gcc -m64 -march=core2 -O -fomit-frame-pointer | 20141014 | 20141014 |
| 365632 | vperm | clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20141014 | 20141014 |
| 368768 | vperm | gcc -m64 -march=corei7 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 368836 | vperm | gcc -m64 -march=core2 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 369512 | vperm | gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 369860 | vperm | gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer | 20141014 | 20141014 |
| 370324 | vperm | gcc -m64 -march=core2 -O3 -fomit-frame-pointer | 20141014 | 20141014 |
| 9104464 | ref | gcc -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9107856 | ref | gcc -m64 -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9110800 | ref | gcc -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9116316 | ref | gcc -m64 -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9131084 | ref | gcc -funroll-loops -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9133260 | ref | gcc -funroll-loops -m64 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9133632 | ref | gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9140616 | ref | gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9141740 | ref | gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9146496 | ref | gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9147184 | ref | gcc -m64 -march=core2 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9148028 | ref | gcc -m64 -march=corei7 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9178088 | ref | gcc -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9178208 | ref | gcc -fno-schedule-insns -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9178772 | ref | gcc -m64 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9203636 | ref | gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9222916 | ref | gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9223372 | ref | gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9224836 | ref | gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9398820 | ref | gcc -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9400796 | ref | gcc -m64 -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9409500 | ref | gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 9409832 | ref | gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer | 20140606 | 20140525 |
| 13256160 | ref | gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13259212 | ref | gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13260944 | ref | gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13331236 | ref | gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13337224 | ref | gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13337348 | ref | gcc -funroll-loops -m64 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13337584 | ref | gcc -funroll-loops -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13544860 | ref | gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 13546260 | ref | gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 14293172 | ref | clang -O3 -fwrapv -mavx2 -fomit-frame-pointer | 20140722 | 20140622 |
| 14295120 | ref | clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20140722 | 20140622 |
| 14297940 | ref | clang -O3 -fwrapv -march=native -fomit-frame-pointer | 20140722 | 20140622 |
| 14298180 | ref | clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer | 20141014 | 20141014 |
| 14305300 | ref | clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer | 20140722 | 20140622 |
| 14305372 | 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 |
| 14316512 | ref | clang -O3 -fomit-frame-pointer | 20140722 | 20140622 |
| 14541124 | ref | gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14542404 | ref | gcc -funroll-loops -m64 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14542696 | ref | gcc -funroll-loops -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14543160 | ref | gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14543248 | ref | gcc -funroll-loops -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14687980 | ref | gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 14711036 | ref | gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 15001832 | ref | gcc -funroll-loops -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 15041696 | ref | gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 18803812 | ref | gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 18947668 | ref | gcc -m64 -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 18948248 | ref | gcc -march=barcelona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19149792 | ref | gcc -m64 -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 19244596 | ref | gcc -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19246320 | ref | gcc -m64 -march=k8 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19275572 | ref | gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19296456 | ref | gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19301264 | ref | gcc -funroll-loops -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19301612 | ref | gcc -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19307588 | ref | gcc -fno-schedule-insns -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19308060 | ref | gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19308236 | ref | gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19308872 | ref | gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19308892 | ref | gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19317420 | ref | gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19321904 | ref | gcc -funroll-loops -m64 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 19332304 | ref | gcc -m64 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19476868 | ref | gcc -march=k8 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 19655112 | ref | gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19671576 | ref | gcc -m64 -march=core2 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19672672 | ref | gcc -m64 -march=corei7 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 19734792 | ref | gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 20499668 | ref | gcc -m64 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20499800 | ref | gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20500012 | ref | gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20500080 | ref | gcc -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20500200 | ref | gcc -m64 -march=core2 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20501016 | ref | gcc -m64 -march=corei7 -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20503712 | ref | gcc -fno-schedule-insns -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20503968 | ref | gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20505032 | ref | gcc -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20505184 | ref | gcc -m64 -march=nocona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20597812 | ref | gcc -m64 -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 20600552 | ref | gcc -march=barcelona -O -fomit-frame-pointer | 20140606 | 20140525 |
| 21033460 | ref | gcc -m64 -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 21035696 | ref | gcc -march=nocona -O2 -fomit-frame-pointer | 20140606 | 20140525 |
| 21357120 | ref | gcc -m64 -march=corei7 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21358088 | ref | gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21362728 | ref | gcc -m64 -march=core2 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21363528 | ref | gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21366844 | ref | gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21380528 | ref | gcc -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21387104 | ref | gcc -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21391376 | ref | gcc -m64 -march=k8 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21391428 | ref | gcc -m64 -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21392372 | ref | gcc -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21392500 | ref | gcc -m64 -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21567020 | ref | gcc -fno-schedule-insns -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 21693364 | ref | gcc -march=barcelona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 22274344 | ref | gcc -m64 -march=nocona -Os -fomit-frame-pointer | 20140606 | 20140525 |
| 64480328 | ref | cc | 20140606 | 20140525 |
| 64489212 | ref | gcc -funroll-loops | 20140606 | 20140525 |
| 64492896 | ref | gcc | 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
|