Implementation notes: amd64, calvin, crypto_sign/sphincs256

Computer: calvin
Architecture: amd64
CPU ID: AuthenticAMD-00600f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_sign
Primitive: sphincs256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
337606915? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111620171020
337916972? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111620171020
337971758? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017111620171020
339474253? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111620171020
339551014? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111620171020
340443653? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111620171020
350238497? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111620171020
350563509? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017111620171020
350815513? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017111620171020
350866067? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017111620171020
350948562? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111620171020
352908282? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017111620171020
352971194? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017111620171020
353128815? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017111620171020
353408354? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017111620171020
353444185? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111620171020
354349039? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017111620171020
354676505? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111620171020
355038887? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017111620171020
355055650? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017111620171020
356472611? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111620171020
356867498? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017111620171020
358771873? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111620171020
358797564? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017111620171020
371364486? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111620171020
371723613? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111620171020
410563005? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111620171020
411085965? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017111620171020
411311039? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017111620171020
411583234? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017111620171020
413065236? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017111620171020
413259617? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017111620171020
413883340? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017111620171020
418012135? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017111620171020
418033006? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111620171020
418470468? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017111620171020
425055977? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017111620171020
425331149? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111620171020
425385159? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017111620171020
425739464? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017111620171020
426424100? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017111620171020
426532087? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017111620171020
426728420? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111620171020
427153475? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017111620171020
542204314? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017111620171020
553678907? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017111620171020
554568751? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017111620171020
554698158? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111620171020
556105147? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111620171020
556786896? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111620171020
559956514? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111620171020
560111962? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017111620171020
560799447? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111620171020
560989682? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111620171020
561183469? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111620171020
561201887? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111620171020
561947147? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111620171020
563673844? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017111620171020
563685329? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111620171020
564064884? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017111620171020
566869046? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111620171020
571931203? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111620171020
572414920? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017111620171020
572435756? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017111620171020
572566860? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111620171020
572994968? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111620171020
573297271? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111620171020
575567525? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017111620171020
576452073? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017111620171020
576979603? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017111620171020
578684549? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017111620171020
578810514? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111620171020
579510855? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111620171020
580886905? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017111620171020
580919395? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017111620171020
582830665? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111620171020
583440299? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111620171020
585294402? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017111620171020
587771493? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111620171020
590264271? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017111620171020
590809054? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111620171020
590947450? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017111620171020
590956892? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111620171020
591342658? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017111620171020
591398885? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111620171020
592394257? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017111620171020
594070403? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017111620171020
594447858? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111620171020
594985731? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111620171020
598277533? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017111620171020
598303657? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017111620171020
600596955? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017111620171020
602171160? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111620171020
602770361? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017111620171020
604776070? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111620171020
605696165? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017111620171020
605806710? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111620171020
610345817? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017111620171020
614710376? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017111620171020
615204106? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017111620171020
616078976? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111620171020
616218986? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017111620171020
616327563? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017111620171020
619234224? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111620171020
630627701? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111620171020
630653748? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017111620171020
665722053? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111620171020
665920768? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111620171020
665935753? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111620171020
667755895? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017111620171020
700184972? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017111620171020
700378124? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017111620171020
2662470965? ? ?? ? ?refcc2017111620171020
2737101034? ? ?? ? ?refgcc_-funroll-loops2017111620171020
2792239663? ? ?? ? ?refgcc2017111620171020

Test failure

Implementation: crypto_sign/sphincs256/avx2
Compiler: cc
error 111

Number of similar (compiler,implementation) pairs: 117, namely:
CompilerImplementations
cc avx2
clang -O3 -fomit-frame-pointer -Qunused-arguments avx2
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments avx2
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx2
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2
gcc avx2
gcc -O2 -fomit-frame-pointer avx2
gcc -O3 -fomit-frame-pointer avx2
gcc -O -fomit-frame-pointer avx2
gcc -Os -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops avx2
gcc -funroll-loops -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -O -fomit-frame-pointer avx2
gcc -funroll-loops -Os -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx2
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx2
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx2
gcc -m64 -O2 -fomit-frame-pointer avx2
gcc -m64 -O3 -fomit-frame-pointer avx2
gcc -m64 -O -fomit-frame-pointer avx2
gcc -m64 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx2
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx2
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer avx2 ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer avx2 ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer avx2 ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx2
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx2
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx2
gcc -m64 -march=k8 -O -fomit-frame-pointer avx2
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer avx2
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=nocona -O -fomit-frame-pointer avx2
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx2
gcc -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -march=barcelona -O -fomit-frame-pointer avx2
gcc -march=barcelona -Os -fomit-frame-pointer avx2
gcc -march=k8 -O2 -fomit-frame-pointer avx2
gcc -march=k8 -O3 -fomit-frame-pointer avx2
gcc -march=k8 -O -fomit-frame-pointer avx2
gcc -march=k8 -Os -fomit-frame-pointer avx2
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv avx2
gcc -march=nocona -O2 -fomit-frame-pointer avx2
gcc -march=nocona -O3 -fomit-frame-pointer avx2
gcc -march=nocona -O -fomit-frame-pointer avx2
gcc -march=nocona -Os -fomit-frame-pointer avx2

Test failure

Implementation: crypto_sign/sphincs256/avx2
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
error 111

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -O -fomit-frame-pointer avx2
gcc -m64 -march=barcelona -Os -fomit-frame-pointer avx2