Implementation notes: amd64, cannon, crypto_aead/aeadaes256ocbtaglen128v1

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_aead
Primitive: aeadaes256ocbtaglen128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
558012112 0 031787 848 904optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
564415891 0 035899 848 904optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
570212112 0 031787 848 904optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
587214359 0 034037 824 928optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
595210435 0 029885 808 928dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
618410188 0 029723 832 904dolbeau/aesenc-intclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
618810188 0 029723 832 904dolbeau/aesenc-intclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
625810812 0 030667 832 904dolbeau/aesenc-intclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
71725891 0 022540 800 928dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
75105649 0 022164 800 928dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
76544387 0 019612 784 896dolbeau/aesenc-intgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
134586811 0 023145 840 856optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
147887473 0 024365 824 928optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
157087441 0 024197 824 928optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
187686337 0 021700 800 896optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
2580969107 0 028931 840 928refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
2632268300 0 028209 864 904refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
2633288300 0 028209 864 904refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
2634748620 0 028849 864 904refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
2862283539 0 020554 832 928refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
2862362606 0 019159 856 856refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091020190910
2867463232 0 020114 832 928refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910
2930382052 0 017610 816 896refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091020190910

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:74:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
encrypt.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/lib/clang/8.0.1/include/emmintrin.h:3567:32: note: passing argument to parameter '__p' here
encrypt.c: _mm_loadu_si128(__m128i const *__p)
encrypt.c: ^
encrypt.c: encrypt.c:75:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
encrypt.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/lib/clang/8.0.1/include/emmintrin.h:3567:32: note: passing argument to parameter '__p' here
encrypt.c: _mm_loadu_si128(__m128i const *__p)
encrypt.c: ^
encrypt.c: 2 warnings generated.

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

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: encrypt.c:74:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
encrypt.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/lib/clang/8.0.1/include/emmintrin.h:3567:32: note: passing argument to parameter '__p' here
encrypt.c: _mm_loadu_si128(__m128i const *__p)
encrypt.c: ^
encrypt.c: encrypt.c:75:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
encrypt.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/lib/clang/8.0.1/include/emmintrin.h:3567:32: note: passing argument to parameter '__p' here
encrypt.c: _mm_loadu_si128(__m128i const *__p)
encrypt.c: ^
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: static int ocb_crypt(unsigned char *out, unsigned char *k, unsigned char *n,
encrypt.c: ^
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: encrypt.c:574:12: 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]
encrypt.c: ...

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

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: encrypt.c: In function 'aes256ni_setkey_encrypt':
encrypt.c: encrypt.c:74:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
encrypt.c: 74 | __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: | |
encrypt.c: | const unsigned int *
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/xmmintrin.h:1255,
encrypt.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/immintrin.h:29,
encrypt.c: from encrypt.c:45:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/emmintrin.h:701:35: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
encrypt.c: 701 | _mm_loadu_si128 (__m128i_u const *__P)
encrypt.c: | ~~~~~~~~~~~~~~~~~^~~
encrypt.c: encrypt.c:75:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
encrypt.c: 75 | __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: | |
encrypt.c: | const unsigned int *
encrypt.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/xmmintrin.h:1255,
encrypt.c: from /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/immintrin.h:29,
encrypt.c: from encrypt.c:45:
encrypt.c: /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/emmintrin.h:701:35: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
encrypt.c: 701 | _mm_loadu_si128 (__m128i_u const *__P)
encrypt.c: | ~~~~~~~~~~~~~~~~~^~~

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