Implementation notes: amd64, gpu, crypto_aead/twine80n6t4clocv2

Computer: gpu
Architecture: amd64
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: twine80n6t4clocv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
9802410204 0 023276 792 1856vpermgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019083020190816
10808420452 0 035860 792 1856vpermgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019083020190816
11013210265 0 027429 760 2080vpermclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
11229210265 0 026661 760 2080vpermclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083020190816
11510420452 0 035860 792 1856vpermgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019083020190816
11955610265 0 027429 760 2080vpermclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019083020190816
11985210068 0 023132 792 1856vpermgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019083020190816
12014025306 0 040508 792 1856vpermgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019083020190816
1206699355 0 022436 792 1856vpermgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019083020190816
12074020412 0 035732 792 1856vpermgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019083020190816
12131610265 0 026661 760 2080vpermclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083020190816
1225209355 0 022436 792 1856vpermgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019083020190816
12490810204 0 023276 792 1856vpermgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019083020190816
12622820452 0 035860 792 1856vpermgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019083020190816
1308889355 0 022436 792 1856vpermgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019083020190816
13237225306 0 040596 792 1856vpermgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019083020190816
1334929251 0 022340 792 1856vpermgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019083020190816
13453625306 0 040660 792 1856vpermgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019083020190816
1351688723 0 020711 768 1824vpermgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019083020190816
1355248667 0 020647 768 1824vpermgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019083020190816
1401968723 0 020711 768 1824vpermgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019083020190816
14625311452 0 024524 792 1856vpermgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019083020190816
1468568723 0 020711 768 1824vpermgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019083020190816
14769225550 0 040884 792 1856vpermgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019083020190816
14812211452 0 024532 792 1856vpermgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019083020190816
14886810204 0 023276 792 1856vpermgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019083020190816
15047711636 0 024708 792 1856vpermgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019083020190816
16454010542 0 023620 792 1856vpermgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019083020190816
16544811452 0 024532 792 1856vpermgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019083020190816
1674529418 0 021399 768 1824vpermgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019083020190816
1686929234 0 021207 768 1824vpermgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019083020190816
1693649234 0 021207 768 1824vpermgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019083020190816
17066810733 0 023812 792 1856vpermgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019083020190816
1812249234 0 021207 768 1824vpermgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019083020190816
18145210542 0 023620 792 1856vpermgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019083020190816
18319210542 0 023620 792 1856vpermgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019083020190816
16348887957 0 428143 768 1168refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
16558408005 0 425903 768 1456refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019083020190816
16563088005 0 425903 768 1456refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
16668327781 0 424911 768 1456refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083020190816
16791127781 0 424911 768 1456refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083020190816
17826407957 0 428143 768 1168refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
18954407957 0 426815 768 1168refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083020190816
19887687957 0 428143 768 1168refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
21557728916 0 423998 776 1248refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019083020190816
21936289032 0 424334 776 1248refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019083020190816
23206529906 0 426149 768 1248refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
23463529488 0 425605 768 1248refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019083020190816
23466209488 0 425605 768 1248refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019083020190816
23482207531 0 420381 768 1248refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083020190816
23551089821 0 425837 768 1248refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019083020190816
235845615318 0 820821 768 1248refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
23737089821 0 425837 768 1248refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019083020190816
24041247515 0 420365 768 1248refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019083020190816
24055609906 0 426149 768 1248refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
240796413180 0 430726 776 1248refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019083020190816
24301449488 0 425605 768 1248refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083020190816
24340647515 0 420365 768 1248refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019083020190816
24362929032 0 424334 776 1248refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019083020190816
24440849308 0 425045 768 1248refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
248026813180 0 430726 776 1248refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019083020190816
248852812936 0 430158 776 1248refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
25217367060 0 419974 776 1248refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019083020190816
25237129345 0 424822 776 1248refgcc_-march=k8_-O3_-fomit-frame-pointer2019083020190816
25240887515 0 420365 768 1248refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019083020190816
25277647587 0 420421 768 1248refgcc_-march=k8_-O2_-fomit-frame-pointer2019083020190816
25322807515 0 420373 768 1248refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019083020190816
254591213180 0 430726 776 1248refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083020190816
25490489308 0 425045 768 1248refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
25583927531 0 420381 768 1248refgcc_-O2_-fomit-frame-pointer2019083020190816
25642808691 0 424854 776 1248refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
257674014326 0 432646 776 1248refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
25795767659 0 420821 768 1248refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
25798049028 0 424246 776 1248refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019083020190816
25817408916 0 424150 776 1248refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019083020190816
25857449060 0 424286 776 1248refgcc_-O3_-fomit-frame-pointer2019083020190816
25892528916 0 424086 776 1248refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019083020190816
26000007060 0 419974 776 1248refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019083020190816
26160649032 0 424334 776 1248refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019083020190816
26162607064 0 419990 776 1248refgcc_-march=k8_-O_-fomit-frame-pointer2019083020190816
262246012936 0 430158 776 1248refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
263268414241 0 432366 776 1248refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019083020190816
26494047318 0 419821 768 1248refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
265381614326 0 432646 776 1248refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
26621687041 0 419942 776 1248refgcc_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
26674929345 0 424822 776 1248refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019083020190816
26717288268 0 423470 776 1248refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019083020190816
26722087587 0 420421 768 1248refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019083020190816
26774327515 0 420373 768 1248refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019083020190816
26777247060 0 419974 776 1248refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019083020190816
267998014241 0 432366 776 1248refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019083020190816
26950528709 0 425014 776 1248refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019083020190816
26995927060 0 419974 776 1248refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019083020190816
27052007044 0 419934 776 1248refgcc_-march=nocona_-O_-fomit-frame-pointer2019083020190816
27090289060 0 424286 776 1248refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083020190816
27164529560 0 425294 776 1248refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
27251488721 0 425094 776 1248refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019083020190816
27292807064 0 419990 776 1248refgcc_-m64_-O_-fomit-frame-pointer2019083020190816
27332167060 0 419974 776 1248refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019083020190816
27349807318 0 419821 768 1248refgcc_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
27426047515 0 420365 768 1248refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019083020190816
27502487064 0 419990 776 1248refgcc_-O_-fomit-frame-pointer2019083020190816
27509368712 0 423622 776 1248refgcc_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
275742019120 0 825294 776 1248refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
27620608691 0 424854 776 1248refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
27678568721 0 425094 776 1248refgcc_-funroll-loops_-O_-fomit-frame-pointer2019083020190816
27687287515 0 420373 768 1248refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019083020190816
27933607060 0 419974 776 1248refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019083020190816
27938527064 0 419990 776 1248refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083020190816
27979967064 0 419990 776 1248refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019083020190816
28010167515 0 420365 768 1248refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019083020190816
28580367531 0 420381 768 1248refgcc_-m64_-O2_-fomit-frame-pointer2019083020190816
28586087060 0 419974 776 1248refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019083020190816
28645729060 0 424286 776 1248refgcc_-m64_-O3_-fomit-frame-pointer2019083020190816
28705607060 0 419974 776 1248refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019083020190816
289454014082 0 819942 776 1248refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
29228008804 0 425038 776 1248refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019083020190816
29702128712 0 423622 776 1248refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
30061808804 0 425038 776 1248refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019083020190816
30138528709 0 425014 776 1248refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019083020190816
30276727044 0 419934 776 1248refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019083020190816
31113686277 0 418129 752 1216refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
31173406130 0 417945 752 1216refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019083020190816
31484126130 0 417945 752 1216refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019083020190816
31552688721 0 425094 776 1248refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083020190816
31644846127 0 417945 752 1216refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019083020190816
32147046277 0 418129 752 1216refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
32627246127 0 417945 752 1216refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019083020190816
33553086127 0 417945 752 1216refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019083020190816
33780406130 0 417945 752 1216refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019083020190816
33906926127 0 417945 752 1216refgcc_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
34547446130 0 417945 752 1216refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019083020190816
34587686127 0 417945 752 1216refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
34900926127 0 417945 752 1216refgcc_-m64_-Os_-fomit-frame-pointer2019083020190816
35010406130 0 417945 752 1216refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019083020190816
35753846127 0 417945 752 1216refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083020190816
35844966127 0 417945 752 1216refgcc_-march=k8_-Os_-fomit-frame-pointer2019083020190816
37023166127 0 417945 752 1216refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
370822412254 0 817945 752 1216refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
37169646277 0 418129 752 1216refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019083020190816
37682446277 0 418129 752 1216refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019083020190816
37826326277 0 418129 752 1216refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
38067366127 0 417945 752 1216refgcc_-Os_-fomit-frame-pointer2019083020190816
39092246277 0 418129 752 1216refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
39303486127 0 417945 752 1216refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019083020190816
40015166277 0 418129 752 1216refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019083020190816
40283286277 0 418129 752 1216refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019083020190816
413161510279 0 424895 768 1184refcc2019083020190816
41922846277 0 418129 752 1216refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083020190816
441595210279 0 424895 768 1184refgcc_-funroll-loops2019083020190816
463288010279 0 424895 768 1184refgcc2019083020190816

Test failure

Implementation: ref
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 ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer vperm
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer vperm
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer vperm

Compiler output

Implementation: vperm
Security model: unknown
Compiler: cc
encrypt.c: In file included from twine.h:7:0,
encrypt.c: from encrypt.c:3:
encrypt.c: twine.h: In function 'Encode':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
encrypt.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:3:0:
encrypt.c: twine.h:174:7: note: called from here
encrypt.c: _tmp = PSHUFB(state, _tmp); \
encrypt.c: ^
encrypt.c: twine.h:228:2: note: in expansion of macro 'twine80_enc'
encrypt.c: twine80_enc(state);
encrypt.c: ^~~~~~~~~~~
encrypt.c: In file included from twine.h:7:0,
encrypt.c: from encrypt.c:3:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
encrypt.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:3:0:
encrypt.c: twine.h:171:8: note: called from here
encrypt.c: right = PSHUFB(state, right); \
encrypt.c: ^
encrypt.c: twine.h:228:2: note: in expansion of macro 'twine80_enc'
encrypt.c: twine80_enc(state);
encrypt.c: ^~~~~~~~~~~
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 71, namely:
CompilerImplementations
cc vperm
gcc vperm
gcc -O2 -fomit-frame-pointer vperm
gcc -O3 -fomit-frame-pointer vperm
gcc -O -fomit-frame-pointer vperm
gcc -Os -fomit-frame-pointer vperm
gcc -fno-schedule-insns -O2 -fomit-frame-pointer vperm
gcc -fno-schedule-insns -O3 -fomit-frame-pointer vperm
gcc -fno-schedule-insns -O -fomit-frame-pointer vperm
gcc -fno-schedule-insns -Os -fomit-frame-pointer vperm
gcc -funroll-loops vperm
gcc -funroll-loops -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -O -fomit-frame-pointer vperm
gcc -funroll-loops -Os -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer vperm
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer vperm
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer vperm
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer vperm
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer vperm
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer vperm
gcc -m64 -O2 -fomit-frame-pointer vperm
gcc -m64 -O3 -fomit-frame-pointer vperm
gcc -m64 -O -fomit-frame-pointer vperm
gcc -m64 -Os -fomit-frame-pointer vperm
gcc -m64 -march=k8 -O2 -fomit-frame-pointer vperm
gcc -m64 -march=k8 -O3 -fomit-frame-pointer vperm
gcc -m64 -march=k8 -O -fomit-frame-pointer vperm
gcc -m64 -march=k8 -Os -fomit-frame-pointer vperm
gcc -m64 -march=nocona -O2 -fomit-frame-pointer vperm
gcc -m64 -march=nocona -O3 -fomit-frame-pointer vperm
gcc -m64 -march=nocona -O -fomit-frame-pointer vperm
gcc -m64 -march=nocona -Os -fomit-frame-pointer vperm
gcc -march=barcelona -O2 -fomit-frame-pointer vperm
gcc -march=barcelona -O3 -fomit-frame-pointer vperm
gcc -march=barcelona -O -fomit-frame-pointer vperm
gcc -march=barcelona -Os -fomit-frame-pointer vperm
gcc -march=k8 -O2 -fomit-frame-pointer vperm
gcc -march=k8 -O3 -fomit-frame-pointer vperm
gcc -march=k8 -O -fomit-frame-pointer vperm
gcc -march=k8 -Os -fomit-frame-pointer vperm
gcc -march=nocona -O2 -fomit-frame-pointer vperm
gcc -march=nocona -O3 -fomit-frame-pointer vperm
gcc -march=nocona -O -fomit-frame-pointer vperm
gcc -march=nocona -Os -fomit-frame-pointer vperm

Compiler output

Implementation: vperm
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: In file included from encrypt.c:3:
encrypt.c: ./twine.h:227:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'Encode' that is compiled without support for 'ssse3'
encrypt.c: word state = LOADS(text);
encrypt.c: ^
encrypt.c: ./twine.h:76:26: note: expanded from macro 'LOADS'
encrypt.c: #define LOADS(p) SHUFFLE4(LOAD64(p)) /* load 64-bit word from memory address p, and shuffle it */
encrypt.c: ^
encrypt.c: ./twine.h:81:3: note: expanded from macro 'SHUFFLE4'
encrypt.c: _mm_shuffle_epi8(MASK4L(x), _mm_set_epi8(7, -1, 6, -1, 5, -1, 4, -1, 3, -1, 2, -1, 1, -1, 0, -1)), \
encrypt.c: ^
encrypt.c: ./twine.h:227:15: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'Encode' that is compiled without support for 'ssse3'
encrypt.c: ./twine.h:76:26: note: expanded from macro 'LOADS'
encrypt.c: #define LOADS(p) SHUFFLE4(LOAD64(p)) /* load 64-bit word from memory address p, and shuffle it */
encrypt.c: ^
encrypt.c: ./twine.h:82:3: note: expanded from macro 'SHUFFLE4'
encrypt.c: _mm_shuffle_epi8(SHR4(MASK4U(x)), _mm_set_epi8(-1, 7, -1, 6, -1, 5, -1, 4, -1, 3, -1, 2, -1, 1, -1, 0)))
encrypt.c: ^
encrypt.c: ./twine.h:228:2: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'Encode' that is compiled without support for 'ssse3'
encrypt.c: twine80_enc(state);
encrypt.c: ^
encrypt.c: ./twine.h:163:9: note: expanded from macro 'twine80_enc'
encrypt.c: left = PSHUFB(state, left); \
encrypt.c: ^
encrypt.c: ./twine.h:70:25: note: expanded from macro 'PSHUFB'
encrypt.c: #define PSHUFB(s,x) _mm_shuffle_epi8((s), (x)) /* return s(x) */
encrypt.c: ...

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

Compiler output

Implementation: vperm
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.c: In file included from twine.h:7:0,
encrypt.c: from encrypt.c:3:
encrypt.c: twine.h: In function 'Encode':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
encrypt.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:3:0:
encrypt.c: twine.h:174:7: note: called from here
encrypt.c: _tmp = PSHUFB(state, _tmp); \
encrypt.c: ^
encrypt.c: twine.h:228:2: note: in expansion of macro 'twine80_enc'
encrypt.c: twine80_enc(state);
encrypt.c: ^~~~~~~~~~~
encrypt.c: In file included from twine.h:7:0,
encrypt.c: from encrypt.c:3:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
encrypt.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:3:0:
encrypt.c: twine.h:171:8: note: called from here
encrypt.c: right = PSHUFB(state, right); \
encrypt.c: ^
encrypt.c: twine.h:228:2: note: in expansion of macro 'twine80_enc'
encrypt.c: twine80_enc(state);
encrypt.c: ^~~~~~~~~~~
encrypt.c: ...
encrypt.c: In file included from twine.h:7:0,
encrypt.c: from encrypt.c:3:
encrypt.c: twine.h: In function 'Encode':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
encrypt.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:3:0:
encrypt.c: twine.h:174:7: note: called from here
encrypt.c: _tmp = PSHUFB(state, _tmp); \
encrypt.c: ^
encrypt.c: twine.h:228:2: note: in expansion of macro 'twine80_enc'
encrypt.c: twine80_enc(state);
encrypt.c: ^~~~~~~~~~~
encrypt.c: In file included from twine.h:7:0,
encrypt.c: from encrypt.c:3:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline '_mm_shuffle_epi8': target specific option mismatch
encrypt.c: _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
encrypt.c: ^~~~~~~~~~~~~~~~
encrypt.c: In file included from encrypt.c:3:0:
encrypt.c: twine.h:171:8: note: called from here
encrypt.c: right = PSHUFB(state, right); \
encrypt.c: ^
encrypt.c: twine.h:228:2: note: in expansion of macro 'twine80_enc'
encrypt.c: twine80_enc(state);
encrypt.c: ^~~~~~~~~~~
encrypt.c: ...

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