Implementation notes: x86, kizomba, crypto_aead/tiaoxinv2

Computer: kizomba
Architecture: x86
CPU ID: GenuineIntel-000906e9-bfebfbff
SUPERCOP version: 20181216
Operation: crypto_aead
Primitive: tiaoxinv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
2192nimgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2018082620180818
2205nimgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2018082620180818
2212nimgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2018082620180818
2262nimgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2018082620180818
2290nimgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2018082620180818
2309nimgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2018082620180818
2324nimgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2018082620180818
2326nimgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2018082620180818
2327nimgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2018082620180818
2332nimgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2018082620180818
2344nimgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2018082620180818
2347nimgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2018082620180818
2379nimgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2018082620180818
2391nimgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2018082620180818
2409nimgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2018082620180818
2432nimgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2018082620180818
38526refgcc -funroll-loops -m32 -O -fomit-frame-pointer2018082620180818
38963refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2018082620180818
39080refgcc -m32 -march=athlon -O -fomit-frame-pointer2018082620180818
39276refgcc -m32 -O -fomit-frame-pointer2018082620180818
40111refgcc -m32 -march=corei7 -O -fomit-frame-pointer2018082620180818
40135refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2018082620180818
40189refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2018082620180818
40212refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2018082620180818
40270refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2018082620180818
40274refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2018082620180818
40289refgcc -m32 -march=core2 -O -fomit-frame-pointer2018082620180818
40349refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2018082620180818
40363refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2018082620180818
40461refgcc -m32 -march=prescott -O -fomit-frame-pointer2018082620180818
40464refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2018082620180818
40500refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2018082620180818
40508refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2018082620180818
40524refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2018082620180818
40534refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2018082620180818
40538refgcc -m32 -march=k8 -O -fomit-frame-pointer2018082620180818
40539refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2018082620180818
40544refgcc -m32 -march=nocona -O -fomit-frame-pointer2018082620180818
40585refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2018082620180818
40768refgcc -m32 -march=barcelona -O -fomit-frame-pointer2018082620180818
40799refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2018082620180818
40810refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2018082620180818
40919refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2018082620180818
40950refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2018082620180818
40986refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2018082620180818
41187refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2018082620180818
41231refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2018082620180818
41238refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2018082620180818
41416refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2018082620180818
41443refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2018082620180818
41481refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2018082620180818
41547refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2018082620180818
41551refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2018082620180818
41601refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2018082620180818
41603refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2018082620180818
41657refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2018082620180818
41675refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2018082620180818
41782refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2018082620180818
41791refgcc -m32 -march=pentium -O -fomit-frame-pointer2018082620180818
41810refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2018082620180818
41871refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2018082620180818
41889refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2018082620180818
41925refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2018082620180818
42039refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2018082620180818
42054refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2018082620180818
42072refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2018082620180818
42085refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2018082620180818
42113refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018082620180818
42165refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2018082620180818
42212refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2018082620180818
42277refgcc -m32 -O3 -fomit-frame-pointer2018082620180818
42327refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2018082620180818
42437refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2018082620180818
42454refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2018082620180818
42574refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2018082620180818
42770refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2018082620180818
42932refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2018082620180818
42934refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2018082620180818
43260refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2018082620180818
43318refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2018082620180818
43339refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2018082620180818
43515refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2018082620180818
43581refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2018082620180818
43671refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018082620180818
43695refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2018082620180818
43754refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2018082620180818
44064refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2018082620180818
44414refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2018082620180818
44560refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2018082620180818
44687refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2018082620180818
45254refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2018082620180818
46313refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2018082620180818
46349refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018082620180818
46377refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2018082620180818
46381refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018082620180818
46386refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2018082620180818
46445refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2018082620180818
46468refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018082620180818
46643refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2018082620180818
46718refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2018082620180818
46750refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2018082620180818
46795refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2018082620180818
46796refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2018082620180818
46802refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018082620180818
46873refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2018082620180818
46879refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2018082620180818
46956refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018082620180818
47254refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2018082620180818
47556refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2018082620180818
47669refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018082620180818
47720refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2018082620180818
47811refgcc -m32 -O2 -fomit-frame-pointer2018082620180818
48438refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018082620180818
52579refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018082620180818
57522refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2018082620180818
58705refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2018082620180818
58832refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2018082620180818
59127refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2018082620180818
180256refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2018082620180818
180281refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2018082620180818
180815refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2018082620180818
180851refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2018082620180818
181655refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2018082620180818
181799refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2018082620180818
181867refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2018082620180818
182141refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2018082620180818
182155refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2018082620180818
182234refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2018082620180818
182715refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2018082620180818
182772refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2018082620180818
183139refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2018082620180818
183218refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2018082620180818
183313refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2018082620180818
185049refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2018082620180818
186000refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2018082620180818
186564refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2018082620180818
186677refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2018082620180818
186702refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2018082620180818
186758refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2018082620180818
186867refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2018082620180818
186899refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2018082620180818
187035refgcc -m32 -march=i386 -O -fomit-frame-pointer2018082620180818
187307refgcc -m32 -march=k6 -O -fomit-frame-pointer2018082620180818
187595refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2018082620180818
187641refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2018082620180818
188522refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2018082620180818
190402refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2018082620180818
190412refgcc -m32 -march=nocona -Os -fomit-frame-pointer2018082620180818
190464refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2018082620180818
191071refgcc -m32 -march=prescott -Os -fomit-frame-pointer2018082620180818
191115refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2018082620180818
191248refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2018082620180818
191341refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2018082620180818
191647refgcc -m32 -march=core2 -Os -fomit-frame-pointer2018082620180818
191694refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2018082620180818
191766refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2018082620180818
191816refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2018082620180818
192349refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2018082620180818
192562refgcc -m32 -march=athlon -Os -fomit-frame-pointer2018082620180818
192585refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2018082620180818
192625refgcc -m32 -march=k8 -Os -fomit-frame-pointer2018082620180818
192877refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2018082620180818
192941refgcc -m32 -march=i486 -O -fomit-frame-pointer2018082620180818
193000refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018082620180818
193213refgcc -m32 -march=i486 -Os -fomit-frame-pointer2018082620180818
193328refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2018082620180818
193438refgcc -m32 -Os -fomit-frame-pointer2018082620180818
193613refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2018082620180818
193744refgcc -m32 -march=k6 -Os -fomit-frame-pointer2018082620180818
193768refgcc -m32 -march=i386 -Os -fomit-frame-pointer2018082620180818
193818refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2018082620180818
193969refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2018082620180818
194204refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2018082620180818
194272refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2018082620180818
194958refgcc -m32 -march=pentium -Os -fomit-frame-pointer2018082620180818
195182refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2018082620180818
195318refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2018082620180818
195515refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2018082620180818
195724refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2018082620180818
195853refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018082620180818
195952refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2018082620180818
196062refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2018082620180818
196179refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2018082620180818
196215refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2018082620180818
196313refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2018082620180818
196536refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018082620180818
196889refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2018082620180818
197538refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2018082620180818
197671refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2018082620180818
197845refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2018082620180818
198986refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2018082620180818
199369refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2018082620180818

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: gcc -funroll-loops -m32 -O2 -fomit-frame-pointer
tiaoxin-optimized.c: tiaoxin-optimized.c: In function 'tiaoxin_optimized_encrypt':
tiaoxin-optimized.c: tiaoxin-optimized.c:108:10: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
tiaoxin-optimized.c: __m128i Z0 = constant8( 0x42,0x8a,0x2f,0x98,0xd7,0x28,0xae,0x22,0x71,0x37,0x44,0x91,0x23,0xef,0x65,0xcd );
tiaoxin-optimized.c: ^~
tiaoxin-optimized.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
tiaoxin-optimized.c: from tiaoxin-optimized.c:20:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_xor_si128 (__m128i __A, __m128i __B)
tiaoxin-optimized.c: ^~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:28:19: note: called from here
tiaoxin-optimized.c: #define xor(a,b) _mm_xor_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:127: note: in expansion of macro 'xor'
tiaoxin-optimized.c: #define RT6( T , M ) tmp = T[0];T[0] = enc(T[5],M);T[5] = T[4];T[4] = T[3];T[3] = T[2];T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:50:1: note: in expansion of macro 'RT6'
tiaoxin-optimized.c: RT6( T6, M2 );
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:151:2: note: in expansion of macro 'UPDATE'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^~~~~~
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 88, namely:
CompilerImplementations
gcc -funroll-loops -m32 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer nim
gcc -m32 -O2 -fomit-frame-pointer nim
gcc -m32 -O3 -fomit-frame-pointer nim
gcc -m32 -O -fomit-frame-pointer nim
gcc -m32 -Os -fomit-frame-pointer nim
gcc -m32 -march=athlon -O2 -fomit-frame-pointer nim
gcc -m32 -march=athlon -O3 -fomit-frame-pointer nim
gcc -m32 -march=athlon -O -fomit-frame-pointer nim
gcc -m32 -march=athlon -Os -fomit-frame-pointer nim
gcc -m32 -march=i386 -O2 -fomit-frame-pointer nim
gcc -m32 -march=i386 -O3 -fomit-frame-pointer nim
gcc -m32 -march=i386 -O -fomit-frame-pointer nim
gcc -m32 -march=i386 -Os -fomit-frame-pointer nim
gcc -m32 -march=i486 -O2 -fomit-frame-pointer nim
gcc -m32 -march=i486 -O3 -fomit-frame-pointer nim
gcc -m32 -march=i486 -O -fomit-frame-pointer nim
gcc -m32 -march=i486 -Os -fomit-frame-pointer nim
gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer nim
gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer nim
gcc -m32 -march=k6-2 -O -fomit-frame-pointer nim
gcc -m32 -march=k6-2 -Os -fomit-frame-pointer nim
gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer nim
gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer nim
gcc -m32 -march=k6-3 -O -fomit-frame-pointer nim
gcc -m32 -march=k6-3 -Os -fomit-frame-pointer nim
gcc -m32 -march=k6 -O2 -fomit-frame-pointer nim
gcc -m32 -march=k6 -O3 -fomit-frame-pointer nim
gcc -m32 -march=k6 -O -fomit-frame-pointer nim
gcc -m32 -march=k6 -Os -fomit-frame-pointer nim
gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer nim
gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer nim
gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentium2 -O -fomit-frame-pointer nim
gcc -m32 -march=pentium2 -Os -fomit-frame-pointer nim
gcc -m32 -march=pentium -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentium -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentium -O -fomit-frame-pointer nim
gcc -m32 -march=pentium -Os -fomit-frame-pointer nim
gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentiumpro -O -fomit-frame-pointer nim
gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer nim

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: tiaoxin-optimized.c: In function 'tiaoxin_optimized_encrypt':
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:108: note: in expansion of macro 'enc'
tiaoxin-optimized.c: #define RT6( T , M ) tmp = T[0];T[0] = enc(T[5],M);T[5] = T[4];T[4] = T[3];T[3] = T[2];T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:50:1: note: in expansion of macro 'RT6'
tiaoxin-optimized.c: RT6( T6, M2 );
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:151:2: note: in expansion of macro 'UPDATE'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^~~~~~
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:41: note: in expansion of macro 'enc'
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 60, namely:
CompilerImplementations
gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer nim
gcc -m32 -march=core2 -O2 -fomit-frame-pointer nim
gcc -m32 -march=core2 -O3 -fomit-frame-pointer nim
gcc -m32 -march=core2 -O -fomit-frame-pointer nim
gcc -m32 -march=core2 -Os -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer nim
gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer nim
gcc -m32 -march=corei7 -O2 -fomit-frame-pointer nim
gcc -m32 -march=corei7 -O3 -fomit-frame-pointer nim
gcc -m32 -march=corei7 -O -fomit-frame-pointer nim
gcc -m32 -march=corei7 -Os -fomit-frame-pointer nim
gcc -m32 -march=k8 -O2 -fomit-frame-pointer nim
gcc -m32 -march=k8 -O3 -fomit-frame-pointer nim
gcc -m32 -march=k8 -O -fomit-frame-pointer nim
gcc -m32 -march=k8 -Os -fomit-frame-pointer nim
gcc -m32 -march=nocona -O2 -fomit-frame-pointer nim
gcc -m32 -march=nocona -O3 -fomit-frame-pointer nim
gcc -m32 -march=nocona -O -fomit-frame-pointer nim
gcc -m32 -march=nocona -Os -fomit-frame-pointer nim
gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentium-m -O -fomit-frame-pointer nim
gcc -m32 -march=pentium-m -Os -fomit-frame-pointer nim
gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentium4 -O -fomit-frame-pointer nim
gcc -m32 -march=pentium4 -Os -fomit-frame-pointer nim
gcc -m32 -march=prescott -O2 -fomit-frame-pointer nim
gcc -m32 -march=prescott -O3 -fomit-frame-pointer nim
gcc -m32 -march=prescott -O -fomit-frame-pointer nim
gcc -m32 -march=prescott -Os -fomit-frame-pointer nim

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: gcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer
tiaoxin-optimized.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
tiaoxin-optimized.c: from tiaoxin-optimized.c:20:
tiaoxin-optimized.c: tiaoxin-optimized.c: In function 'tiaoxin_optimized_encrypt':
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_xor_si128 (__m128i __A, __m128i __B)
tiaoxin-optimized.c: ^~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:28:19: note: called from here
tiaoxin-optimized.c: #define xor(a,b) _mm_xor_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:127: note: in expansion of macro 'xor'
tiaoxin-optimized.c: #define RT6( T , M ) tmp = T[0];T[0] = enc(T[5],M);T[5] = T[4];T[4] = T[3];T[3] = T[2];T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:50:1: note: in expansion of macro 'RT6'
tiaoxin-optimized.c: RT6( T6, M2 );
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:151:2: note: in expansion of macro 'UPDATE'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^~~~~~
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer nim
gcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer nim
gcc -m32 -march=pentium3 -O2 -fomit-frame-pointer nim
gcc -m32 -march=pentium3 -O3 -fomit-frame-pointer nim
gcc -m32 -march=pentium3 -O -fomit-frame-pointer nim
gcc -m32 -march=pentium3 -Os -fomit-frame-pointer nim

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: gcc -m32 -march=barcelona -O2 -fomit-frame-pointer
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: tiaoxin-optimized.c: In function 'tiaoxin_optimized_encrypt':
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:108: note: in expansion of macro 'enc'
tiaoxin-optimized.c: #define RT6( T , M ) tmp = T[0];T[0] = enc(T[5],M);T[5] = T[4];T[4] = T[3];T[3] = T[2];T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:50:1: note: in expansion of macro 'RT6'
tiaoxin-optimized.c: RT6( T6, M2 );
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:151:2: note: in expansion of macro 'UPDATE'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^~~~~~
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:41: note: in expansion of macro 'enc'
tiaoxin-optimized.c: ...
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: tiaoxin-optimized.c: In function 'tiaoxin_optimized_encrypt':
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:108: note: in expansion of macro 'enc'
tiaoxin-optimized.c: #define RT6( T , M ) tmp = T[0];T[0] = enc(T[5],M);T[5] = T[4];T[4] = T[3];T[3] = T[2];T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:50:1: note: in expansion of macro 'RT6'
tiaoxin-optimized.c: RT6( T6, M2 );
tiaoxin-optimized.c: ^~~
tiaoxin-optimized.c: tiaoxin-optimized.c:151:2: note: in expansion of macro 'UPDATE'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^~~~~~
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
tiaoxin-optimized.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: called from here
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: tiaoxin-optimized.c:42:41: note: in expansion of macro 'enc'
tiaoxin-optimized.c: ...

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