Implementation notes: amd64, skylake, crypto_core/hsalsa20

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_core
Primitive: hsalsa20
TimeImplementationCompilerBenchmark dateSUPERCOP version
408refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
408refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
408ref2gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
408refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
408ref2gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
408ref2gcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
408refgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
408refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
408ref2gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
410refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
410ref2gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
410refgcc -m64 -O3 -fomit-frame-pointer2016121520161026
410ref2gcc -m64 -O3 -fomit-frame-pointer2016121520161026
410ref2gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
410ref2gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
410refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
410ref2gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
410refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
410refgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
410ref2gcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
410refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
412refgcc -O2 -fomit-frame-pointer2016121520161026
412refgcc -O3 -fomit-frame-pointer2016121520161026
412ref2gcc -O3 -fomit-frame-pointer2016121520161026
412ref2gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
412refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
412refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
412ref2gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
412refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
412ref2gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
412ref2gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
412refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
412refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
412ref2gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
412ref2gcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
412refgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
412refgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
412ref2gcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
414ref2gcc -O2 -fomit-frame-pointer2016121520161026
414refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
414refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
414refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
414refgcc -m64 -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
414refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
414ref2gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
414ref2gcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
414ref2gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
416ref2gcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
416refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
416refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
416refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
416refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
416refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
416ref2gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
416refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
416refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
416ref2gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
416ref2gcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
416ref2gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
416refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
416refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
416refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
416refgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
418refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
418refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
418refgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
418ref2gcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
420refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
420ref2gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
422ref2gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
422refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
422ref2gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
424refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
490ref2gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
490refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
492ref2gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
492refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
494refgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
494ref2gcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
494ref2gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
494refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
494ref2gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
494ref2gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
496ref2gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
498ref2gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
498refgcc -m64 -Os -fomit-frame-pointer2016121520161026
498refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
498ref2gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
500refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
500refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
500refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
500ref2gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
500refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
502ref2gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
502ref2gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
502refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
504ref2gcc -Os -fomit-frame-pointer2016121520161026
504ref2gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
504ref2gcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
504ref2gcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
504ref2gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
506refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
506ref2gcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
506refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
506ref2gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
506refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
506refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
506refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
506refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
506ref2gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
506ref2gcc -m64 -Os -fomit-frame-pointer2016121520161026
506refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
506ref2gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
506refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
506refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
506ref2gcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
506ref2gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
506ref2gcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
506ref2gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
506refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
506refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
506ref2gcc -march=nocona -Os -fomit-frame-pointer2016121520161026
508refgcc -Os -fomit-frame-pointer2016121520161026
508ref2gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
508refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
508refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
508refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
508ref2gcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
508refgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
508ref2gcc -march=k8 -Os -fomit-frame-pointer2016121520161026
510refgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
510ref2gcc -funroll-loops -O -fomit-frame-pointer2016121520161026
510refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
510refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
510refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
510refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
510ref2gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
510refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
512ref2gcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
512refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
512ref2gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
512ref2gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
512refgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
514refgcc -O -fomit-frame-pointer2016121520161026
514refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
514ref2gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
514refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
514ref2gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
514refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
514refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
516refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
516ref2gcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
516refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
516refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
516ref2gcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
516refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
518ref2gcc -O -fomit-frame-pointer2016121520161026
518ref2gcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
518refgcc -m64 -O -fomit-frame-pointer2016121520161026
518ref2gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
518ref2gcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
518refgcc -march=k8 -O -fomit-frame-pointer2016121520161026
520ref2gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
520ref2gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
520ref2gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
520ref2gcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
520ref2gcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
520refgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
520ref2gcc -march=barcelona -O -fomit-frame-pointer2016121520161026
520ref2gcc -march=k8 -O -fomit-frame-pointer2016121520161026
522ref2gcc -m64 -O -fomit-frame-pointer2016121520161026
522refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
522ref2gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
522refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
524refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
524refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
524refgcc -march=nocona -O -fomit-frame-pointer2016121520161026
524ref2gcc -march=nocona -O -fomit-frame-pointer2016121520161026
526ref2gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
530refgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
532refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
658refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
660refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
662refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
664refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121520161026
824ref2clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
824ref2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
830ref2clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
830ref2clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121520161026
834ref2clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121520161026
836ref2clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
848ref2clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
850ref2clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
852ref2clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
858refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
860refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
862refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121520161026
864refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
864refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121520161026
866refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
868ref2clang -O3 -fomit-frame-pointer -Qunused-arguments2016121520161026
2698ref2cc2016121520161026
2704ref2gcc -funroll-loops2016121520161026
2710ref2gcc2016121520161026
2806refgcc2016121520161026
2806refgcc -funroll-loops2016121520161026
2814refcc2016121520161026