Implementation notes: amd64, gpu, crypto_aead/tiaoxinv2

Computer: gpu
Architecture: amd64
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: tiaoxinv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
473610408 0 027301 784 928nimgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019083020190816
486010145 0 031397 760 1160nimclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
489210508 0 027181 784 928nimgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019083020190816
50728133 0 023424 760 896nimgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019083020190816
510410408 0 027301 784 928nimgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019083020190816
510810408 0 029549 784 928nimgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019083020190816
516810508 0 027181 784 928nimgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019083020190816
517210508 0 027181 784 928nimgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019083020190816
524010508 0 027181 784 928nimgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019083020190816
536010408 0 029645 784 928nimgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019083020190816
53608133 0 023424 760 896nimgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019083020190816
545210145 0 030613 760 1160nimclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083020190816
553210408 0 027301 784 928nimgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019083020190816
55448133 0 023424 760 896nimgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019083020190816
56008133 0 023424 760 896nimgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019083020190816
578810145 0 031397 760 1160nimclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019083020190816
590010408 0 029645 784 928nimgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019083020190816
597610408 0 029645 784 928nimgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019083020190816
604810408 0 027301 784 928nimgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019083020190816
6790035026 32 051269 824 928refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019083020190816
6849667824 64 046821 824 928refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
6906432220 32 045157 824 928refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019083020190816
6958834274 32 047221 824 928refgcc_-m64_-O_-fomit-frame-pointer2019083020190816
6994434388 32 047293 824 928refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019083020190816
7019234162 32 047093 824 928refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019083020190816
7031634388 32 047293 824 928refgcc_-march=nocona_-O_-fomit-frame-pointer2019083020190816
7061232220 32 045157 824 928refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019083020190816
7155634162 32 047093 824 928refgcc_-march=k8_-O_-fomit-frame-pointer2019083020190816
7226432596 32 045525 824 928refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019083020190816
7230834912 32 051293 824 928refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019083020190816
7277234332 32 047269 824 928refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019083020190816
7282834518 32 050669 824 928refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
7296434759 32 051085 824 928refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019083020190816
7323234274 32 047221 824 928refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083020190816
7329651013 32 067109 824 928refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019083020190816
7380434274 32 047221 824 928refgcc_-O_-fomit-frame-pointer2019083020190816
7392832220 32 045157 824 928refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019083020190816
7462832596 32 045525 824 928refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019083020190816
7618851000 32 069101 824 928refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019083020190816
7663635026 32 051269 824 928refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019083020190816
7689650213 32 063125 824 928refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083020190816
77176100278 64 063341 824 928refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
7757234518 32 050669 824 928refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
7762034912 32 051293 824 928refgcc_-funroll-loops_-O_-fomit-frame-pointer2019083020190816
7773650213 32 063125 824 928refgcc_-O2_-fomit-frame-pointer2019083020190816
7796432538 32 045477 824 928refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019083020190816
7822848614 32 061525 824 928refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019083020190816
7836848524 32 061429 824 928refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019083020190816
7837634759 32 051085 824 928refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019083020190816
7838851013 32 067109 824 928refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019083020190816
7842051026 32 067221 824 928refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083020190816
7863650294 32 063229 824 928refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019083020190816
7870450170 32 065309 824 928refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019083020190816
7896451065 32 066861 824 928refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
7917250443 32 065885 824 928refgcc_-march=k8_-O3_-fomit-frame-pointer2019083020190816
7927234912 32 051293 824 928refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083020190816
7958832220 32 045157 824 928refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019083020190816
7963650213 32 063125 824 928refgcc_-m64_-O2_-fomit-frame-pointer2019083020190816
8006450235 32 062821 824 928refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
8016448573 32 061477 824 928refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019083020190816
8057248573 32 061477 824 928refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019083020190816
8058051026 32 067221 824 928refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019083020190816
8105634717 32 046576 800 896refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019083020190816
8147646498 32 061749 824 928refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019083020190816
8148450123 32 063037 824 928refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019083020190816
8162050123 32 063037 824 928refgcc_-march=k8_-O2_-fomit-frame-pointer2019083020190816
8166051037 32 067285 824 928refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
8184433912 32 046821 824 928refgcc_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
8248451032 32 069261 824 928refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
8275650139 32 063341 824 928refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
8299634913 32 046752 800 896refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019083020190816
8349636850 32 048688 800 896refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019083020190816
8470450443 32 065885 824 928refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019083020190816
8480834717 32 046576 800 896refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019083020190816
8551651000 32 069101 824 928refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019083020190816
8592434775 32 046624 800 896refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019083020190816
8595636850 32 048688 800 896refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019083020190816
8656853203 32 070373 824 928refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
8672448752 32 061693 824 928refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019083020190816
8684851032 32 069261 824 928refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
86948100886 64 066077 824 928refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
8720850443 32 066077 824 928refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
8730452777 32 067957 824 928refgcc_-m64_-O3_-fomit-frame-pointer2019083020190816
8780434913 32 046752 800 896refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019083020190816
8780848752 32 061693 824 928refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019083020190816
8783637048 32 048920 800 896refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
8799251037 32 067285 824 928refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
8807250235 32 062821 824 928refgcc_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
8855636717 32 048560 800 896refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083020190816
8878453748 32 071253 824 928refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083020190816
8925246498 32 061749 824 928refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019083020190816
8925652137 32 067013 824 928refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
8931648573 32 061477 824 928refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019083020190816
8978434717 32 046576 800 896refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019083020190816
8985251065 32 066861 824 928refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
9004052291 32 067485 824 928refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019083020190816
9012037050 32 048936 800 896refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019083020190816
9047252777 32 067957 824 928refgcc_-O3_-fomit-frame-pointer2019083020190816
9126852137 32 067013 824 928refgcc_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
9128036937 32 048808 800 896refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019083020190816
9134451026 32 067221 824 928refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019083020190816
9166446416 32 061573 824 928refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019083020190816
9166873492 64 048592 800 896refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
9168450170 32 065373 824 928refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019083020190816
9178850023 32 065061 824 928refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019083020190816
9199636850 32 048688 800 896refgcc_-march=k8_-Os_-fomit-frame-pointer2019083020190816
9208437048 32 048920 800 896refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
9239636717 32 048560 800 896refgcc_-m64_-Os_-fomit-frame-pointer2019083020190816
9304446498 32 061749 824 928refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019083020190816
9321636937 32 048808 800 896refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019083020190816
9336834591 32 046448 800 896refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019083020190816
9344836848 32 048688 800 896refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
9347236717 32 048560 800 896refgcc_-Os_-fomit-frame-pointer2019083020190816
9432436947 32 048824 800 896refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
9434036746 32 048592 800 896refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
9482053748 32 071253 824 928refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019083020190816
9527236947 32 048824 800 896refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
9547653203 32 070373 824 928refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
9594836848 32 048688 800 896refgcc_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
9802052777 32 067957 824 928refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083020190816
10170853748 32 071253 824 928refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019083020190816
10271236937 32 048808 800 896refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083020190816
10534837050 32 048936 800 896refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019083020190816
11595659273 32 077021 800 1160refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019083020190816
12074859199 32 079245 800 872refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
12388859273 32 076253 800 1160refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083020190816
12594459273 32 077021 800 1160refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
12803259199 32 079245 800 872refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
13242059199 32 079245 800 872refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
13472059347 32 078061 800 872refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083020190816
14200859273 32 076253 800 1160refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083020190816
16746465430 32 079983 808 888refgcc_-funroll-loops2019083020190816
17850065430 32 079983 808 888refcc2019083020190816
19422865430 32 079983 808 888refgcc2019083020190816

Test failure

Implementation: nim
Security model: unknown
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

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

Compiler output

Implementation: nim
Security model: unknown
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-linux-gnu/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/lib/gcc/x86_64-linux-gnu/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: 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: 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 -mavx -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: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments 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/lib/gcc/x86_64-linux-gnu/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/lib/gcc/x86_64-linux-gnu/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/lib/gcc/x86_64-linux-gnu/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/lib/gcc/x86_64-linux-gnu/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