Implementation notes: amd64, skylake, crypto_aead/sablierv1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: sablierv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
209002refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
210788refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
211256refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
212322refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
213182refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
213938refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
215860refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
215956refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
215958refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
216106refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
216508refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
216862refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
217696refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
217788refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
218510refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
219292refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
219342refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
220402refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
222022refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
222256refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
222606refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
222980refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
223058refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
224600refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
224756refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
225132refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
225582refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
225600refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
225936refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
228888refgcc -O3 -fomit-frame-pointer2016121620161026
229038refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
229658refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
231328refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
231380refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
231768refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
233660refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
237384refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
295616refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
295692refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
296098refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
297124refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
297444refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
298708refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
298902refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
299160refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
299584refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
299970refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
300148refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
300158refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
300192refgcc -O2 -fomit-frame-pointer2016121620161026
300246refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
300274refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
300730refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
300968refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
302088refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
303080refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
303190refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
304252refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
305190refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
305334refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
307462refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
308854refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
311110refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
312786refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
421330refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
434892refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
442346refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
443238refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
444088refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
444830refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
447228refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
449824refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
450212refgcc -m64 -O -fomit-frame-pointer2016121620161026
450794refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
453558refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
455480refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
456142refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
456752refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
460324refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
464314refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
466174refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
470636refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
474056refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
474390refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
474650refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
476704refgcc -O -fomit-frame-pointer2016121620161026
478478refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
486990refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
488630refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
492662refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
493708refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
508776refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
518412refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
520356refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
522468refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
525142refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
526382refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
529064refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
532686refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
537788refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
542530refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
542940refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
543520refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
543714refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
545796refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
546564refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
548818refgcc -Os -fomit-frame-pointer2016121620161026
550132refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
552830refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
555048refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
555080refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
555652refgcc -m64 -Os -fomit-frame-pointer2016121620161026
556156refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
557390refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
560968refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
568728refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
570438refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
573878refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
1403752refgcc -funroll-loops2016121620161026
1405694refcc2016121620161026
1432646refgcc2016121620161026

Compiler output

Implementation: crypto_aead/sablierv1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: In file included from encrypt.c:14:
encrypt.c: ./cipher_1.h:104:56: warning: '&' within '^' [-Wbitwise-op-parentheses]
encrypt.c: tem_state->gt;L4[0] = state->gt;L2[0] ^ ( ~(state->gt;L1[0]) ) & (state->gt;L1[1]);
encrypt.c: ~ ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
encrypt.c: ./cipher_1.h:104:56: note: place parentheses around the '&' expression to silence this warning
encrypt.c: tem_state->gt;L4[0] = state->gt;L2[0] ^ ( ~(state->gt;L1[0]) ) & (state->gt;L1[1]);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: ./cipher_1.h:105:56: warning: '&' within '^' [-Wbitwise-op-parentheses]
encrypt.c: tem_state->gt;L4[1] = state->gt;L2[1] ^ ( ~(state->gt;L1[2]) ) & (state->gt;L1[3]);
encrypt.c: ~ ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
encrypt.c: ./cipher_1.h:105:56: note: place parentheses around the '&' expression to silence this warning
encrypt.c: tem_state->gt;L4[1] = state->gt;L2[1] ^ ( ~(state->gt;L1[2]) ) & (state->gt;L1[3]);
encrypt.c: ^
encrypt.c: ( )
encrypt.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