Implementation notes: aarch64, hikey960, crypto_aead/pi16cipher096v2

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: pi16cipher096v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
14031619139 8 033427 952 896goptvgcc_-O3_-fomit-frame-pointer2019112920190816
15817519263 8 033507 952 896goptvgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
15817519327 8 035202 944 864goptvgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
17482514431 8 027106 944 864goptvgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
19147519407 8 033691 952 896goptvgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
19878119859 8 035763 952 896goptvgcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
20830018203 8 033794 944 864goptvgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
21047418247 8 033802 944 864goptvgcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
21047414467 8 027186 944 864goptvgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
23386014759 8 027346 944 864goptvgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
24555314675 8 027194 944 864goptvgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
3390975875 8 017694 928 864goptvgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
37387014719 8 027306 944 864goptvgcc_-O2_-fomit-frame-pointer2019112920190816
37387014431 8 027106 944 864goptvgcc_-O_-fomit-frame-pointer2019112920190816
37387019975 8 035851 952 896goptvgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
42094819327 8 035202 944 864goptvgcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
6160507871 8 023771 952 896ref3gcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
65422011891 8 027795 952 896ref2gcc_-funroll-loops_-O3_-fomit-frame-pointer2019112920190816
6576754887 8 017410 944 864ref3gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
6660006039 8 017878 928 864goptvgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
6665016039 8 017878 928 864goptvgcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
6826503519 8 015358 928 864ref3gcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
6993843539 8 015358 928 864ref3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
71187311907 8 026187 952 896ref2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
7409254891 8 017482 944 864ref3gcc_-O2_-fomit-frame-pointer2019112920190816
74768012019 8 026251 952 896ref2gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
7575757299 8 020416 824 880ref3clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112920190816
7575753911 8 016586 944 864ref3gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
7618293911 8 016586 944 864ref3gcc_-O_-fomit-frame-pointer2019112920190816
7717389627 8 022728 824 880ref2clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112920190816
8418968619 8 021736 824 880ref2clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112920190816
8769758023 8 023891 952 896ref3gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
9074257415 8 021691 952 896ref3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019112920190816
9588263519 8 015358 928 864ref3gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
9705193515 8 015334 928 864ref3gcc_-Os_-fomit-frame-pointer2019112920190816
98133011915 8 026203 952 896ref2gcc_-O3_-fomit-frame-pointer2019112920190816
9823508187 8 021288 824 880ref3clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019112920190816
9939055863 8 017678 928 864goptvgcc_-Os_-fomit-frame-pointer2019112920190816
9939055863 8 017678 928 864goptvgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
10156504899 8 017490 944 864ref3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
10656007299 8 020416 824 880ref3clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019112920190816
11198478619 8 021736 824 880ref2clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019112920190816
112158012003 8 027867 952 896ref2gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
11238753919 8 016634 944 864ref3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
12050607991 8 023546 944 864ref3gcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
12071253515 8 015334 928 864ref3gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
12745377207 8 021491 952 896ref3gcc_-O3_-fomit-frame-pointer2019112920190816
136808111256 8 028383 936 864goptvgcc2019112920190816
14265467323 8 021555 952 896ref3gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019112920190816
14265468027 8 023618 944 864ref3gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
14967047299 8 020416 824 880ref3clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112920190816
152782111256 8 028383 936 864goptvcc2019112920190816
15888208619 8 021736 824 880ref2clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019112920190816
16344724523 8 017114 944 864ref2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019112920190816
19615606407 8 022282 944 864ref3gcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
19644247931 8 023522 944 864ref2gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
22333636407 8 022282 944 864ref3gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
27389257083 8 022954 944 864ref2gcc_-funroll-loops_-O_-fomit-frame-pointer2019112920190816
27472507083 8 022954 944 864ref2gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
27722253783 8 015598 928 864ref2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019112920190816
299700011256 8 028383 936 864goptvgcc_-funroll-loops2019112920190816
32051257863 8 023418 944 864ref2gcc_-funroll-loops_-O2_-fomit-frame-pointer2019112920190816
35744286876 8 023999 936 864ref3cc2019112920190816
42993904475 8 017066 944 864ref2gcc_-O2_-fomit-frame-pointer2019112920190816
43872756876 8 023999 936 864ref3gcc_-funroll-loops2019112920190816
45485774151 8 016866 944 864ref2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019112920190816
51032254471 8 016994 944 864ref2gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019112920190816
51215343767 8 015606 928 864ref2gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
51282003767 8 015606 928 864ref2gcc_-funroll-loops_-Os_-fomit-frame-pointer2019112920190816
52780503747 8 015566 928 864ref2gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019112920190816
52870103747 8 015566 928 864ref2gcc_-Os_-fomit-frame-pointer2019112920190816
79667834143 8 016818 944 864ref2gcc_-O_-fomit-frame-pointer2019112920190816
79908304143 8 016818 944 864ref2gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019112920190816
108987346908 8 024031 936 864ref2cc2019112920190816
152827516908 8 024031 936 864ref2gcc_-funroll-loops2019112920190816
153282606908 8 024031 936 864ref2gcc2019112920190816
197611706876 8 023999 936 864ref3gcc2019112920190816

Test failure

Implementation: optimized_nonSSE
Security model: unknown
Compiler: cc
error 111
crypto_aead_encrypt returns more than crypto_aead_ABYTES extra bytes

Number of similar (compiler,implementation) pairs: 54, namely:
CompilerImplementations
cc optimized_nonSSE
clang -O3 -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
gcc optimized_nonSSE
gcc -O2 -fomit-frame-pointer optimized_nonSSE
gcc -O3 -fomit-frame-pointer optimized_nonSSE
gcc -O -fomit-frame-pointer optimized_nonSSE
gcc -Os -fomit-frame-pointer optimized_nonSSE
gcc -fno-schedule-insns -O2 -fomit-frame-pointer optimized_nonSSE
gcc -fno-schedule-insns -O3 -fomit-frame-pointer optimized_nonSSE
gcc -fno-schedule-insns -O -fomit-frame-pointer optimized_nonSSE
gcc -fno-schedule-insns -Os -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops optimized_nonSSE
gcc -funroll-loops -O2 -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -O3 -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -O -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -Os -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer optimized_nonSSE
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer optimized_nonSSE
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv optimized_nonSSE
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv optimized_nonSSE
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv optimized_nonSSE
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv optimized_nonSSE
cc ref
clang -O3 -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
gcc ref
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: goptv
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
pi-cipher.c: pi-cipher.c:273:15: error: cannot convert between vector values of different size ('qword_t' (vector of 4 'word_t' values) and 'uint8_t' (aka 'unsigned char'))
pi-cipher.c: return (x << n) | (x >> ((PI_WORD_SIZE) - n));
pi-cipher.c: ~ ^ ~
pi-cipher.c: pi-cipher.c:273:26: error: cannot convert between vector values of different size ('qword_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: return (x << n) | (x >> ((PI_WORD_SIZE) - n));
pi-cipher.c: ~ ^ ~~~~~~~~~~~~~~~~~~~~
pi-cipher.c: pi-cipher.c:286:9: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
pi-cipher.c: n_t += __builtin_shuffle(y, g_mask);
pi-cipher.c: ^
pi-cipher.c: pi-cipher.c:286:6: error: cannot convert between vector values of different size ('vchunk_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: n_t += __builtin_shuffle(y, g_mask);
pi-cipher.c: ~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi-cipher.c: pi-cipher.c:287:6: error: cannot convert between vector values of different size ('vchunk_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: n_t += __builtin_shuffle(y, n_mask);
pi-cipher.c: ~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi-cipher.c: pi-cipher.c:290:6: error: cannot convert between vector values of different size ('vchunk_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: n_t ^= __builtin_shuffle(n_t, n_x_1) ^ __builtin_shuffle(n_t, n_x_2);
pi-cipher.c: ~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi-cipher.c: pi-cipher.c:305:6: error: cannot convert between vector values of different size ('vchunk_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: m_t += __builtin_shuffle(x, g_mask);
pi-cipher.c: ~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi-cipher.c: pi-cipher.c:306:6: error: cannot convert between vector values of different size ('vchunk_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: m_t += __builtin_shuffle(x, m_mask);
pi-cipher.c: ~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi-cipher.c: pi-cipher.c:309:6: error: cannot convert between vector values of different size ('vchunk_t' (vector of 4 'word_t' values) and 'int')
pi-cipher.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments goptv
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments goptv
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments goptv
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments goptv