Implementation notes: amd64, oki, crypto_aead/tiaoxinv2

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_aead
Primitive: tiaoxinv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1922? ? ?? ? ?nimgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2018113020181123
1922? ? ?? ? ?nimgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2018113020181123
1928? ? ?? ? ?nimgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2018113020181123
1932? ? ?? ? ?nimgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2018113020181123
1932? ? ?? ? ?nimgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2018113020181123
1936? ? ?? ? ?nimgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2018113020181123
1954? ? ?? ? ?nimgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2018113020181123
1958? ? ?? ? ?nimgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2018113020181123
1960? ? ?? ? ?nimgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2018113020181123
1964? ? ?? ? ?nimclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2018113020181123
1964? ? ?? ? ?nimgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2018113020181123
1964? ? ?? ? ?nimgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2018113020181123
1966? ? ?? ? ?nimgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2018113020181123
1968? ? ?? ? ?nimgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2018113020181123
1970? ? ?? ? ?nimgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2018113020181123
1972? ? ?? ? ?nimclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2018113020181123
1972? ? ?? ? ?nimgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2018113020181123
1996? ? ?? ? ?nimgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2018113020181123
2006? ? ?? ? ?nimgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2018113020181123
2008? ? ?? ? ?nimgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2018113020181123
2146? ? ?? ? ?nimgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2018113020181123
2152? ? ?? ? ?nimgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2018113020181123
30600? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2018113020181123
30618? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2018113020181123
30710? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2018113020181123
30738? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2018113020181123
30742? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2018113020181123
30744? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2018113020181123
30766? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2018113020181123
30782? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2018113020181123
30818? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2018113020181123
30828? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2018113020181123
30856? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2018113020181123
30868? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2018113020181123
30888? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2018113020181123
30918? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2018113020181123
30940? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2018113020181123
30990? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2018113020181123
31004? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2018113020181123
31010? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2018113020181123
31078? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2018113020181123
32800? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2018113020181123
32982? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2018113020181123
33000? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2018113020181123
33042? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2018113020181123
33042? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2018113020181123
33054? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2018113020181123
33122? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2018113020181123
33162? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2018113020181123
35338? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2018113020181123
35360? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2018113020181123
35380? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2018113020181123
35388? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2018113020181123
35394? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2018113020181123
35400? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2018113020181123
35402? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2018113020181123
35418? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2018113020181123
35420? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2018113020181123
35422? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2018113020181123
35468? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2018113020181123
35474? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2018113020181123
35480? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2018113020181123
35498? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2018113020181123
35636? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2018113020181123
35654? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2018113020181123
35678? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2018113020181123
35722? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2018113020181123
35726? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2018113020181123
35766? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2018113020181123
35768? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2018113020181123
35774? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2018113020181123
35786? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2018113020181123
35802? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2018113020181123
35852? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2018113020181123
35926? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2018113020181123
36054? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2018113020181123
36060? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2018113020181123
36074? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2018113020181123
36100? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2018113020181123
36230? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2018113020181123
36360? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2018113020181123
36370? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2018113020181123
36412? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2018113020181123
36416? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2018113020181123
36420? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2018113020181123
36430? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2018113020181123
36436? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2018113020181123
36500? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2018113020181123
36562? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2018113020181123
36598? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2018113020181123
36850? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2018113020181123
36890? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2018113020181123
37068? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2018113020181123
37088? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2018113020181123
37150? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2018113020181123
37192? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2018113020181123
37678? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2018113020181123
38052? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2018113020181123
38054? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2018113020181123
38166? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2018113020181123
38252? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2018113020181123
38266? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2018113020181123
38298? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2018113020181123
42218? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2018113020181123
42302? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2018113020181123
42326? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2018113020181123
42340? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2018113020181123
42344? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2018113020181123
42350? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2018113020181123
42372? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2018113020181123
42398? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2018113020181123
42410? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2018113020181123
42418? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2018113020181123
42434? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2018113020181123
42438? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2018113020181123
42446? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2018113020181123
42492? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2018113020181123
42496? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2018113020181123
42510? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2018113020181123
42516? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2018113020181123
42518? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2018113020181123
42544? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2018113020181123
42554? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2018113020181123
42582? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2018113020181123
42694? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2018113020181123
42710? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2018113020181123
42722? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2018113020181123
42752? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2018113020181123
42804? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2018113020181123
42930? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2018113020181123
59642? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2018113020181123
59664? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2018113020181123
59708? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2018113020181123
59744? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2018113020181123
60204? ? ?? ? ?refclang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2018113020181123
60246? ? ?? ? ?refclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2018113020181123
60246? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2018113020181123
60266? ? ?? ? ?refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2018113020181123
63116? ? ?? ? ?refcc2018113020181123
65286? ? ?? ? ?refgcc2018113020181123
65358? ? ?? ? ?refgcc_-funroll-loops2018113020181123

Compiler output

Implementation: nim
Security model: unknown
Compiler: cc
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:22:0:
tiaoxin-optimized.c: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
tiaoxin-optimized.c: # error "AES/PCLMUL instructions not enabled"
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:23:0:
tiaoxin-optimized.c: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/tmmintrin.h:31:3: error: #error "SSSE3 instruction set not enabled"
tiaoxin-optimized.c: # error "SSSE3 instruction set not enabled"
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c: In function 'tiaoxin_optimized_encrypt':
tiaoxin-optimized.c: tiaoxin-optimized.c:126:5: error: incompatible types when assigning to type '__m128i' from type 'int'
tiaoxin-optimized.c: W0 = _mm_shuffle_epi8( W0 , perm );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:127:5: error: incompatible types when assigning to type '__m128i' from type 'int'
tiaoxin-optimized.c: W1 = _mm_shuffle_epi8( W1 , perm );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:40:39: error: incompatible types when assigning to type '__m128i' from type 'int'
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:48:1: note: in expansion of macro 'RT3'
tiaoxin-optimized.c: RT3( T3, M0 );\
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:137:2: note: in expansion of macro 'UPDATE'
tiaoxin-optimized.c: UPDATE( T3 , T4 , T6, Z0 , Z1 , Z0 );
tiaoxin-optimized.c: ^
tiaoxin-optimized.c: tiaoxin-optimized.c:40:70: error: incompatible types when assigning to type '__m128i' from type 'int'
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc nim

Compiler output

Implementation: nim
Security model: unknown
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: nim
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
tiaoxin-optimized.c: tiaoxin-optimized.c:375:11: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
tiaoxin-optimized.c: if( clen < 0 )
tiaoxin-optimized.c: ~~~~ ^ ~
tiaoxin-optimized.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0xd54040: v4i64 = X86ISD::VTRUNC 0xd53e70
try.c: 0xd53e70: v16i32 = vselect 0xd5ce20, 0xcbae70, 0xd53d40
try.c: 0xd5ce20: v4i1 = X86ISD::PCMPGTM 0xd3e940, 0xcbbc20
try.c: 0xd3e940: v4i64 = X86ISD::VBROADCAST 0xcbbfb0
try.c: 0xcbbfb0: i64,ch = load<LD8[%uglygep72]> 0xc38dd0, 0xcc0130, undef:i64
try.c: 0xcc0130: i64 = add 0xd3f820, 0xcddae0
try.c: 0xd3f820: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0xd2fb40: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0xcddae0: i64 = shl 0xd2f2f0, Constant:i8<3>
try.c: 0xd2f2f0: i64,ch = CopyFromReg 0xc38dd0, Register:i64 %vreg50
try.c: 0xd3fce0: i64 = Register %vreg50
try.c: 0xd003a0: i8 = Constant<3>
try.c: 0xd3cfb0: i64 = undef
try.c: 0xcbbc20: v4i64,ch = CopyFromReg 0xc38dd0, Register:v4i64 %vreg13
try.c: 0xcd9b80: v4i64 = Register %vreg13
try.c: 0xcbae70: v16i32 = X86ISD::VBROADCAST 0xd2f550
try.c: 0xd2f550: i32,ch = load<LD4[ConstantPool]> 0xc38dd0, 0xd539b0, undef:i64
try.c: 0xd539b0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0xcd4f80: i64 = TargetConstantPool<i32 1> 0
try.c: 0xd3cfb0: i64 = undef
try.c: 0xd53d40: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0xd53c10: i32 = Constant<0>
try.c: 0xd53c10: i32 = Constant<0>
try.c: 0xd53c10: i32 = Constant<0>
try.c: 0xd53c10: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments nim

Compiler output

Implementation: nim
Security model: unknown
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments
tiaoxin-optimized.c: tiaoxin-optimized.c:375:11: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
tiaoxin-optimized.c: if( clen < 0 )
tiaoxin-optimized.c: ~~~~ ^ ~
tiaoxin-optimized.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
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

Compiler output

Implementation: nim
Security model: unknown
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: nim
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
tiaoxin-optimized.c: tiaoxin-optimized.c:375:11: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
tiaoxin-optimized.c: if( clen < 0 )
tiaoxin-optimized.c: ~~~~ ^ ~
tiaoxin-optimized.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x2404370: v4i64 = X86ISD::VTRUNC 0x24041a0
try.c: 0x24041a0: v16i32 = vselect 0x23fbc80, 0x2394980, 0x2404070
try.c: 0x23fbc80: v4i1 = X86ISD::PCMPGTM 0x23eec70, 0x2395730
try.c: 0x23eec70: v4i64 = X86ISD::VBROADCAST 0x2395ac0
try.c: 0x2395ac0: i64,ch = load<LD8[%uglygep72]> 0x22e8db0, 0x2339c50, undef:i64
try.c: 0x2339c50: i64 = add 0x23efb50, 0x2391240
try.c: 0x23efb50: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x23dd9b0: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x2391240: i64 = shl 0x23dd160, Constant:i8<3>
try.c: 0x23dd160: i64,ch = CopyFromReg 0x22e8db0, Register:i64 %vreg50
try.c: 0x23f0010: i64 = Register %vreg50
try.c: 0x238ec10: i8 = Constant<3>
try.c: 0x23ed2e0: i64 = undef
try.c: 0x2395730: v4i64,ch = CopyFromReg 0x22e8db0, Register:v4i64 %vreg13
try.c: 0x239d2c0: v4i64 = Register %vreg13
try.c: 0x2394980: v16i32 = X86ISD::VBROADCAST 0x23dd3c0
try.c: 0x23dd3c0: i32,ch = load<LD4[ConstantPool]> 0x22e8db0, 0x2403ce0, undef:i64
try.c: 0x2403ce0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x239a5d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x23ed2e0: i64 = undef
try.c: 0x2404070: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x2403f40: i32 = Constant<0>
try.c: 0x2403f40: i32 = Constant<0>
try.c: 0x2403f40: i32 = Constant<0>
try.c: 0x2403f40: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments nim

Compiler output

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

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

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
tiaoxin-tablebased.c: tiaoxin-tablebased.c:257:12: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
tiaoxin-tablebased.c: if( clen < 0 )
tiaoxin-tablebased.c: ~~~~ ^ ~
tiaoxin-tablebased.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -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 -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: ref
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
tiaoxin-tablebased.c: tiaoxin-tablebased.c:257:12: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
tiaoxin-tablebased.c: if( clen < 0 )
tiaoxin-tablebased.c: ~~~~ ^ ~
tiaoxin-tablebased.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x2965a50: v4i64 = X86ISD::VTRUNC 0x2965880
try.c: 0x2965880: v16i32 = vselect 0x2957bb0, 0x28e61a0, 0x2965750
try.c: 0x2957bb0: v4i1 = X86ISD::PCMPGTM 0x2951360, 0x28e6f50
try.c: 0x2951360: v4i64 = X86ISD::VBROADCAST 0x28e72e0
try.c: 0x28e72e0: i64,ch = load<LD8[%uglygep72]> 0x284add0, 0x293e130, undef:i64
try.c: 0x293e130: i64 = add 0x2952240, 0x28dd480
try.c: 0x2952240: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x2948e70: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x28dd480: i64 = shl 0x2948620, Constant:i8<3>
try.c: 0x2948620: i64,ch = CopyFromReg 0x284add0, Register:i64 %vreg50
try.c: 0x2952700: i64 = Register %vreg50
try.c: 0x28cccd0: i8 = Constant<3>
try.c: 0x294f9d0: i64 = undef
try.c: 0x28e6f50: v4i64,ch = CopyFromReg 0x284add0, Register:v4i64 %vreg13
try.c: 0x2901d30: v4i64 = Register %vreg13
try.c: 0x28e61a0: v16i32 = X86ISD::VBROADCAST 0x2948880
try.c: 0x2948880: i32,ch = load<LD4[ConstantPool]> 0x284add0, 0x29653c0, undef:i64
try.c: 0x29653c0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x28ff850: i64 = TargetConstantPool<i32 1> 0
try.c: 0x294f9d0: i64 = undef
try.c: 0x2965750: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x2965620: i32 = Constant<0>
try.c: 0x2965620: i32 = Constant<0>
try.c: 0x2965620: i32 = Constant<0>
try.c: 0x2965620: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
tiaoxin-tablebased.c: tiaoxin-tablebased.c:257:12: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
tiaoxin-tablebased.c: if( clen < 0 )
tiaoxin-tablebased.c: ~~~~ ^ ~
tiaoxin-tablebased.c: 1 warning generated.
try.c: fatal error: error in backend: Cannot select: 0x1c3c050: v4i64 = X86ISD::VTRUNC 0x1c3be80
try.c: 0x1c3be80: v16i32 = vselect 0x1c33a50, 0x1bc6b40, 0x1c3bd50
try.c: 0x1c33a50: v4i1 = X86ISD::PCMPGTM 0x1c25990, 0x1bc78f0
try.c: 0x1c25990: v4i64 = X86ISD::VBROADCAST 0x1bc7c80
try.c: 0x1bc7c80: i64,ch = load<LD8[%uglygep72]> 0x1b20dd0, 0x1be05b0, undef:i64
try.c: 0x1be05b0: i64 = add 0x1c26870, 0x1bc89d0
try.c: 0x1c26870: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1bb9c70: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1bc89d0: i64 = shl 0x1bb9420, Constant:i8<3>
try.c: 0x1bb9420: i64,ch = CopyFromReg 0x1b20dd0, Register:i64 %vreg50
try.c: 0x1c26d30: i64 = Register %vreg50
try.c: 0x1be9550: i8 = Constant<3>
try.c: 0x1c237f0: i64 = undef
try.c: 0x1bc78f0: v4i64,ch = CopyFromReg 0x1b20dd0, Register:v4i64 %vreg13
try.c: 0x1bc04f0: v4i64 = Register %vreg13
try.c: 0x1bc6b40: v16i32 = X86ISD::VBROADCAST 0x1bb9680
try.c: 0x1bb9680: i32,ch = load<LD4[ConstantPool]> 0x1b20dd0, 0x1c3b9c0, undef:i64
try.c: 0x1c3b9c0: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1bd8700: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1c237f0: i64 = undef
try.c: 0x1c3bd50: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x1c3bc20: i32 = Constant<0>
try.c: 0x1c3bc20: i32 = Constant<0>
try.c: 0x1c3bc20: i32 = Constant<0>
try.c: 0x1c3bc20: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref