Implementation notes: aarch64, supercoplxc, crypto_aead/pi16cipher128v2

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: pi16cipher128v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
20768017719 8 033265 928 880goptvgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091020190816
20976016987 8 031193 928 880goptvgcc_-O3_-fomit-frame-pointer2019091020190816
21896018011 8 032992 920 864goptvgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091020190816
22184017855 8 033369 928 880goptvgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091020190816
23240017915 8 032968 920 864goptvgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091020190816
26192017087 8 031273 928 880goptvgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091020190816
26728014691 8 027632 920 864goptvgcc_-O2_-fomit-frame-pointer2019091020190816
32024014635 8 027496 920 864goptvgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091020190816
38176018643 8 034936 920 864goptvgcc_-funroll-loops_-O_-fomit-frame-pointer2019091020190816
38184018643 8 034936 920 864goptvgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091020190816
42424015503 8 028584 920 864goptvgcc_-O_-fomit-frame-pointer2019091020190816
42424015503 8 028584 920 864goptvgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091020190816
7315206491 8 021404 808 888ref3clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091020190816
7738406515 8 021356 808 888ref3clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091020190816
7738406515 8 021412 808 888ref3clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091020190816
7738406515 8 021412 808 888ref3clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091020190816
7738406515 8 021412 808 888ref3clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091020190816
7908808255 8 023156 808 888ref2clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019091020190816
8443207347 8 019558 904 856goptvgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091020190816
8444807347 8 019558 904 856goptvgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091020190816
8472808143 8 022988 808 888ref2clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019091020190816
8473608391 8 023284 808 888ref2clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019091020190816
8473608391 8 023284 808 888ref2clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019091020190816
8481608391 8 023284 808 888ref2clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019091020190816
8823207011 8 019158 904 856goptvgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091020190816
8826407011 8 019158 904 856goptvgcc_-Os_-fomit-frame-pointer2019091020190816
11238408291 8 023809 928 880ref3gcc_-funroll-loops_-O3_-fomit-frame-pointer2019091020190816
11245608447 8 023937 928 880ref3gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091020190816
11255207755 8 021929 928 880ref3gcc_-O3_-fomit-frame-pointer2019091020190816
11304007887 8 022041 928 880ref3gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091020190816
12578408275 8 023296 920 864ref3gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091020190816
12596808171 8 023120 920 864ref3gcc_-funroll-loops_-O2_-fomit-frame-pointer2019091020190816
12939205391 8 018296 920 864ref3gcc_-O2_-fomit-frame-pointer2019091020190816
12996805419 8 018248 920 864ref3gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091020190816
13866404375 8 016422 904 856ref3gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091020190816
13867204375 8 016422 904 856ref3gcc_-Os_-fomit-frame-pointer2019091020190816
13893604375 8 016478 904 856ref3gcc_-funroll-loops_-Os_-fomit-frame-pointer2019091020190816
13893604375 8 016478 904 856ref3gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091020190816
18558407027 8 023304 920 864ref3gcc_-funroll-loops_-O_-fomit-frame-pointer2019091020190816
18619207027 8 023304 920 864ref3gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091020190816
18822404723 8 017776 920 864ref3gcc_-O_-fomit-frame-pointer2019091020190816
18822404723 8 017776 920 864ref3gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091020190816
310352010755 8 024929 928 880ref2gcc_-O3_-fomit-frame-pointer2019091020190816
318312010783 8 026297 928 880ref2gcc_-funroll-loops_-O3_-fomit-frame-pointer2019091020190816
322248010871 8 026361 928 880ref2gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091020190816
340936010831 8 024985 928 880ref2gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091020190816
36516808095 8 023072 920 864ref2gcc_-funroll-loops_-O2_-fomit-frame-pointer2019091020190816
367488012608 8 030273 912 864goptvgcc2019091020190816
367536012608 8 030273 912 864goptvcc2019091020190816
367552012608 8 030273 912 864goptvgcc_-funroll-loops2019091020190816
36936008155 8 023216 920 864ref2gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091020190816
46544805275 8 018216 920 864ref2gcc_-O2_-fomit-frame-pointer2019091020190816
46859207795 8 024080 920 864ref2gcc_-funroll-loops_-O_-fomit-frame-pointer2019091020190816
46872007795 8 024080 920 864ref2gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091020190816
53713604663 8 016774 904 856ref2gcc_-funroll-loops_-Os_-fomit-frame-pointer2019091020190816
53713604663 8 016774 904 856ref2gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091020190816
56519205327 8 018192 920 864ref2gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091020190816
58992804627 8 016686 904 856ref2gcc_-Os_-fomit-frame-pointer2019091020190816
59086404627 8 016686 904 856ref2gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091020190816
68719205047 8 018112 920 864ref2gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091020190816
68816805047 8 018112 920 864ref2gcc_-O_-fomit-frame-pointer2019091020190816
165967207968 8 025545 912 864ref3cc2019091020190816
165969607968 8 025545 912 864ref3gcc_-funroll-loops2019091020190816
165971207968 8 025545 912 864ref3gcc2019091020190816
316779207980 8 025577 912 864ref2gcc2019091020190816
316808007980 8 025577 912 864ref2gcc_-funroll-loops2019091020190816
316884807980 8 025577 912 864ref2cc2019091020190816

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: 48, 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
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -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
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
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -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

Compiler output

Implementation: goptv
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
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 scalar type 'int' and vector type 'vchunk_t' (vector of 4 'word_t' values) as implicit conversion would cause truncation
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 scalar type 'int' and vector type 'vchunk_t' (vector of 4 'word_t' values) as implicit conversion would cause truncation
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 scalar type 'int' and vector type 'vchunk_t' (vector of 4 'word_t' values) as implicit conversion would cause truncation
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:9: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
pi-cipher.c: m_t += __builtin_shuffle(x, g_mask);
pi-cipher.c: ^
pi-cipher.c: pi-cipher.c:305:6: error: cannot convert between scalar type 'int' and vector type 'vchunk_t' (vector of 4 'word_t' values) as implicit conversion would cause truncation
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 scalar type 'int' and vector type 'vchunk_t' (vector of 4 'word_t' values) as implicit conversion would cause truncation
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 scalar type 'int' and vector type 'vchunk_t' (vector of 4 'word_t' values) as implicit conversion would cause truncation
pi-cipher.c: m_t ^= __builtin_shuffle(m_t, m_x_1) ^ __builtin_shuffle(m_t, m_x_2);
pi-cipher.c: ^
pi-cipher.c: pi-cipher.c:354:9: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
pi-cipher.c: ...

Number of similar (compiler,implementation) pairs: 5, 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
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments goptv