Implementation notes: aarch64, jetsontx1, crypto_aead/aes128gcmv1

Computer: jetsontx1
Architecture: aarch64
CPU ID: unknown CPU ID
SUPERCOP version: 20191017
Operation: crypto_aead
Primitive: aes128gcmv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1060013852 0 027977 760 840dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
1063813852 0 027977 760 840dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
1066014160 0 029727 808 840dolbeau/armv8cryptoarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O2_-fPIC_-fPIE2019101720190910
1076914324 0 029673 760 856dolbeau/armv8cryptoclang_-mcpu=native_-march=armv8a+crypto_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
1079814696 0 031399 808 856dolbeau/armv8cryptoarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O3_-fPIC_-fPIE2019101720190910
19953880 0 017354 888 840opensslarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O2_-fPIC_-fPIE2019101720190910
20146728 0 017034 840 856opensslclang_-mcpu=native_-march=armv8a+crypto_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
20193880 0 018490 888 856opensslarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O3_-fPIC_-fPIE2019101720190910
20203728 0 015818 840 840opensslclang_-mcpu=native_-march=armv8a+crypto_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
20206728 0 013936 832 840opensslclang_-mcpu=native_-march=armv8a+crypto_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
202321096 0 015643 888 848opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
202851056 0 015451 888 848opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
20360728 0 015818 840 840opensslclang_-mcpu=native_-march=armv8a+crypto_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
20404932 0 014263 872 840opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
205421096 0 016896 896 864opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
23946572572 0 1619863 808 856refarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O2_-fPIC_-fPIE2019101720190910
24132462572 0 1620999 808 872refarmclang_-march=armv8a+crypto_-mcpu=cortex-a57_-mtune=cortex-a57_-O3_-fPIC_-fPIE2019101720190910
24349072412 0 1618297 760 856refclang_-mcpu=native_-march=armv8a+crypto_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
24439432412 0 1618297 760 856refclang_-mcpu=native_-march=armv8a+crypto_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
24639632412 0 1619513 760 872refclang_-mcpu=native_-march=armv8a+crypto_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
25229582828 0 1619439 816 888refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
27833651536 0 1615535 752 856refclang_-mcpu=native_-march=armv8a+crypto_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019101720190910
212090631980 0 1617322 808 864refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
217576222164 0 1617370 808 864refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910
234295921748 0 1615878 792 856refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101720190910

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O2 -fPIC -fPIE
armv8crypto.c: armv8crypto.c:245:9: warning: 'vext_p8' macro redefined [-Wmacro-redefined]
armv8crypto.c: #define vext_p8(a,b,c) vreinterpret_p8_u8(vext_u8(vreinterpret_u8_p8(a),vreinterpret_u8_p8(b),c))
armv8crypto.c: ^
armv8crypto.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/clang/7.1.0/include/arm_neon.h:5653:9: note: previous definition is here
armv8crypto.c: #define vext_p8(__p0, __p1, __p2) __extension__ ({ \
armv8crypto.c: ^
armv8crypto.c: armv8crypto.c:246:9: warning: 'vextq_p16' macro redefined [-Wmacro-redefined]
armv8crypto.c: #define vextq_p16(a,b,c) vreinterpretq_p16_u16(vextq_u16(vreinterpretq_u16_p16(a),vreinterpretq_u16_p16(b),c))
armv8crypto.c: ^
armv8crypto.c: /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/clang/7.1.0/include/arm_neon.h:5716:9: note: previous definition is here
armv8crypto.c: #define vextq_p16(__p0, __p1, __p2) __extension__ ({ \
armv8crypto.c: ^
armv8crypto.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O2 -fPIC -fPIE dolbeau/armv8crypto
armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O3 -fPIC -fPIE dolbeau/armv8crypto

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: clang -mcpu=native -march=armv8a+crypto -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
armv8crypto.c: armv8crypto.c:245:9: warning: 'vext_p8' macro redefined [-Wmacro-redefined]
armv8crypto.c: #define vext_p8(a,b,c) vreinterpret_p8_u8(vext_u8(vreinterpret_u8_p8(a),vreinterpret_u8_p8(b),c))
armv8crypto.c: ^
armv8crypto.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/include/arm_neon.h:5653:9: note: previous definition is here
armv8crypto.c: #define vext_p8(__p0, __p1, __p2) __extension__ ({ \
armv8crypto.c: ^
armv8crypto.c: armv8crypto.c:246:9: warning: 'vextq_p16' macro redefined [-Wmacro-redefined]
armv8crypto.c: #define vextq_p16(a,b,c) vreinterpretq_p16_u16(vextq_u16(vreinterpretq_u16_p16(a),vreinterpretq_u16_p16(b),c))
armv8crypto.c: ^
armv8crypto.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/include/arm_neon.h:5716:9: note: previous definition is here
armv8crypto.c: #define vextq_p16(__p0, __p1, __p2) __extension__ ({ \
armv8crypto.c: ^
armv8crypto.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang -mcpu=native -march=armv8a+crypto -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto
clang -mcpu=native -march=armv8a+crypto -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto
clang -mcpu=native -march=armv8a+crypto -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: clang -mcpu=native -march=armv8a+crypto -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
armv8crypto.c: armv8crypto.c:245:9: warning: 'vext_p8' macro redefined [-Wmacro-redefined]
armv8crypto.c: #define vext_p8(a,b,c) vreinterpret_p8_u8(vext_u8(vreinterpret_u8_p8(a),vreinterpret_u8_p8(b),c))
armv8crypto.c: ^
armv8crypto.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/include/arm_neon.h:5653:9: note: previous definition is here
armv8crypto.c: #define vext_p8(__p0, __p1, __p2) __extension__ ({ \
armv8crypto.c: ^
armv8crypto.c: armv8crypto.c:246:9: warning: 'vextq_p16' macro redefined [-Wmacro-redefined]
armv8crypto.c: #define vextq_p16(a,b,c) vreinterpretq_p16_u16(vextq_u16(vreinterpretq_u16_p16(a),vreinterpretq_u16_p16(b),c))
armv8crypto.c: ^
armv8crypto.c: /usr/local/llvm-8.0.1/lib/clang/8.0.1/include/arm_neon.h:5716:9: note: previous definition is here
armv8crypto.c: #define vextq_p16(__p0, __p1, __p2) __extension__ ({ \
armv8crypto.c: ^
armv8crypto.c: armv8crypto.c:664:5: warning: loop not unrolled: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]
armv8crypto.c: int crypto_aead_encrypt(
armv8crypto.c: ^
armv8crypto.c: ./crypto_aead.h:6:29: note: expanded from macro 'crypto_aead_encrypt'
armv8crypto.c: #define crypto_aead_encrypt crypto_aead_aes128gcmv1_encrypt
armv8crypto.c: ^
armv8crypto.c: ./crypto_aead_aes128gcmv1.h:18:41: note: expanded from macro 'crypto_aead_aes128gcmv1_encrypt'
armv8crypto.c: #define crypto_aead_aes128gcmv1_encrypt crypto_aead_aes128gcmv1_dolbeau_armv8crypto_encrypt
armv8crypto.c: ^
armv8crypto.c: armv8crypto.c:664:5: warning: loop not unrolled: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]
armv8crypto.c: ./crypto_aead.h:6:29: note: expanded from macro 'crypto_aead_encrypt'
armv8crypto.c: #define crypto_aead_encrypt crypto_aead_aes128gcmv1_encrypt
armv8crypto.c: ^
armv8crypto.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -march=armv8a+crypto -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto

Compiler output

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
armv8crypto.c: In file included from armv8crypto.c:11:
armv8crypto.c: armv8crypto.c: In function 'aes_armv8_encrypt1':
armv8crypto.c: /opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/gcc/aarch64-linux-gnu/8.2.0/include/arm_neon.h:12426:1: error: inlining failed in call to always_inline 'vaeseq_u8': target specific option mismatch
armv8crypto.c: vaeseq_u8 (uint8x16_t data, uint8x16_t key)
armv8crypto.c: ^~~~~~~~~
armv8crypto.c: armv8crypto.c:82:10: note: called from here
armv8crypto.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
armv8crypto.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
armv8crypto.c: In file included from armv8crypto.c:11:
armv8crypto.c: /opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib/gcc/aarch64-linux-gnu/8.2.0/include/arm_neon.h:12426:1: error: inlining failed in call to always_inline 'vaeseq_u8': target specific option mismatch
armv8crypto.c: vaeseq_u8 (uint8x16_t data, uint8x16_t key)
armv8crypto.c: ^~~~~~~~~
armv8crypto.c: armv8crypto.c:82:10: note: called from here
armv8crypto.c: temp = vaeseq_u8(temp, vld1q_u8((rkeys+144)));
armv8crypto.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE dolbeau/armv8crypto

Namespace violations

Implementation: dolbeau/armv8crypto
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O2 -fPIC -fPIE
armv8crypto.o addmul T
armv8crypto.o mulv T

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O2 -fPIC -fPIE dolbeau/armv8crypto
armclang -march=armv8a+crypto -mcpu=cortex-a57 -mtune=cortex-a57 -O3 -fPIC -fPIE dolbeau/armv8crypto
clang -mcpu=native -march=armv8a+crypto -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto
clang -mcpu=native -march=armv8a+crypto -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto
clang -mcpu=native -march=armv8a+crypto -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/armv8crypto