Implementation notes: x86, rumba7, crypto_aead/tiaoxinv2

Computer: rumba7
Architecture: x86
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20171218
Operation: crypto_aead
Primitive: tiaoxinv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
2400nimgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2018052920171218
2400nimgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2018052920171218
2430nimgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2018052920171218
2430nimgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2018052920171218
2430nimgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2018052920171218
2490nimgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2018052920171218
2520nimgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2018052920171218
2640nimgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2018052920171218
2640nimgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2018052920171218
2640nimgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2018052920171218
2640nimgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2018052920171218
2670nimgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2018052920171218
2670nimgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2018052920171218
2700nimgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2018052920171218
2700nimgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2018052920171218
2700nimgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2018052920171218
36930refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2018052920171218
37200refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2018052920171218
37230refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2018052920171218
37350refgcc -m32 -march=corei7 -O -fomit-frame-pointer2018052920171218
37770refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2018052920171218
37800refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2018052920171218
37800refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2018052920171218
37830refgcc -m32 -march=barcelona -O -fomit-frame-pointer2018052920171218
37950refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2018052920171218
37980refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2018052920171218
37980refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2018052920171218
38010refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2018052920171218
38010refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2018052920171218
38070refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2018052920171218
38100refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2018052920171218
38130refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018052920171218
38160refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2018052920171218
38160refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2018052920171218
38190refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2018052920171218
38220refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2018052920171218
38220refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2018052920171218
38250refgcc -m32 -march=core2 -Os -fomit-frame-pointer2018052920171218
38250refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2018052920171218
38250refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2018052920171218
38280refgcc -m32 -march=prescott -O -fomit-frame-pointer2018052920171218
38310refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2018052920171218
38340refgcc -m32 -march=core2 -O -fomit-frame-pointer2018052920171218
38370refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2018052920171218
38400refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2018052920171218
38400refgcc -m32 -march=nocona -O -fomit-frame-pointer2018052920171218
38460refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2018052920171218
38490refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2018052920171218
38520refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2018052920171218
38520refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2018052920171218
38580refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2018052920171218
38580refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2018052920171218
38580refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2018052920171218
38580refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2018052920171218
38640refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2018052920171218
38700refgcc -m32 -march=k8 -O -fomit-frame-pointer2018052920171218
38730refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2018052920171218
38790refgcc -m32 -march=prescott -Os -fomit-frame-pointer2018052920171218
38820refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2018052920171218
38850refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2018052920171218
38940refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2018052920171218
38970refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2018052920171218
38970refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2018052920171218
39090refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2018052920171218
39120refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2018052920171218
39150refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2018052920171218
39150refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2018052920171218
39180refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2018052920171218
39210refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2018052920171218
39240refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2018052920171218
39360refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2018052920171218
39450refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2018052920171218
39450refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2018052920171218
39480refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2018052920171218
39570refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018052920171218
39780refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2018052920171218
39870refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2018052920171218
39870refgcc -m32 -march=nocona -Os -fomit-frame-pointer2018052920171218
39930refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2018052920171218
39930refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2018052920171218
39960refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2018052920171218
39990refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2018052920171218
40110refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2018052920171218
40230refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2018052920171218
40620refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2018052920171218
40980refgcc -m32 -march=k8 -Os -fomit-frame-pointer2018052920171218
41250refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2018052920171218
42060refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2018052920171218
42780refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2018052920171218
42930refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2018052920171218
43080refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2018052920171218
43110refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2018052920171218
43140refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2018052920171218
43260refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018052920171218
43290refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2018052920171218
43710refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2018052920171218
43740refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2018052920171218
43950refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2018052920171218
43950refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2018052920171218
44130refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2018052920171218
44340refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2018052920171218
44460refgcc -m32 -march=pentium -O -fomit-frame-pointer2018052920171218
44490refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2018052920171218
44520refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2018052920171218
44760refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2018052920171218
44910refgcc -m32 -march=athlon -O -fomit-frame-pointer2018052920171218
44940refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2018052920171218
45150refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2018052920171218
45420refgcc -m32 -O -fomit-frame-pointer2018052920171218
45480refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2018052920171218
45480refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2018052920171218
45690refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2018052920171218
45690refgcc -m32 -march=k6 -O -fomit-frame-pointer2018052920171218
45960refgcc -funroll-loops -m32 -O -fomit-frame-pointer2018052920171218
45960refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2018052920171218
45960refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2018052920171218
45990refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2018052920171218
46050refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2018052920171218
46260refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2018052920171218
46560refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2018052920171218
46560refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2018052920171218
46620refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2018052920171218
46680refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2018052920171218
46710refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2018052920171218
46710refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2018052920171218
46710refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2018052920171218
46770refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2018052920171218
46770refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2018052920171218
46860refgcc -m32 -O2 -fomit-frame-pointer2018052920171218
46980refgcc -m32 -march=i386 -O -fomit-frame-pointer2018052920171218
47010refgcc -m32 -march=athlon -Os -fomit-frame-pointer2018052920171218
47040refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2018052920171218
47040refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2018052920171218
47070refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2018052920171218
47100refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2018052920171218
47130refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018052920171218
47160refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2018052920171218
47190refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2018052920171218
47220refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2018052920171218
47250refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2018052920171218
47250refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2018052920171218
47250refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2018052920171218
47370refgcc -m32 -O3 -fomit-frame-pointer2018052920171218
47400refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2018052920171218
47400refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2018052920171218
47430refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2018052920171218
47460refgcc -m32 -march=pentium -Os -fomit-frame-pointer2018052920171218
47550refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2018052920171218
47580refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2018052920171218
47610refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2018052920171218
47640refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2018052920171218
47640refgcc -m32 -march=i386 -Os -fomit-frame-pointer2018052920171218
47640refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2018052920171218
47850refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2018052920171218
47910refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2018052920171218
48000refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2018052920171218
48060refgcc -m32 -march=i486 -Os -fomit-frame-pointer2018052920171218
48120refgcc -m32 -march=k6 -Os -fomit-frame-pointer2018052920171218
48180refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2018052920171218
48210refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2018052920171218
48480refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2018052920171218
48600refgcc -m32 -march=i486 -O -fomit-frame-pointer2018052920171218
48660refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2018052920171218
48750refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2018052920171218
49050refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018052920171218
49050refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2018052920171218
49350refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2018052920171218
49410refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018052920171218
49530refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2018052920171218
49680refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2018052920171218
49710refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2018052920171218
49770refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2018052920171218
49800refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2018052920171218
50040refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2018052920171218
50190refgcc -m32 -Os -fomit-frame-pointer2018052920171218
50310refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2018052920171218
50850refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2018052920171218
51300refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2018052920171218
51510refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2018052920171218
51660refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2018052920171218
55470refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2018052920171218
55530refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2018052920171218
56070refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2018052920171218
56430refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2018052920171218
57300refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018052920171218
57780refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2018052920171218
57960refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2018052920171218
58140refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018052920171218
58350refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2018052920171218
58560refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2018052920171218
59370refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2018052920171218
59520refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2018052920171218

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