Implementation notes: amd64, genji154, crypto_aead/trivia0v1

Computer: genji154
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20170228
Operation: crypto_aead
Primitive: trivia0v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
378820? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017022620170105
378859? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017022620170105
379405? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017022620170105
379405? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
379483? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
380120? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017022620170105
380640? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017022620170105
381979? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
382083? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
399113? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017022620170105
399165? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017022620170105
402701? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017022620170105
402753? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017022620170105
408824? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
409032? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
409682? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
409955? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
412711? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017022620170105
412763? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017022620170105
412776? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017022620170105
412906? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017022620170105
413517? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017022620170105
413933? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017022620170105
437593? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017022620170105
438035? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
438321? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
446186? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017022620170105
446381? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017022620170105
446472? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017022620170105
447239? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017022620170105
448552? ? ?? ? ?reficc_-xMIC-AVX512_-O2_-fomit-frame-pointer2017022620170105
450372? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017022620170105
451685? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017022620170105
452179? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017022620170105
452192? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017022620170105
453843? ? ?? ? ?reficc_-xMIC-AVX512_-O3_-fomit-frame-pointer2017022620170105
454168? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
454623? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
471666? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017022620170105
471692? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017022620170105
471926? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017022620170105
471939? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017022620170105
471965? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017022620170105
472238? ? ?? ? ?reficc2017022620170105
472680? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017022620170105
472953? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017022620170105
473005? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017022620170105
473174? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017022620170105
473616? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017022620170105
490542? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
490802? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
499395? ? ?? ? ?reficc_-no-vec2017022620170105
502372? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017022620170105
502723? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017022620170105
511316? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017022620170105
511797? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017022620170105
518999? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
519701? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
696462? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017022620170105
697697? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017022620170105
699842? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
701454? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017022620170105
701740? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017022620170105
702416? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
706147? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017022620170105
706420? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017022620170105
706433? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017022620170105
782392? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017022620170105
783211? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017022620170105
783302? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017022620170105
784524? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017022620170105
785486? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017022620170105
785811? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017022620170105
785811? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017022620170105
788502? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017022620170105
792857? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017022620170105
795574? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017022620170105
797810? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017022620170105
798200? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017022620170105
800670? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017022620170105
803231? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017022620170105
819273? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017022620170105
825812? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017022620170105
828776? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
829140? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
868049? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
872144? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
876707? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017022620170105
876954? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017022620170105
877344? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017022620170105
924027? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017022620170105
969137? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017022620170105
981448? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017022620170105
982657? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017022620170105
982995? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017022620170105
986544? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
989027? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
989274? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017022620170105
989287? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017022620170105
989703? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017022620170105
992667? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017022620170105
993265? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017022620170105
993707? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017022620170105
993902? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
994201? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017022620170105
994474? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017022620170105
994643? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017022620170105
995618? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
996346? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
997698? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
999986? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017022620170105
1005576? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017022620170105
2539836? ? ?? ? ?refgcc_-funroll-loops2017022620170105
2551107? ? ?? ? ?refgcc2017022620170105
2626039? ? ?? ? ?refcc2017022620170105

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>>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>>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>>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>>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>>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>>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