Implementation notes: x86, h9trinity, crypto_aead/tiaoxinv2

Computer: h9trinity
Architecture: x86
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20171218
Operation: crypto_aead
Primitive: tiaoxinv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
3537nimgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2017121420171020
3544nimgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2017121420171020
3585nimgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2017121420171020
3614nimgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2017121420171020
3797nimgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2017121420171020
3863nimgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2017121420171020
3899nimgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017121420171020
3903nimgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017121420171020
3943nimgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2017121420171020
3958nimgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017121420171020
3998nimgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2017121420171020
4065nimgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017121420171020
53030refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017121420171020
53267refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017121420171020
53839refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2017121420171020
54255refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017121420171020
54476refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2017121420171020
54648refgcc -m32 -march=k8 -Os -fomit-frame-pointer2017121420171020
54706refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017121420171020
54727refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017121420171020
54788refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017121420171020
54826refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2017121420171020
54876refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017121420171020
54959refgcc -m32 -march=core2 -Os -fomit-frame-pointer2017121420171020
55243refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017121420171020
55261refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2017121420171020
55342refgcc -m32 -Os -fomit-frame-pointer2017121420171020
55407refgcc -m32 -march=athlon -Os -fomit-frame-pointer2017121420171020
55412refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2017121420171020
55448refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017121420171020
55450refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017121420171020
55464refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2017121420171020
55525refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2017121420171020
55612refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017121420171020
55643refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017121420171020
55671refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017121420171020
55679refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017121420171020
55742refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017121420171020
55769refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017121420171020
55769refgcc -m32 -march=k6 -Os -fomit-frame-pointer2017121420171020
55772refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017121420171020
55775refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017121420171020
55789refgcc -m32 -march=pentium -Os -fomit-frame-pointer2017121420171020
55791refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017121420171020
55819refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017121420171020
55856refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2017121420171020
55880refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2017121420171020
55893refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017121420171020
55917refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017121420171020
55928refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017121420171020
55953refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017121420171020
55985refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017121420171020
56019refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2017121420171020
56044refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2017121420171020
56049refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017121420171020
56151refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017121420171020
56161refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2017121420171020
56298refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2017121420171020
56379refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017121420171020
56424refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017121420171020
56436refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017121420171020
56492refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017121420171020
56512refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2017121420171020
56575refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017121420171020
56608refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017121420171020
56728refgcc -m32 -march=corei7 -O -fomit-frame-pointer2017121420171020
56987refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2017121420171020
57028refgcc -m32 -march=i486 -Os -fomit-frame-pointer2017121420171020
57039refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017121420171020
57109refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017121420171020
57155refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2017121420171020
57157refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017121420171020
57159refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2017121420171020
57311refgcc -m32 -march=i386 -O -fomit-frame-pointer2017121420171020
57315refgcc -m32 -march=i386 -Os -fomit-frame-pointer2017121420171020
57401refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017121420171020
57461refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2017121420171020
57515refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2017121420171020
57783refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2017121420171020
57941refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2017121420171020
57993refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017121420171020
58267refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2017121420171020
58296refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017121420171020
58342refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2017121420171020
58390refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017121420171020
58498refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017121420171020
58611refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017121420171020
58784refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2017121420171020
58787refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2017121420171020
58800refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2017121420171020
58832refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017121420171020
58857refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017121420171020
58895refgcc -m32 -O3 -fomit-frame-pointer2017121420171020
58896refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2017121420171020
58912refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017121420171020
58913refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017121420171020
58923refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2017121420171020
58961refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017121420171020
59040refgcc -m32 -march=barcelona -O -fomit-frame-pointer2017121420171020
59041refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017121420171020
59049refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017121420171020
59107refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017121420171020
59161refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2017121420171020
59170refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017121420171020
59202refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017121420171020
59208refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017121420171020
59216refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017121420171020
59240refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017121420171020
59252refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017121420171020
59266refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017121420171020
59267refgcc -m32 -march=prescott -Os -fomit-frame-pointer2017121420171020
59274refgcc -m32 -O2 -fomit-frame-pointer2017121420171020
59298refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017121420171020
59305refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017121420171020
59339refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2017121420171020
59377refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017121420171020
59394refgcc -m32 -march=k6 -O -fomit-frame-pointer2017121420171020
59404refgcc -funroll-loops -m32 -O -fomit-frame-pointer2017121420171020
59404refgcc -m32 -march=nocona -Os -fomit-frame-pointer2017121420171020
59433refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2017121420171020
59482refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017121420171020
59998refgcc -m32 -march=k8 -O -fomit-frame-pointer2017121420171020
60022refgcc -m32 -O -fomit-frame-pointer2017121420171020
60056refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017121420171020
60091refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2017121420171020
60149refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017121420171020
60364refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017121420171020
60380refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017121420171020
60384refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017121420171020
60524refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2017121420171020
60598refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017121420171020
60625refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017121420171020
60718refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017121420171020
60719refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017121420171020
60796refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017121420171020
60840refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017121420171020
60873refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017121420171020
60881refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017121420171020
60882refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2017121420171020
60905refgcc -m32 -march=athlon -O -fomit-frame-pointer2017121420171020
60937refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017121420171020
60953refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017121420171020
60974refgcc -m32 -march=core2 -O -fomit-frame-pointer2017121420171020
61199refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017121420171020
61210refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2017121420171020
61460refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017121420171020
61544refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017121420171020
61591refgcc -m32 -march=nocona -O -fomit-frame-pointer2017121420171020
61949refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2017121420171020
62156refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2017121420171020
62177refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2017121420171020
62242refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017121420171020
62506refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2017121420171020
62517refgcc -m32 -march=prescott -O -fomit-frame-pointer2017121420171020
67810refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017121420171020
67891refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017121420171020
67905refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017121420171020
67959refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017121420171020
68101refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017121420171020
68165refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2017121420171020
68220refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017121420171020
68475refgcc -m32 -march=pentium -O -fomit-frame-pointer2017121420171020
68573refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017121420171020
68686refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017121420171020
68787refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017121420171020
68796refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017121420171020
68843refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017121420171020
68857refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017121420171020
69087refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017121420171020
69168refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017121420171020
69203refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017121420171020
69250refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017121420171020
69324refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017121420171020
69358refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017121420171020
69378refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017121420171020
69380refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017121420171020
69451refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2017121420171020
69629refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2017121420171020
73175refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017121420171020
73370refgcc -m32 -march=i486 -O -fomit-frame-pointer2017121420171020
74424refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017121420171020
74493refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2017121420171020
74525refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017121420171020
74608refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2017121420171020

Test failure

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer nim ref
gcc -m32 -march=core-avx2 -O -fomit-frame-pointer nim ref
gcc -m32 -march=core-avx2 -Os -fomit-frame-pointer nim ref

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/5/include/xmmintrin.h:1249:0,
tiaoxin-optimized.c: from tiaoxin-optimized.c:20:
tiaoxin-optimized.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:1286: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: error: 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/5/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/5/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: error: 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/5/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: error: 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/5/include/xmmintrin.h:1249: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/5/include/emmintrin.h:1286: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: error: 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/5/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: error: 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/5/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: error: 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/5/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: error: 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/5/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: error: 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/5/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: error: 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