Implementation notes: aarch64, rockpi4, crypto_aead/tiaoxinv1

Computer: rockpi4
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: tiaoxinv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5616835204 32 050471 952 864tablegcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091320190816
5905936212 32 051863 960 880tablegcc_-funroll-loops_-O3_-fomit-frame-pointer2019091320190816
6071135624 32 049959 960 880tablegcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091320190816
6071135672 32 051351 960 880tablegcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091320190816
6277627760 32 040071 936 856tablegcc_-Os_-fomit-frame-pointer2019091320190816
7847036272 32 050575 960 880tablegcc_-O3_-fomit-frame-pointer2019091320190816
7888336376 32 051511 952 864tablegcc_-funroll-loops_-O2_-fomit-frame-pointer2019091320190816
7929636352 32 049447 952 864tablegcc_-O2_-fomit-frame-pointer2019091320190816
7929636456 32 050863 960 880tablegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091320190816
8177436276 32 049479 952 864tablegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091320190816
10283727760 32 040135 936 856tablegcc_-funroll-loops_-Os_-fomit-frame-pointer2019091320190816
10283727760 32 040135 936 856tablegcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091320190816
11109735200 32 048279 952 864tablegcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091320190816
11151065640 32 087239 936 864tablegcc2019091320190816
11935727944 32 041215 952 864tablegcc_-O_-fomit-frame-pointer2019091320190816
11935728796 32 045287 952 864tablegcc_-funroll-loops_-O_-fomit-frame-pointer2019091320190816
11935728796 32 045287 952 864tablegcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091320190816
11977027944 32 041215 952 864tablegcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091320190816
12142228016 32 041295 952 864tablegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091320190816
12844327760 32 040071 936 856tablegcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091320190816
13092127860 32 040183 936 856tablegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091320190816
35641965640 32 087239 936 864tablegcc_-funroll-loops2019091320190816
38822065640 32 087239 936 864tablecc2019091320190816
342542218008 304 036223 1224 864refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019091320190816
39672789568 304 028327 1232 880refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091320190816
408952617500 304 035855 1224 864refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091320190816
42790939492 304 026967 1232 880refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019091320190816
43278279920 304 028647 1232 880refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019091320190816
44550319492 304 026863 1232 880refgcc_-O3_-fomit-frame-pointer2019091320190816
49047889136 304 026559 1232 880refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019091320190816
53165498804 304 028343 1224 864refgcc_-funroll-loops_-O_-fomit-frame-pointer2019091320190816
53289398804 304 028343 1224 864refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019091320190816
62817306972 304 023151 1224 864refgcc_-O2_-fomit-frame-pointer2019091320190816
90120736964 304 023127 1224 864refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019091320190816
92103137020 304 023311 1224 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019091320190816
95758185024 304 021335 1224 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019091320190816
96712215032 304 021335 1224 864refgcc_-O_-fomit-frame-pointer2019091320190816
97116955032 304 021335 1224 864refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019091320190816
141555754200 304 019367 1208 856refgcc_-Os_-fomit-frame-pointer2019091320190816
152021174200 304 019367 1208 856refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091320190816
152153334200 304 019367 1208 856refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019091320190816
155345824184 304 019399 1208 856refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019091320190816
155428424184 304 019399 1208 856refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019091320190816
269738566716 304 029375 1208 864refcc2019091320190816
365224166716 304 029375 1208 864refgcc2019091320190816
366128636716 304 029375 1208 864refgcc_-funroll-loops2019091320190816

Test failure

Implementation: ref
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
error 111
crypto_aead_decrypt returns nonzero

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
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
clang -O3 -fomit-frame-pointer -Qunused-arguments table
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments table
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments table
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments table
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments table

Compiler output

Implementation: aesnim
Security model: unknown
Compiler: cc
tiaoxin-optimized.c: tiaoxin-optimized.c:20:10: fatal error: xmmintrin.h: No such file or directory
tiaoxin-optimized.c: #include <xmmintrin.h>
tiaoxin-optimized.c: ^~~~~~~~~~~~~
tiaoxin-optimized.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 46, namely:
CompilerImplementations
cc aesnim
gcc aesnim
gcc -O2 -fomit-frame-pointer aesnim
gcc -O3 -fomit-frame-pointer aesnim
gcc -O -fomit-frame-pointer aesnim
gcc -Os -fomit-frame-pointer aesnim
gcc -fno-schedule-insns -O2 -fomit-frame-pointer aesnim
gcc -fno-schedule-insns -O3 -fomit-frame-pointer aesnim
gcc -fno-schedule-insns -O -fomit-frame-pointer aesnim
gcc -fno-schedule-insns -Os -fomit-frame-pointer aesnim
gcc -funroll-loops aesnim
gcc -funroll-loops -O2 -fomit-frame-pointer aesnim
gcc -funroll-loops -O3 -fomit-frame-pointer aesnim
gcc -funroll-loops -O -fomit-frame-pointer aesnim
gcc -funroll-loops -Os -fomit-frame-pointer aesnim
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer aesnim
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer aesnim
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer aesnim
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer aesnim
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv aesnim
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv aesnim
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv aesnim
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv aesnim
cc opt
gcc opt
gcc -O2 -fomit-frame-pointer opt
gcc -O3 -fomit-frame-pointer opt
gcc -O -fomit-frame-pointer opt
gcc -Os -fomit-frame-pointer opt
gcc -fno-schedule-insns -O2 -fomit-frame-pointer opt
gcc -fno-schedule-insns -O3 -fomit-frame-pointer opt
gcc -fno-schedule-insns -O -fomit-frame-pointer opt
gcc -fno-schedule-insns -Os -fomit-frame-pointer opt
gcc -funroll-loops opt
gcc -funroll-loops -O2 -fomit-frame-pointer opt
gcc -funroll-loops -O3 -fomit-frame-pointer opt
gcc -funroll-loops -O -fomit-frame-pointer opt
gcc -funroll-loops -Os -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer opt
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer opt
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv opt
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv opt
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv opt
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv opt

Compiler output

Implementation: aesnim
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
tiaoxin-optimized.c: In file included from tiaoxin-optimized.c:20:
tiaoxin-optimized.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/xmmintrin.h:27:
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
tiaoxin-optimized.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiaoxin-optimized.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:301:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
tiaoxin-optimized.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
tiaoxin-optimized.c: ...

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments aesnim
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments aesnim
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments aesnim
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments aesnim
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments aesnim
clang -O3 -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments opt
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments opt
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments opt