Implementation notes: amd64, skylake, crypto_aead/enchilada128v1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: enchilada128v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
1889884refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
1890292refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
1934252refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
1935202refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
1969526refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
1973956refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
2001852refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
2009548refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
2013976refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
2015362refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
2017450refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
2018844refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
2024194refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
2025070refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
2025082refgcc -O3 -fomit-frame-pointer2016121620161026
2025192refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2026328refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
2027556refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
2027604refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2033474refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
2035308refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
2104562refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
2105412refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
2106486refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2271672refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2285028refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
2294488refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2297208refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2343122refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
2344662refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2469946refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
2477762refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
2477980refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
2483722refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
2694948refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
3453728refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
10565474refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
10565904refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
10566068refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
10571706refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
10572874refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
10576914refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
10576996refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
10587640refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
10588002refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
13984642refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
13985358refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
14117058refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
14129694refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
14742374refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
14960886refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
14979742refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
14983048refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
14983826refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
14984658refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
14985046refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
14985704refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
14996534refgcc -O2 -fomit-frame-pointer2016121620161026
14998078refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
15008790refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
15036858refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
15043800refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
15053166refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
15055324refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
15060862refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
15063174refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
15067804refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
15073364refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
15081966refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
15107690refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
15149900refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
15425570refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
15442722refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
15516768refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
15516794refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
15516804refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
15516896refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
15532786refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
15536198refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
15537272refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
15540916refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
15540932refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
15545770refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
15552220refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
15553672refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
15553730refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
15555994refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
15655834refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
15738984refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
15782758refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
15790646refgcc -m64 -Os -fomit-frame-pointer2016121620161026
15815004refgcc -Os -fomit-frame-pointer2016121620161026
15818748refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
15825754refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
15827944refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
15832732refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
15843510refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
16880426refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
17156604refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
17335298refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
17338876refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
17365600refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
17366112refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
17451256refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
17452852refgcc -O -fomit-frame-pointer2016121620161026
17453012refgcc -m64 -O -fomit-frame-pointer2016121620161026
17456478refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
17456940refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
17469914refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
17473444refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
17476748refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
17476776refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
17476894refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
17477152refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
17477192refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
17478684refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
17481760refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
17804004refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
68106688refgcc -funroll-loops2016121620161026
68142038refgcc2016121620161026
68154554refcc2016121620161026

Compiler output

Implementation: crypto_aead/enchilada128v1/ref
Compiler: cc
aes.c: aes.c: In function 'aes_encrypt':
aes.c: aes.c:389:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
aes.c: keys = rk ;
aes.c: ^
aes.c: aes.c: In function 'aes_decrypt':
aes.c: aes.c:407:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
aes.c: keys = rk ;
aes.c: ^

Number of similar (compiler,implementation) pairs: 107, namely:
CompilerImplementations
cc ref
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=k8 -O2 -fomit-frame-pointer ref
gcc -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -O -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref
gcc -march=nocona -O2 -fomit-frame-pointer ref
gcc -march=nocona -O3 -fomit-frame-pointer ref
gcc -march=nocona -O -fomit-frame-pointer ref
gcc -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/enchilada128v1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
aes.c: aes.c:389:7: warning: assigning to 'byte *' (aka 'unsigned char *') from 'const byte *' (aka 'const unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
aes.c: keys = rk ;
aes.c: ^ ~~
aes.c: aes.c:407:7: warning: assigning to 'byte *' (aka 'unsigned char *') from 'const byte *' (aka 'const unsigned char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
aes.c: keys = rk ;
aes.c: ^ ~~
aes.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/enchilada128v1/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
aes.c: aes.c: In function 'aes_encrypt':
aes.c: aes.c:389:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
aes.c: keys = rk ;
aes.c: ^
aes.c: aes.c: In function 'aes_decrypt':
aes.c: aes.c:407:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
aes.c: keys = rk ;
aes.c: ^
aes.c: aes.c: In function 'aes_encrypt':
aes.c: aes.c:389:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
aes.c: keys = rk ;
aes.c: ^
aes.c: aes.c: In function 'aes_decrypt':
aes.c: aes.c:407:7: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
aes.c: keys = rk ;
aes.c: ^

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