Implementation notes: amd64, hydra1, crypto_aead/norx3241v1

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: norx3241v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
56162xmmclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
56162xmmclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
56163xmmclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
56166xmmclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
63533xmmgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
63534xmmgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
63535xmmgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
63536xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
63552xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
63552xmmgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
63568xmmgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
63568xmmgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
66264xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
66341xmmclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
68789xmmgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
68818xmmgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
68997xmmgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
68997xmmgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
69140xmmgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
69148xmmgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
69176xmmgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
69181xmmgcc -march=k8 -O -fomit-frame-pointer2016102020161009
69186xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
69189xmmgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
69198xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
69200xmmgcc -m64 -O -fomit-frame-pointer2016102020161009
69203xmmgcc -O -fomit-frame-pointer2016102020161009
69208xmmgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
69213xmmgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
69404xmmgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
69445xmmgcc -march=nocona -O -fomit-frame-pointer2016102020161009
69532xmmgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
69576xmmgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
69598xmmgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
73464xmmgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
73464xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
73464xmmgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
73464xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
73536xmmgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
73536xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
73539xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
73539xmmgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
73670xmmgcc -O3 -fomit-frame-pointer2016102020161009
73670xmmgcc -m64 -O2 -fomit-frame-pointer2016102020161009
73670xmmgcc -m64 -O3 -fomit-frame-pointer2016102020161009
73672xmmgcc -O2 -fomit-frame-pointer2016102020161009
73672xmmgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
73672xmmgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
73883xmmgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
73885xmmgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
73904xmmgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
73904xmmgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
74216xmmgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
74216xmmgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
74256xmmgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
74256xmmgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
74395xmmgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
74400xmmgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
74400xmmgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
74413xmmgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
74413xmmgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
74413xmmgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
74413xmmgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
74413xmmgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
74422xmmgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
74424xmmgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
84236xmmgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
84237xmmgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
84408xmmgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
84408xmmgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
86327refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
86358refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
86360refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
86365refgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
86401refgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
86434refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
87224refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
87311refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
87431refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
87445refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
87448refgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
87917refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
87985refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
89128refgcc -O3 -fomit-frame-pointer2016102020161009
89147refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
89155refgcc -m64 -O3 -fomit-frame-pointer2016102020161009
89506refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
89538refgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
89648refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102020161009
89653refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
89657refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
89674refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102020161009
89708refgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
89734refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
89755refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
89898refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
89923refgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
89963refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
89966refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
89976refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
90155refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
90387refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
90461refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102020161009
90462refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102020161009
90493refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
90703refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
90730refgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
90776refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
90915refgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
90955refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
91032refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
91090refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
91371refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
91422refgcc -m64 -O2 -fomit-frame-pointer2016102020161009
91440refgcc -O2 -fomit-frame-pointer2016102020161009
91510refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
91546refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
91552refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
91560refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
91676refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
91696refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
91704refgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
91717refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
91741refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
91749refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
91776refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
91813refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
91920refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
92024refgcc -Os -fomit-frame-pointer2016102020161009
92026refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
92294refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
92301refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
92317refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102020161009
92330refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102020161009
92330refgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
92333refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
92365refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102020161009
92376refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102020161009
92939refgcc -m64 -Os -fomit-frame-pointer2016102020161009
92947refgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
93027refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102020161009
93072refgcc -m64 -march=core2 -O -fomit-frame-pointer2016102020161009
93075refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102020161009
93077refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102020161009
93205refgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
93230refgcc -m64 -O -fomit-frame-pointer2016102020161009
93237refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
93288refgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
93293refgcc -O -fomit-frame-pointer2016102020161009
93394refgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
93421refgcc -march=nocona -O -fomit-frame-pointer2016102020161009
93573refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
93784refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
94222refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
94464refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
94472refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
94557refgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
94630xmmgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
94630xmmgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
94630xmmgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
94630xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
94701refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
94704refgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
94715refgcc -march=k8 -O -fomit-frame-pointer2016102020161009
95117refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
95227refgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
95925xmmgcc -m64 -Os -fomit-frame-pointer2016102020161009
95925xmmgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
95928xmmgcc -Os -fomit-frame-pointer2016102020161009
95928xmmgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
95928xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
96272xmmgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
96272xmmgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
97272xmmgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
97272xmmgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
97272xmmgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
97274xmmgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
97274xmmgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
118752refclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
118752refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
118834refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
118848refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
128192refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
128309refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
516322refgcc -funroll-loops2016102020161009
516429refcc2016102020161009
516662refgcc2016102020161009
688464xmmgcc -funroll-loops2016102020161009
688497xmmgcc2016102020161009
689133xmmcc2016102020161009

Test failure

Implementation: crypto_aead/norx3241v1/ref
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer xmm
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer xmm
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer xmm
gcc -m64 -march=corei7 -O -fomit-frame-pointer xmm
gcc -m64 -march=corei7 -Os -fomit-frame-pointer xmm

Compiler output

Implementation: crypto_aead/norx3241v1/xmm
Compiler: gcc -m64 -march=core2 -O2 -fomit-frame-pointer
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h:41:0,
norx.c: from norx.c:27:
norx.c: norx.c: In function 'crypto_aead_norx3241v1_xmm_decrypt':
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:166:1: error: inlining failed in call to always_inline '_mm_blend_epi16': target specific option mismatch
norx.c: _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
norx.c: ^
norx.c: norx.c:249:58: error: called from here
norx.c: W2 = LOADL(IN + 32); STOREL(OUT + 32, XOR(C, W2)); C = BLEND(C, W2); \
norx.c: ^
norx.c: norx.c:430:13: note: in expansion of macro 'DECRYPT_BLOCK'
norx.c: DECRYPT_BLOCK(A, B, C, D, c, m);
norx.c: ^
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h:41:0,
norx.c: from norx.c:27:
norx.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:166:1: error: inlining failed in call to always_inline '_mm_blend_epi16': target specific option mismatch
norx.c: _mm_blend_epi16 (__m128i __X, __m128i __Y, const int __M)
norx.c: ^
norx.c: norx.c:249:58: error: called from here
norx.c: W2 = LOADL(IN + 32); STOREL(OUT + 32, XOR(C, W2)); C = BLEND(C, W2); \
norx.c: ^
norx.c: norx.c:430:13: note: in expansion of macro 'DECRYPT_BLOCK'
norx.c: DECRYPT_BLOCK(A, B, C, D, c, m);
norx.c: ^
norx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h:41:0,
norx.c: from norx.c:27:
norx.c: ...

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