Implementation notes: amd64, skylake, crypto_aead/trivia0v1

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: trivia0v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
211186refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
211356refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
211472refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
211832refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
211974refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
212422refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
213310refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
213762refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
213876refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
215754refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
216190refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
216246refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
216646refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
216850refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
217020refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
217302refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
217306refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
217320refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
217554refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
217670refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
217906refgcc -O3 -fomit-frame-pointer2016121720161026
217972refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
218336refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
218402refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
218430refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
218530refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
218842refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
219650refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
219684refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
219798refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
219926refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
220326refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
220746refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
220854refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
222874refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
223390refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
233282refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
234248refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
234390refgcc -O2 -fomit-frame-pointer2016121720161026
235400refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
235736refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
236800refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
236902refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
237368refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
238700refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
239912refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
240124refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
240140refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
240154refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
240512refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
240990refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
241644refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
241802refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
246000refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
282742refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
282942refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
283192refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
284284refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
285450refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
285544refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
289544refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
291112refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
291986refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
292170refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
292374refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
292906refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
293154refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
297700refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
297916refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
297970refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
298474refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
298806refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
299002refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
299274refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
315176refgcc -m64 -O -fomit-frame-pointer2016121720161026
315206refgcc -O -fomit-frame-pointer2016121720161026
315934refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
318680refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
318978refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
323250refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
323480refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
390096refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
390384refgcc -Os -fomit-frame-pointer2016121720161026
390432refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
391104refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
391264refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
391554refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
391590refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
392392refgcc -m64 -Os -fomit-frame-pointer2016121720161026
393356refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
396008refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
407466refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
413650refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
420702refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
421282refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
424204refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
434496refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
441766refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
441994refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
442862refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
443012refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
455550refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
455904refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
460884refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
461888refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
462380refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
462508refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
463628refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
1788304refgcc -funroll-loops2016121720161026
1793386refcc2016121720161026
1803404refgcc2016121720161026

Compiler output

Implementation: crypto_aead/trivia0v1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:123:12: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
encrypt.c: if((a>gt;>gt;31)&1==1) result = result^(CONST_alpha_32);
encrypt.c: ^~~~~
encrypt.c: encrypt.c:123:12: note: place parentheses around the '==' expression to silence this warning
encrypt.c: if((a>gt;>gt;31)&1==1) result = result^(CONST_alpha_32);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:123:12: note: place parentheses around the & expression to evaluate it first
encrypt.c: if((a>gt;>gt;31)&1==1) result = result^(CONST_alpha_32);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:148:12: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
encrypt.c: if((b>gt;>gt;63)&1==1) result = result^(CONST_beta_64);
encrypt.c: ^~~~~
encrypt.c: encrypt.c:148:12: note: place parentheses around the '==' expression to silence this warning
encrypt.c: if((b>gt;>gt;63)&1==1) result = result^(CONST_beta_64);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:148:12: note: place parentheses around the & expression to evaluate it first
encrypt.c: if((b>gt;>gt;63)&1==1) result = result^(CONST_beta_64);
encrypt.c: ^
encrypt.c: ( )
encrypt.c: encrypt.c:183:8: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
encrypt.c: if(b&1==1) result=a;
encrypt.c: ^~~~~
encrypt.c: ...

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