Implementation notes: amd64, mangetsu, crypto_core/salsa20

Computer: mangetsu
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_core
Primitive: salsa20
TimeImplementationCompilerBenchmark dateSUPERCOP version
696refclang -O3 -fwrapv -march=native -fomit-frame-pointer2014091120140907
700refclang -O3 -fomit-frame-pointer2014091120140907
700refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101820141014
700refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014091120140907
700refclang -O3 -fwrapv -mavx -fomit-frame-pointer2014091120140907
700refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer2014101820141014
704refgcc-4.7 -funroll-loops -O2 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -O3 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -m64 -O2 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014091120140907
708refgcc-4.7 -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -funroll-loops -m64 -O3 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -m64 -march=corei7-avx -O2 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -m64 -march=corei7 -O2 -fomit-frame-pointer2014091120140907
712refgcc-4.7 -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -fno-schedule-insns -O2 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -O2 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -O3 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -march=core-avx-i -O3 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -march=core2 -O2 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -march=core2 -O3 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014091120140907
716refgcc-4.7 -march=k8 -O3 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -O3 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -m64 -march=core-avx-i -O2 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -m64 -march=corei7-avx -O3 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -m64 -march=corei7 -O3 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -m64 -march=k8 -O2 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -m64 -march=k8 -O3 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -march=barcelona -O2 -fomit-frame-pointer2014091120140907
720refgcc-4.7 -march=k8 -O2 -fomit-frame-pointer2014091120140907
724refgcc-4.7 -O2 -fomit-frame-pointer2014091120140907
724refgcc-4.7 -fno-schedule-insns -O3 -fomit-frame-pointer2014091120140907
724refgcc-4.7 -m64 -march=barcelona -O2 -fomit-frame-pointer2014091120140907
724refgcc-4.7 -m64 -march=barcelona -O3 -fomit-frame-pointer2014091120140907
724refgcc-4.7 -march=barcelona -O3 -fomit-frame-pointer2014091120140907
728refclang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014091120140907
728refclang -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014091120140907
728refclang -O3 -fwrapv -mavx -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101820141014
728refgcc-4.7 -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014091120140907
728refgcc-4.7 -m64 -march=nocona -O2 -fomit-frame-pointer2014091120140907
728refgcc-4.7 -m64 -march=nocona -O3 -fomit-frame-pointer2014091120140907
728refgcc-4.7 -march=nocona -O2 -fomit-frame-pointer2014091120140907
732refgcc-4.7 -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014091120140907
732refgcc-4.7 -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014091120140907
732refgcc-4.7 -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014091120140907
732refgcc-4.7 -march=nocona -O3 -fomit-frame-pointer2014091120140907
736refgcc-4.7 -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014091120140907
740refgcc-4.7 -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014091120140907
740refgcc-4.7 -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014091120140907
744refgcc-4.7 -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014091120140907
748refgcc-4.8 -funroll-loops -O -fomit-frame-pointer2014091120140907
748refgcc-4.8 -funroll-loops -m64 -O -fomit-frame-pointer2014091120140907
748refgcc-4.8 -funroll-loops -march=k8 -O -fomit-frame-pointer2014091120140907
748refgcc-4.8 -march=barcelona -O -fomit-frame-pointer2014091120140907
748refgcc-4.8 -march=k8 -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -fno-schedule-insns -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -funroll-loops -march=barcelona -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -funroll-loops -march=nocona -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -m64 -march=barcelona -O -fomit-frame-pointer2014091120140907
752refgcc-4.8 -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=core-avx-i -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=core2 -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=corei7 -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=k8 -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=native -mtune=native -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -m64 -march=nocona -O -fomit-frame-pointer2014091120140907
756refgcc-4.8 -march=nocona -O -fomit-frame-pointer2014091120140907
760refgcc-4.8 -m64 -O -fomit-frame-pointer2014091120140907
768refgcc-4.8 -m64 -march=corei7-avx -O -fomit-frame-pointer2014091120140907
776refgcc-4.8 -O -fomit-frame-pointer2014091120140907
816refgcc-4.7 -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014091120140907
824refgcc-4.7 -funroll-loops -m64 -Os -fomit-frame-pointer2014091120140907
824refgcc-4.7 -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014091120140907
824refgcc-4.7 -funroll-loops -march=nocona -Os -fomit-frame-pointer2014091120140907
824refgcc-4.7 -march=barcelona -Os -fomit-frame-pointer2014091120140907
824refgcc-4.7 -march=nocona -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -fno-schedule-insns -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -funroll-loops -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -funroll-loops -march=k8 -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=barcelona -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=core-avx-i -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=core2 -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=corei7-avx -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=k8 -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -m64 -march=nocona -Os -fomit-frame-pointer2014091120140907
828refgcc-4.7 -march=k8 -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -m64 -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -m64 -march=corei7 -Os -fomit-frame-pointer2014091120140907
832refgcc-4.7 -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014091120140907
1160refgcc-4.8 -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014091120140907
1160refgcc-4.8 -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -funroll-loops -m64 -O2 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -funroll-loops -m64 -O3 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -m64 -march=core-avx-i -O3 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -m64 -march=core2 -O3 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -m64 -march=corei7-avx -O2 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -m64 -march=corei7-avx -O3 -fomit-frame-pointer2014091120140907
1164refgcc-4.8 -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -O3 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -m64 -march=core-avx-i -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -m64 -march=core2 -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014091120140907
1168refgcc-4.8 -m64 -march=corei7 -O2 -fomit-frame-pointer2014091120140907
1172refgcc-4.8 -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014091120140907
1172refgcc-4.8 -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014091120140907
1172refgcc-4.8 -m64 -march=corei7 -O3 -fomit-frame-pointer2014091120140907
1176refgcc-4.8 -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014091120140907
1176refgcc-4.8 -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014091120140907
1176refgcc-4.8 -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014091120140907
1176refgcc-4.8 -m64 -march=barcelona -O2 -fomit-frame-pointer2014091120140907
1180refgcc-4.8 -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014091120140907
1180refgcc-4.8 -m64 -O3 -fomit-frame-pointer2014091120140907
1180refgcc-4.8 -m64 -march=k8 -O2 -fomit-frame-pointer2014091120140907
1180refgcc-4.8 -march=barcelona -O2 -fomit-frame-pointer2014091120140907
1184refgcc-4.8 -O3 -fomit-frame-pointer2014091120140907
1184refgcc-4.8 -m64 -march=barcelona -O3 -fomit-frame-pointer2014091120140907
1184refgcc-4.8 -march=barcelona -O3 -fomit-frame-pointer2014091120140907
1188refgcc-4.8 -fno-schedule-insns -O3 -fomit-frame-pointer2014091120140907
1188refgcc-4.8 -m64 -O2 -fomit-frame-pointer2014091120140907
1188refgcc-4.8 -m64 -march=k8 -O3 -fomit-frame-pointer2014091120140907
1188refgcc-4.8 -march=k8 -O2 -fomit-frame-pointer2014091120140907
1192refgcc-4.8 -O2 -fomit-frame-pointer2014091120140907
1192refgcc-4.8 -fno-schedule-insns -O2 -fomit-frame-pointer2014091120140907
1192refgcc-4.8 -march=k8 -O3 -fomit-frame-pointer2014091120140907
1212refgcc-4.8 -m64 -march=nocona -O2 -fomit-frame-pointer2014091120140907
1212refgcc-4.8 -march=nocona -O3 -fomit-frame-pointer2014091120140907
1216refgcc-4.8 -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014091120140907
1216refgcc-4.8 -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014091120140907
1216refgcc-4.8 -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014091120140907
1216refgcc-4.8 -m64 -march=nocona -O3 -fomit-frame-pointer2014091120140907
1216refgcc-4.8 -march=nocona -O2 -fomit-frame-pointer2014091120140907
1224refgcc-4.8 -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014091120140907
1436refgcc-4.8 -funroll-loops -m64 -Os -fomit-frame-pointer2014091120140907
1440refgcc-4.8 -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014091120140907
1440refgcc-4.8 -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014091120140907
1444refgcc-4.8 -funroll-loops -Os -fomit-frame-pointer2014091120140907
1444refgcc-4.8 -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014091120140907
1444refgcc-4.8 -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014091120140907
1444refgcc-4.8 -funroll-loops -march=k8 -Os -fomit-frame-pointer2014091120140907
1444refgcc-4.8 -m64 -march=k8 -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -fno-schedule-insns -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=barcelona -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=core-avx-i -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=core2 -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=corei7-avx -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=corei7 -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -m64 -march=nocona -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -march=barcelona -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -march=k8 -Os -fomit-frame-pointer2014091120140907
1448refgcc-4.8 -march=nocona -Os -fomit-frame-pointer2014091120140907
1452refgcc-4.8 -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014091120140907
1452refgcc-4.8 -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014091120140907
1456refgcc-4.8 -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014091120140907
1456refgcc-4.8 -funroll-loops -march=nocona -Os -fomit-frame-pointer2014091120140907
1776refgcc-4.7 -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014091120140907
1776refgcc-4.7 -funroll-loops -march=nocona -O -fomit-frame-pointer2014091120140907
1776refgcc-4.7 -m64 -march=k8 -O -fomit-frame-pointer2014091120140907
1776refgcc-4.7 -march=barcelona -O -fomit-frame-pointer2014091120140907
1780refgcc-4.7 -O -fomit-frame-pointer2014091120140907
1780refgcc-4.7 -m64 -O -fomit-frame-pointer2014091120140907
1780refgcc-4.7 -m64 -march=barcelona -O -fomit-frame-pointer2014091120140907
1780refgcc-4.7 -march=k8 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -fno-schedule-insns -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -funroll-loops -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -funroll-loops -m64 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -funroll-loops -march=k8 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=core-avx-i -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=core-avx2 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=corei7-avx -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=corei7 -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=native -mtune=native -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -m64 -march=nocona -O -fomit-frame-pointer2014091120140907
1784refgcc-4.7 -march=nocona -O -fomit-frame-pointer2014091120140907
1788refgcc-4.7 -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014091120140907
1788refgcc-4.7 -funroll-loops -march=barcelona -O -fomit-frame-pointer2014091120140907
1808refgcc-4.7 -m64 -march=core2 -O -fomit-frame-pointer2014091120140907
4328refgcc-4.8 -funroll-loops2014091120140907
4584refcc2014091120140907
4584refgcc-4.82014091120140907
4876refgcc-4.72014091120140907
4880refgcc-4.7 -funroll-loops2014091120140907

Test failure

Implementation: crypto_core/salsa20/ref
Compiler: gcc-4.7 -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
gcc-4.7 -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc-4.7 -m64 -march=core-avx2 -Os -fomit-frame-pointer ref
gcc-4.8 -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc-4.8 -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc-4.8 -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_core/salsa20/ref
Compiler: clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
core.c: clang-3.3: warning: argument unused during compilation: '-fpolly'

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref
clang -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_core/salsa20/ref
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
core.c: clang-3.3: warning: argument unused during compilation: '-mcpu=core-avx2'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer ref