Implementation notes: amd64, skylake, crypto_aead/tiaoxinv2

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: tiaoxinv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
1906nimgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
1906nimgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
1906nimgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
1906nimgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
1908nimgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
1910nimgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
1914nimgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
1918nimgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
1920nimgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
1924nimgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
1940nimgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
1940nimgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
1942nimgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
1942nimgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
1942nimgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
1956nimgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
1960nimgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
1966nimgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
1966nimgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
1974nimgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
1978nimclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121720161026
1982nimclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121720161026
1988nimclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121720161026
1994nimclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121720161026
30718refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
30852refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121720161026
30894refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121720161026
30958refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
31006refgcc -march=nocona -O3 -fomit-frame-pointer2016121720161026
31036refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
31042refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121720161026
31144refgcc -m64 -Os -fomit-frame-pointer2016121720161026
31172refgcc -march=barcelona -Os -fomit-frame-pointer2016121720161026
31186refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
31188refgcc -Os -fomit-frame-pointer2016121720161026
31202refgcc -funroll-loops -Os -fomit-frame-pointer2016121720161026
31202refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121720161026
31284refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
31300refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
31328refgcc -march=nocona -Os -fomit-frame-pointer2016121720161026
31338refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121720161026
31344refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121720161026
31380refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121720161026
31418refgcc -march=k8 -O3 -fomit-frame-pointer2016121720161026
31436refgcc -m64 -O2 -fomit-frame-pointer2016121720161026
31440refgcc -march=barcelona -O3 -fomit-frame-pointer2016121720161026
31490refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121720161026
31496refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
31558refgcc -funroll-loops -O2 -fomit-frame-pointer2016121720161026
31558refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121720161026
31562refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
31572refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
31578refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121720161026
31578refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121720161026
31596refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121720161026
31598refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121720161026
31602refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121720161026
31614refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
31632refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
31660refgcc -march=barcelona -O -fomit-frame-pointer2016121720161026
31676refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
31684refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121720161026
31696refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
31698refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121720161026
31714refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
31716refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121720161026
31726refgcc -O -fomit-frame-pointer2016121720161026
31762refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121720161026
31818refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121720161026
31826refgcc -march=nocona -O -fomit-frame-pointer2016121720161026
31848refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121720161026
31860refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121720161026
31882refgcc -march=barcelona -O2 -fomit-frame-pointer2016121720161026
31884refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121720161026
31948refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121720161026
31954refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121720161026
31960refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121720161026
31972refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121720161026
31972refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121720161026
32052refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121720161026
32072refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121720161026
32098refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121720161026
32104refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121720161026
32148refgcc -funroll-loops -O -fomit-frame-pointer2016121720161026
32174refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
32192refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121720161026
32214refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121720161026
32220refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121720161026
32224refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121720161026
32268refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121720161026
32282refgcc -march=nocona -O2 -fomit-frame-pointer2016121720161026
32300refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121720161026
32334refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121720161026
32352refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121720161026
32356refgcc -march=k8 -O2 -fomit-frame-pointer2016121720161026
32368refgcc -march=k8 -Os -fomit-frame-pointer2016121720161026
32376refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121720161026
32408refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121720161026
32424refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121720161026
32510refgcc -march=k8 -O -fomit-frame-pointer2016121720161026
32580refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121720161026
32620refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121720161026
32628refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121720161026
32660refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121720161026
32662refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121720161026
32680refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121720161026
32750refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121720161026
32788refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121720161026
32828refgcc -O2 -fomit-frame-pointer2016121720161026
32834refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121720161026
32840refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121720161026
32846refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121720161026
32928refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121720161026
32946refgcc -m64 -O -fomit-frame-pointer2016121720161026
33062refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121720161026
33078refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121720161026
33106refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121720161026
33228refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121720161026
33270refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121720161026
33358refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121720161026
33372refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121720161026
33378refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121720161026
33410refgcc -m64 -O3 -fomit-frame-pointer2016121720161026
33412refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121720161026
33438refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121720161026
33476refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
33770refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121720161026
33782refgcc -O3 -fomit-frame-pointer2016121720161026
33972refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121720161026
34456refgcc -funroll-loops -O3 -fomit-frame-pointer2016121720161026
34604refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121720161026
35616refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121720161026
59010refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121720161026
59680refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121720161026
59790refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121720161026
59808refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121720161026
60078refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121720161026
60176refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121720161026
60494refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121720161026
60790refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121720161026
62814refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121720161026
64500refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121720161026
65904refgcc -funroll-loops2016121720161026
67304refcc2016121720161026
68244refgcc2016121720161026

Compiler output

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

Number of similar (compiler,implementation) pairs: 87, namely:
CompilerImplementations
cc nim
gcc nim
gcc -O2 -fomit-frame-pointer nim
gcc -O3 -fomit-frame-pointer nim
gcc -O -fomit-frame-pointer nim
gcc -Os -fomit-frame-pointer nim
gcc -fno-schedule-insns -O2 -fomit-frame-pointer nim
gcc -fno-schedule-insns -O3 -fomit-frame-pointer nim
gcc -fno-schedule-insns -O -fomit-frame-pointer nim
gcc -fno-schedule-insns -Os -fomit-frame-pointer nim
gcc -funroll-loops nim
gcc -funroll-loops -O2 -fomit-frame-pointer nim
gcc -funroll-loops -O3 -fomit-frame-pointer nim
gcc -funroll-loops -O -fomit-frame-pointer nim
gcc -funroll-loops -Os -fomit-frame-pointer nim
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer nim
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer nim
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer nim
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer nim
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -O -fomit-frame-pointer nim
gcc -funroll-loops -m64 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer nim
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer nim
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer nim
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer nim
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer nim
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer nim
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer nim
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer nim
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer nim
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer nim
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer nim
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer nim
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer nim
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer nim
gcc -m64 -O2 -fomit-frame-pointer nim
gcc -m64 -O3 -fomit-frame-pointer nim
gcc -m64 -O -fomit-frame-pointer nim
gcc -m64 -Os -fomit-frame-pointer nim
gcc -m64 -march=core2 -O2 -fomit-frame-pointer nim
gcc -m64 -march=core2 -O3 -fomit-frame-pointer nim
gcc -m64 -march=core2 -O -fomit-frame-pointer nim
gcc -m64 -march=core2 -Os -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer nim
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer nim
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer nim
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer nim
gcc -m64 -march=corei7 -O -fomit-frame-pointer nim
gcc -m64 -march=corei7 -Os -fomit-frame-pointer nim
gcc -m64 -march=k8 -O2 -fomit-frame-pointer nim
gcc -m64 -march=k8 -O3 -fomit-frame-pointer nim
gcc -m64 -march=k8 -O -fomit-frame-pointer nim
gcc -m64 -march=k8 -Os -fomit-frame-pointer nim
gcc -m64 -march=nocona -O2 -fomit-frame-pointer nim
gcc -m64 -march=nocona -O3 -fomit-frame-pointer nim
gcc -m64 -march=nocona -O -fomit-frame-pointer nim
gcc -m64 -march=nocona -Os -fomit-frame-pointer nim
gcc -march=barcelona -O2 -fomit-frame-pointer nim
gcc -march=barcelona -O3 -fomit-frame-pointer nim
gcc -march=barcelona -O -fomit-frame-pointer nim
gcc -march=barcelona -Os -fomit-frame-pointer nim
gcc -march=k8 -O2 -fomit-frame-pointer nim
gcc -march=k8 -O3 -fomit-frame-pointer nim
gcc -march=k8 -O -fomit-frame-pointer nim
gcc -march=k8 -Os -fomit-frame-pointer nim
gcc -march=nocona -O2 -fomit-frame-pointer nim
gcc -march=nocona -O3 -fomit-frame-pointer nim
gcc -march=nocona -O -fomit-frame-pointer nim
gcc -march=nocona -Os -fomit-frame-pointer nim

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
tiaoxin-optimized.c: tiaoxin-optimized.c:126:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'ssse3'
tiaoxin-optimized.c: W0 = _mm_shuffle_epi8( W0 , perm );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:127:7: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'ssse3'
tiaoxin-optimized.c: W1 = _mm_shuffle_epi8( W1 , perm );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:137:2: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'aes'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:47:46: note: expanded from macro 'UPDATE'
tiaoxin-optimized.c: #define UPDATE( T3 , T4 , T6 , M0 , M1 , M2 )\
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:40:41: note: expanded from macro '\
tiaoxin-optimized.c: RT3'
tiaoxin-optimized.c: #define RT3( T , M ) tmp = T[0];T[0] = enc(T[2],M);T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: expanded from macro 'enc'
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:137:2: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'aes'
tiaoxin-optimized.c: tiaoxin-optimized.c:47:46: note: expanded from macro 'UPDATE'
tiaoxin-optimized.c: #define UPDATE( T3 , T4 , T6 , M0 , M1 , M2 )\
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:40:72: note: expanded from macro '\
tiaoxin-optimized.c: RT3'
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments nim
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments nim
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments nim
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments nim

Compiler output

Implementation: crypto_aead/tiaoxinv2/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
tiaoxin-tablebased.c: tiaoxin-tablebased.c:257:12: warning: comparison of unsigned expression tiaoxin-tablebased.c: if( clen tiaoxin-tablebased.c: ~~~~ ^ ~
tiaoxin-tablebased.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
tiaoxin-optimized.c: tiaoxin-optimized.c:375:11: warning: comparison of unsigned expression tiaoxin-optimized.c: if( clen tiaoxin-optimized.c: ~~~~ ^ ~
tiaoxin-optimized.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments nim
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments nim
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments nim
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments nim

Compiler output

Implementation: crypto_aead/tiaoxinv2/nim
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments
tiaoxin-optimized.c: tiaoxin-optimized.c:137:2: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'aes'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:47:46: note: expanded from macro 'UPDATE'
tiaoxin-optimized.c: #define UPDATE( T3 , T4 , T6 , M0 , M1 , M2 )\
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:40:41: note: expanded from macro '\
tiaoxin-optimized.c: RT3'
tiaoxin-optimized.c: #define RT3( T , M ) tmp = T[0];T[0] = enc(T[2],M);T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: expanded from macro 'enc'
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:137:2: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'aes'
tiaoxin-optimized.c: tiaoxin-optimized.c:47:46: note: expanded from macro 'UPDATE'
tiaoxin-optimized.c: #define UPDATE( T3 , T4 , T6 , M0 , M1 , M2 )\
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:40:72: note: expanded from macro '\
tiaoxin-optimized.c: RT3'
tiaoxin-optimized.c: #define RT3( T , M ) tmp = T[0];T[0] = enc(T[2],M);T[2] = T[1];T[1] = enc(tmp,Z0);T[0] = xor(T[0], tmp);
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:30:19: note: expanded from macro 'enc'
tiaoxin-optimized.c: #define enc(a,b) _mm_aesenc_si128(a,b)
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:137:2: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'tiaoxin_optimized_encrypt' that is compiled without support for 'aes'
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments nim
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments nim

Compiler output

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

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