Implementation notes: amd64, hydra1, crypto_aead/norx3261v1

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: norx3261v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
99350xmmclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
99426xmmclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
99427xmmclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
99429xmmclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
103048xmmgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
103050xmmgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
103067xmmgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
103069xmmgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
104448xmmgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
104457xmmgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
104469xmmgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
104469xmmgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
108750xmmgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
108752xmmgcc -m64 -O -fomit-frame-pointer2016102020161009
108771xmmgcc -O -fomit-frame-pointer2016102020161009
108795xmmgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
108795xmmgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
108858xmmgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
108893xmmgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
109008xmmgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
109022xmmgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
109040xmmgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
109049xmmgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
109146xmmgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
109167xmmgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
109192xmmgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
109205xmmgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
109264xmmgcc -march=k8 -O -fomit-frame-pointer2016102020161009
109560xmmgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
109560xmmgcc -march=nocona -O -fomit-frame-pointer2016102020161009
110357xmmgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
110410xmmgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
114851xmmclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
114853xmmclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
123744refgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
123781refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
123786refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
124960xmmgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
124960xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
124960xmmgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
124960xmmgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
125069xmmgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
125109xmmgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
125109xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
125109xmmgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
125262refgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
125293refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
125432xmmgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
125432xmmgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
125434xmmgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
125434xmmgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
125434xmmgcc -m64 -O2 -fomit-frame-pointer2016102020161009
125434xmmgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
125435xmmgcc -O2 -fomit-frame-pointer2016102020161009
125435xmmgcc -O3 -fomit-frame-pointer2016102020161009
125435xmmgcc -m64 -O3 -fomit-frame-pointer2016102020161009
125435xmmgcc -march=k8 -O3 -fomit-frame-pointer2016102020161009
125744xmmgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
125748xmmgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
125760xmmgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
125761xmmgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
125895refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102020161009
125923refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
125965refgcc -march=barcelona -O3 -fomit-frame-pointer2016102020161009
125973refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102020161009
126141refgcc -O3 -fomit-frame-pointer2016102020161009
126141refgcc -m64 -O3 -fomit-frame-pointer2016102020161009
126158refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
126330xmmgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
126332xmmgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
126333xmmgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
126334xmmgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
126379xmmgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102020161009
126381xmmgcc -funroll-loops -O3 -fomit-frame-pointer2016102020161009
126381xmmgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102020161009
126390xmmgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
126392xmmgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
126392xmmgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
127813refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102020161009
127816refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102020161009
127888refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102020161009
127890refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102020161009
129117refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102020161009
129117refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102020161009
129181refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102020161009
129197refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102020161009
129349refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102020161009
129350refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102020161009
129360refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102020161009
129373refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102020161009
129413refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
129445refgcc -O2 -fomit-frame-pointer2016102020161009
129466refgcc -m64 -O2 -fomit-frame-pointer2016102020161009
129651refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
129685refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
130176refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
130186refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102020161009
130778refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
130801refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102020161009
130876refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102020161009
130877refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102020161009
130914refgcc -funroll-loops -O2 -fomit-frame-pointer2016102020161009
131069refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
131117refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102020161009
131120refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
131229refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
131246refgcc -march=nocona -O3 -fomit-frame-pointer2016102020161009
131285refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102020161009
131869refgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
131917refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
132032refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102020161009
132045refgcc -march=k8 -O2 -fomit-frame-pointer2016102020161009
132360refgcc -m64 -Os -fomit-frame-pointer2016102020161009
132392refgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
132477refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102020161009
132496refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
132501refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
132541refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102020161009
132546refgcc -march=barcelona -O2 -fomit-frame-pointer2016102020161009
132557refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102020161009
132560refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102020161009
132603refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
132638refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
132833refgcc -funroll-loops -O -fomit-frame-pointer2016102020161009
132846refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102020161009
132858refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
133157refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
133221refgcc -Os -fomit-frame-pointer2016102020161009
133229refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
133298refgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
133366refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
133557refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
133557refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102020161009
134904refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102020161009
134920refgcc -march=nocona -O2 -fomit-frame-pointer2016102020161009
136464refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
136469refgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
136587refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
136598refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
136611refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102020161009
136698xmmgcc -march=nocona -Os -fomit-frame-pointer2016102020161009
136699xmmgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
136726xmmgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102020161009
136728xmmgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
136757refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102020161009
137011refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
137192refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102020161009
138618refgcc -fno-schedule-insns -O -fomit-frame-pointer2016102020161009
138624refgcc -m64 -O -fomit-frame-pointer2016102020161009
138651refgcc -O -fomit-frame-pointer2016102020161009
138918refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102020161009
138934refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102020161009
138939refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102020161009
138941refgcc -march=k8 -O -fomit-frame-pointer2016102020161009
138965refgcc -m64 -march=k8 -O -fomit-frame-pointer2016102020161009
139403refgcc -m64 -march=nocona -O -fomit-frame-pointer2016102020161009
139445refgcc -march=nocona -O -fomit-frame-pointer2016102020161009
139515refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102020161009
139520refgcc -m64 -march=core2 -O -fomit-frame-pointer2016102020161009
139536refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102020161009
139614refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102020161009
140744refgcc -march=barcelona -O -fomit-frame-pointer2016102020161009
157157xmmgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
157157xmmgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102020161009
157186xmmgcc -Os -fomit-frame-pointer2016102020161009
157186xmmgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
157186xmmgcc -m64 -Os -fomit-frame-pointer2016102020161009
157186xmmgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
157186xmmgcc -march=k8 -Os -fomit-frame-pointer2016102020161009
157189xmmgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102020161009
157189xmmgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102020161009
157189xmmgcc -march=barcelona -Os -fomit-frame-pointer2016102020161009
157189xmmgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102020161009
158026xmmgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102020161009
158026xmmgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102020161009
158026xmmgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102020161009
158027xmmgcc -funroll-loops -Os -fomit-frame-pointer2016102020161009
158029xmmgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102020161009
173529refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
173560refclang -O3 -fomit-frame-pointer -Qunused-arguments2016102020161009
173560refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
173608refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
187691refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102020161009
187702refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102020161009
740752refgcc2016102020161009
740861refgcc -funroll-loops2016102020161009
741032refcc2016102020161009
1040858xmmcc2016102020161009
1041671xmmgcc -funroll-loops2016102020161009
1043680xmmgcc2016102020161009

Test failure

Implementation: crypto_aead/norx3261v1/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/norx3261v1/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_norx3261v1_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