Implementation notes: x86, h4e450, crypto_aead/tiaoxinv2

Computer: h4e450
Architecture: x86
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20171218
Operation: crypto_aead
Primitive: tiaoxinv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
87029refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2017101220170725
87134refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2017101220170725
87149refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2017101220170725
87400refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2017101220170725
87605refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2017101220170725
87842refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2017101220170725
87918refgcc -m32 -march=barcelona -O -fomit-frame-pointer2017101220170725
87970refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2017101220170725
88383refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2017101220170725
88454refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2017101220170725
88616refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2017101220170725
88644refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2017101220170725
88787refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2017101220170725
88792refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2017101220170725
88811refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2017101220170725
88887refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2017101220170725
88911refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2017101220170725
88987refgcc -m32 -march=core2 -Os -fomit-frame-pointer2017101220170725
89020refgcc -m32 -march=corei7 -O -fomit-frame-pointer2017101220170725
89143refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2017101220170725
89186refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2017101220170725
89409refgcc -m32 -march=k6 -O -fomit-frame-pointer2017101220170725
89433refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2017101220170725
89499refgcc -funroll-loops -m32 -O -fomit-frame-pointer2017101220170725
89533refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017101220170725
89642refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2017101220170725
89652refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2017101220170725
89661refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2017101220170725
89704refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2017101220170725
89718refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2017101220170725
89728refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2017101220170725
89789refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2017101220170725
89861refgcc -m32 -O2 -fomit-frame-pointer2017101220170725
89898refgcc -m32 -march=pentium -O -fomit-frame-pointer2017101220170725
89899refgcc -m32 -O -fomit-frame-pointer2017101220170725
89993refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2017101220170725
90022refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2017101220170725
90197refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2017101220170725
90331refgcc -m32 -march=athlon -O -fomit-frame-pointer2017101220170725
90350refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2017101220170725
90364refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2017101220170725
90411refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2017101220170725
90564refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2017101220170725
90639refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2017101220170725
90739refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2017101220170725
90763refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2017101220170725
90772refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2017101220170725
90787refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2017101220170725
90820refgcc -m32 -march=k8 -Os -fomit-frame-pointer2017101220170725
90858refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2017101220170725
90877refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2017101220170725
90896refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017101220170725
91006refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2017101220170725
91024refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2017101220170725
91029refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2017101220170725
91039refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2017101220170725
91043refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2017101220170725
91076refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2017101220170725
91086refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2017101220170725
91086refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2017101220170725
91114refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2017101220170725
91191refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2017101220170725
91219refgcc -m32 -march=k8 -O -fomit-frame-pointer2017101220170725
91243refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2017101220170725
91452refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2017101220170725
91480refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2017101220170725
91504refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2017101220170725
91514refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2017101220170725
91514refgcc -m32 -march=nocona -Os -fomit-frame-pointer2017101220170725
91642refgcc -m32 -march=prescott -Os -fomit-frame-pointer2017101220170725
91694refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2017101220170725
91832refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2017101220170725
91846refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2017101220170725
91850refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2017101220170725
91960refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2017101220170725
91979refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2017101220170725
92017refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2017101220170725
92046refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2017101220170725
92079refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2017101220170725
92089refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2017101220170725
92126refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2017101220170725
92136refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2017101220170725
92141refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2017101220170725
92164refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2017101220170725
92164refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2017101220170725
92184refgcc -m32 -O3 -fomit-frame-pointer2017101220170725
92359refgcc -m32 -march=i386 -O -fomit-frame-pointer2017101220170725
92730refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2017101220170725
92744refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2017101220170725
92829refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2017101220170725
92910refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2017101220170725
92915refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2017101220170725
92953refgcc -m32 -march=k6 -Os -fomit-frame-pointer2017101220170725
92962refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2017101220170725
92986refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2017101220170725
93071refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2017101220170725
93171refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2017101220170725
93200refgcc -m32 -march=core2 -O -fomit-frame-pointer2017101220170725
93275refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2017101220170725
93352refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2017101220170725
93399refgcc -m32 -Os -fomit-frame-pointer2017101220170725
93409refgcc -m32 -march=prescott -O -fomit-frame-pointer2017101220170725
93466refgcc -m32 -march=nocona -O -fomit-frame-pointer2017101220170725
93608refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2017101220170725
93732refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2017101220170725
93736refgcc -m32 -march=athlon -Os -fomit-frame-pointer2017101220170725
93784refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2017101220170725
93837refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2017101220170725
94102refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017101220170725
94254refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2017101220170725
94378refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2017101220170725
94611refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2017101220170725
94682refgcc -m32 -march=pentium -Os -fomit-frame-pointer2017101220170725
94734refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2017101220170725
94796refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2017101220170725
94852refgcc -m32 -march=i386 -Os -fomit-frame-pointer2017101220170725
94853refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2017101220170725
94947refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2017101220170725
95057refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2017101220170725
95081refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2017101220170725
95095refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2017101220170725
95128refgcc -m32 -march=i486 -Os -fomit-frame-pointer2017101220170725
95143refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2017101220170725
95147refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2017101220170725
95247refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2017101220170725
95266refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2017101220170725
95276refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2017101220170725
95988refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2017101220170725
96335refgcc -m32 -march=i486 -O -fomit-frame-pointer2017101220170725
96501refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2017101220170725
97104refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2017101220170725
97413refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2017101220170725
97532refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017101220170725
97727refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017101220170725
97940refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2017101220170725
98486refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2017101220170725
98505refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2017101220170725
98591refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2017101220170725
98600refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2017101220170725
100087refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2017101220170725
100187refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2017101220170725
100467refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2017101220170725
100558refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2017101220170725
100658refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2017101220170725
100667refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2017101220170725
100923refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2017101220170725
101317refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2017101220170725
102030refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2017101220170725
102187refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2017101220170725
102999refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2017101220170725
103199refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2017101220170725
104709refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017101220170725
104757refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2017101220170725
104908refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017101220170725
104941refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2017101220170725
105041refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2017101220170725
105104refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2017101220170725
107032refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2017101220170725
107132refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2017101220170725
107288refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2017101220170725
107616refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2017101220170725

Test failure

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

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer nim ref
gcc -m32 -march=core-avx-i -O -fomit-frame-pointer nim ref
gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer nim ref
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
gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer nim ref
gcc -m32 -march=corei7-avx -O -fomit-frame-pointer nim ref
gcc -m32 -march=corei7-avx -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: 61, 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 -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 -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 -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=native -mtune=native -O2 -fomit-frame-pointer nim
gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer nim
gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer nim
gcc -m32 -march=native -mtune=native -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