Implementation notes: amd64, h4e350, crypto_core/aes256encrypt

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_core
Primitive: aes256encrypt
TimeImplementationCompilerBenchmark dateSUPERCOP version
1407opensslgcc -funroll-loops -O2 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -O3 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052620140525
1407opensslgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052620140525
1407opensslgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052620140525
1407opensslgcc -march=k8 -O3 -fomit-frame-pointer2014052620140525
1410opensslclang -O3 -fomit-frame-pointer2014071220140622
1410opensslclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
1410opensslclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014071220140622
1410opensslclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014071220140622
1410opensslgcc -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -march=barcelona -O3 -fomit-frame-pointer2014052620140525
1410opensslgcc -march=barcelona -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -march=k8 -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -march=k8 -Os -fomit-frame-pointer2014052620140525
1410opensslgcc -march=nocona -O2 -fomit-frame-pointer2014052620140525
1410opensslgcc -march=nocona -O3 -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052620140525
1413opensslgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052620140525
1416opensslgcc -O -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -O3 -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -O -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -march=core2 -O -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052620140525
1416opensslgcc -m64 -march=nocona -O -fomit-frame-pointer2014052620140525
1416opensslgcc -march=k8 -O -fomit-frame-pointer2014052620140525
1419opensslclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
1419opensslgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052620140525
1422opensslgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052620140525
1422opensslgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052620140525
1422opensslgcc -march=barcelona -O2 -fomit-frame-pointer2014052620140525
1425opensslgcc -march=nocona -O -fomit-frame-pointer2014052620140525
1434opensslgcc -fno-schedule-insns -O -fomit-frame-pointer2014052620140525
1434opensslgcc -m64 -march=k8 -O -fomit-frame-pointer2014052620140525
1434opensslgcc -march=nocona -Os -fomit-frame-pointer2014052620140525
1440opensslgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052620140525
1440opensslgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052620140525
1440opensslgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052620140525
1440opensslgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052620140525
1440opensslgcc -march=barcelona -O -fomit-frame-pointer2014052620140525
1443opensslgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052620140525
1443opensslgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052620140525
1443opensslgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052620140525
1467opensslgcc -funroll-loops2014052620140525
1470opensslcc2014052620140525
1485opensslgcc2014052620140525
713733refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052620140525
713733refgcc -march=nocona -O3 -fomit-frame-pointer2014052620140525
716709refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052620140525
716721refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052620140525
730521refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052620140525
730533refgcc -funroll-loops -O3 -fomit-frame-pointer2014052620140525
730536refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052620140525
740499refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052620140525
740514refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052620140525
740568refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052620140525
740571refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052620140525
747603refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052620140525
752535refgcc -march=k8 -O3 -fomit-frame-pointer2014052620140525
752547refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052620140525
752751refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052620140525
752790refgcc -march=barcelona -O3 -fomit-frame-pointer2014052620140525
752886refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052620140525
759519refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052620140525
759540refgcc -m64 -O3 -fomit-frame-pointer2014052620140525
759555refgcc -O3 -fomit-frame-pointer2014052620140525
842298refgcc -funroll-loops -O -fomit-frame-pointer2014052620140525
842310refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052620140525
842418refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052620140525
852981refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052620140525
853083refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052620140525
854619refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052620140525
854832refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052620140525
858675refgcc -funroll-loops -O2 -fomit-frame-pointer2014052620140525
858675refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052620140525
858711refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052620140525
863931refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052620140525
863979refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052620140525
863988refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052620140525
864021refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052620140525
892410refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014071220140622
892422refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
892422refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
892503refclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014071220140622
895392refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052620140525
895404refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052620140525
895407refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052620140525
896940refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052620140525
907122refclang -O3 -fomit-frame-pointer2014071220140622
1655700refgcc -m64 -march=nocona -O -fomit-frame-pointer2014052620140525
1655820refgcc -march=nocona -O -fomit-frame-pointer2014052620140525
1657515refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052620140525
1657536refgcc -fno-schedule-insns -O -fomit-frame-pointer2014052620140525
1657536refgcc -m64 -O -fomit-frame-pointer2014052620140525
1657581refgcc -O -fomit-frame-pointer2014052620140525
1657584refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052620140525
1659267refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052620140525
1663731refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052620140525
1663737refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052620140525
1663743refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052620140525
1663761refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052620140525
1670097refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052620140525
1670100refgcc -O2 -fomit-frame-pointer2014052620140525
1670106refgcc -m64 -O2 -fomit-frame-pointer2014052620140525
1671891refgcc -m64 -march=core2 -O -fomit-frame-pointer2014052620140525
1698732refgcc -march=nocona -O2 -fomit-frame-pointer2014052620140525
1701978refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052620140525
1702191refgcc -march=barcelona -O2 -fomit-frame-pointer2014052620140525
1702584refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052620140525
1705983refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052620140525
1743042refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052620140525
1743045refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052620140525
1743060refgcc -march=barcelona -O -fomit-frame-pointer2014052620140525
1765713refgcc -m64 -march=k8 -O -fomit-frame-pointer2014052620140525
1773531refgcc -march=k8 -O -fomit-frame-pointer2014052620140525
1846293refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052620140525
1846338refgcc -march=k8 -O2 -fomit-frame-pointer2014052620140525
2068710refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052620140525
2068734refgcc -march=nocona -Os -fomit-frame-pointer2014052620140525
2071929refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052620140525
2071929refgcc -march=barcelona -Os -fomit-frame-pointer2014052620140525
2071932refgcc -Os -fomit-frame-pointer2014052620140525
2071950refgcc -march=k8 -Os -fomit-frame-pointer2014052620140525
2071959refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052620140525
2071962refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052620140525
2071962refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052620140525
2071968refgcc -m64 -Os -fomit-frame-pointer2014052620140525
2071986refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052620140525
2072007refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052620140525
2072019refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052620140525
2072301refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052620140525
2342928refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052620140525
2343042refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052620140525
2360139refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052620140525
2360610refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052620140525
2360754refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052620140525
2362290refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052620140525
2362908refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052620140525
2362968refgcc -funroll-loops -Os -fomit-frame-pointer2014052620140525
2363061refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052620140525
6900015refgcc2014052620140525
6900570refgcc -funroll-loops2014052620140525
6903156refcc2014052620140525

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: clang -O3 -fomit-frame-pointer
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer openssl ref

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
core.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
core.c: clang: warning: argument unused during compilation: '-mavx2'
core.c: clang: warning: argument unused during compilation: '-mpclmul'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

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

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
core.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
core.c: clang: warning: argument unused during compilation: '-mavx2'
core.c: clang: warning: argument unused during compilation: '-mpclmul'
core.c: clang: warning: argument unused during compilation: '-fpolly'
core.c: clang: warning: argument unused during compilation: '-fvectorize'
core.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
core.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer openssl ref

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
core.c: clang: warning: argument unused during compilation: '-mavx2'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer openssl ref

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
core.c: clang: warning: argument unused during compilation: '-mavx2'
core.c: clang: warning: argument unused during compilation: '-fpolly'
core.c: clang: warning: argument unused during compilation: '-fvectorize'
core.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
core.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer openssl ref