Implementation notes: amd64, pmnod003, crypto_aead/aes256gcmv1

Computer: pmnod003
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_aead
Primitive: aes256gcmv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6476940 0 018493 904 896opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
64821448 0 024092 936 864opensslicc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
64861448 0 025192 936 864opensslicc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
6488921 0 016901 888 896opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
64881448 0 025514 936 864opensslicc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
64901448 0 025192 936 864opensslicc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
64921448 0 023848 936 864opensslicc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
64961448 0 025160 936 864opensslicc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
64981448 0 025778 936 928opensslicc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
6510940 0 021242 912 896opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
65121016 0 018341 904 896opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
65121448 0 025346 936 928opensslicc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
65161448 0 025160 936 864opensslicc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
65221448 0 025682 936 928opensslicc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
65221448 0 023904 936 864opensslicc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
65321448 0 025098 936 864opensslicc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
65801448 0 025874 936 928opensslicc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
691620952 0 042559 856 864dolbeau/aesenc-inticc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
71561448 0 024020 936 864opensslicc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
734019000 0 038315 832 896dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
737021160 0 042839 856 864dolbeau/aesenc-inticc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
747012521 0 029110 824 896dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
763419224 0 042589 856 928dolbeau/aesenc-inticc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
775012730 0 029102 824 896dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
788618088 0 040835 856 864dolbeau/aesenc-inticc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
789218088 0 040835 856 864dolbeau/aesenc-inticc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
794818408 0 041509 856 864dolbeau/aesenc-inticc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
823820696 0 042131 856 864dolbeau/aesenc-inticc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
832018072 0 041533 856 928dolbeau/aesenc-inticc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
83746103 0 021174 808 896dolbeau/aesenc-intgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
1260219432 0 042701 856 928dolbeau/aesenc-inticc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
1683820408 0 041899 856 864dolbeau/aesenc-inticc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
1743817928 0 040861 856 928dolbeau/aesenc-inticc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
1748417912 0 040691 856 864dolbeau/aesenc-inticc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
1750017912 0 040691 856 864dolbeau/aesenc-inticc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
1753818216 0 040901 856 864dolbeau/aesenc-inticc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
2293848628 2524 01440571 157063 10952cryptoppicpc_-xCOMMON-AVX512_-O3_-fomit-frame-pointer2019091220190910
2316035359 3040 01393192 148031 10872cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2316248628 2524 01441107 157063 10952cryptoppicpc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
2326448508 2524 01440281 157063 10888cryptoppicpc_-xAVX_-O3_-fomit-frame-pointer2019091220190910
2326448508 2524 01440257 157063 10888cryptoppicpc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
2327048940 2524 01441219 157063 10952cryptoppicpc_-xCORE-AVX512_-O3_-fomit-frame-pointer2019091220190910
2329448780 2524 01439381 157063 10888cryptoppicpc_-xSSE4.1_-O2_-fomit-frame-pointer2019091220190910
2336433614 3040 01387849 148039 10872cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2336648780 2524 01439445 157063 10888cryptoppicpc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
2338848380 2524 01438809 157063 10888cryptoppicpc_-xSSE4.2_-O2_-fomit-frame-pointer2019091220190910
2340213963 3264 01355904 148071 10872cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2346248940 2524 01441323 157063 10952cryptoppicpc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
2349248508 2524 01440281 157063 10888cryptoppicpc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2019091220190910
2352234789 3040 01389972 148031 10872cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
2355248940 2524 01441059 157063 10888cryptoppicpc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
2358248508 2524 01440257 157063 10888cryptoppicpc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
2365648380 2524 01438857 157063 10888cryptoppicpc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
2386448940 2524 01440635 157063 10888cryptoppicpc_-xCORE-AVX2_-O3_-fomit-frame-pointer2019091220190910
18787983379 0 1623443 832 912refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
21943223184 0 1626675 856 880reficc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2019091220190910
22055743184 0 1626675 856 880reficc_-xAVX_-O2_-fomit-frame-pointer2019091220190910
22275942848 0 1625271 856 880reficc_-xSSE4.1_-O3_-fomit-frame-pointer2019091220190910
22445762848 0 1625083 856 880reficc_-xSSE4.2_-O3_-fomit-frame-pointer2019091220190910
23614126416 0 1630261 856 880reficc_-xCORE-AVX2_-O2_-fomit-frame-pointer2019091220190910
23634886344 0 1630549 856 944reficc_-xCOMMON-AVX512_-O2_-fomit-frame-pointer2019091220190910
23715787288 0 1631397 856 944reficc_-xCORE-AVX512_-O2_-fomit-frame-pointer2019091220190910
172261882328 0 1619638 824 912refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
173637442095 0 1619214 824 912refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910
176046041711 0 1617518 808 912refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091220190910

Test failure

Implementation: dolbeau/vaesenc-int
Security model: unknown
Compiler: icc -xAVX -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 21, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xAVX -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX-I -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX-I -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX2 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX2 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX512 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX512 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.1 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.1 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.2 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.2 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xAVX -O3 -fomit-frame-pointer ref
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer ref
icc -xCORE-AVX-I -O3 -fomit-frame-pointer ref
icc -xCORE-AVX2 -O3 -fomit-frame-pointer ref
icc -xCORE-AVX512 -O3 -fomit-frame-pointer ref
icc -xSSE4.1 -O2 -fomit-frame-pointer ref
icc -xSSE4.2 -O2 -fomit-frame-pointer ref

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
aesenc-int.c: aesenc-int.c: In function 'aesni_key256_expand':
aesenc-int.c: aesenc-int.c:40:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
aesenc-int.c: 40 | __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: | |
aesenc-int.c: | const unsigned int *
aesenc-int.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/xmmintrin.h:1255,
aesenc-int.c: from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/emmintrin.h:701:35: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
aesenc-int.c: 701 | _mm_loadu_si128 (__m128i_u const *__P)
aesenc-int.c: | ~~~~~~~~~~~~~~~~~^~~
aesenc-int.c: aesenc-int.c:41:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
aesenc-int.c: 41 | __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aesenc-int.c: | |
aesenc-int.c: | const unsigned int *
aesenc-int.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/xmmintrin.h:1255,
aesenc-int.c: from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:29,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/emmintrin.h:701:35: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
aesenc-int.c: 701 | _mm_loadu_si128 (__m128i_u const *__P)
aesenc-int.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

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: icc -xAVX -O2 -fomit-frame-pointer
aesenc-int.c: aesenc-int.c(40): warning #167: argument of type "const unsigned int *" is incompatible with parameter of type "const union __m128i *"
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^
aesenc-int.c:
aesenc-int.c: aesenc-int.c(41): warning #167: argument of type "const unsigned int *" is incompatible with parameter of type "const union __m128i *"
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^
aesenc-int.c:

Number of similar (compiler,implementation) pairs: 14, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xAVX -O3 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCORE-AVX-I -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCORE-AVX-I -O3 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCORE-AVX2 -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCORE-AVX2 -O3 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCORE-AVX512 -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xCORE-AVX512 -O3 -fomit-frame-pointer dolbeau/aesenc-int
icc -xSSE4.1 -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xSSE4.1 -O3 -fomit-frame-pointer dolbeau/aesenc-int
icc -xSSE4.2 -O2 -fomit-frame-pointer dolbeau/aesenc-int
icc -xSSE4.2 -O3 -fomit-frame-pointer dolbeau/aesenc-int

Compiler output

Implementation: dolbeau/vaesenc-int
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
vaesenc-int.c: vaesenc-int.c: In function 'aesni_encryptv2':
vaesenc-int.c: vaesenc-int.c:260:34: warning: passing argument 1 of '_mm256_load_si256' from incompatible pointer type [-Wincompatible-pointer-types]
vaesenc-int.c: 260 | __m256i nv = _mm256_load_si256((const __m128i *)n);
vaesenc-int.c: | ^~~~~~~~~~~~~~~~~~
vaesenc-int.c: | |
vaesenc-int.c: | const __vector(2) long long int *
vaesenc-int.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:51,
vaesenc-int.c: from vaesenc-int.c:11:
vaesenc-int.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/avxintrin.h:907:35: note: expected 'const __vector(4) long long int *' but argument is of type 'const __vector(2) long long int *'
vaesenc-int.c: 907 | _mm256_load_si256 (__m256i const *__P)
vaesenc-int.c: | ~~~~~~~~~~~~~~~^~~
vaesenc-int.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:121,
vaesenc-int.c: from vaesenc-int.c:11:
vaesenc-int.c: vaesenc-int.c: In function 'mulvv2':
vaesenc-int.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/vpclmulqdqintrin.h:65:1: error: inlining failed in call to always_inline '_mm256_clmulepi64_epi128': target specific option mismatch
vaesenc-int.c: 65 | _mm256_clmulepi64_epi128 (__m256i __A, __m256i __B, const int __C)
vaesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~
vaesenc-int.c: vaesenc-int.c:394:18: note: called from here
vaesenc-int.c: 394 | __m256i tmp6 = _mm256_clmulepi64_epi128(A, B, 0x11);
vaesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vaesenc-int.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:121,
vaesenc-int.c: from vaesenc-int.c:11:
vaesenc-int.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/vpclmulqdqintrin.h:65:1: error: inlining failed in call to always_inline '_mm256_clmulepi64_epi128': target specific option mismatch
vaesenc-int.c: 65 | _mm256_clmulepi64_epi128 (__m256i __A, __m256i __B, const int __C)
vaesenc-int.c: | ^~~~~~~~~~~~~~~~~~~~~~~~
vaesenc-int.c: ...

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

Compiler output

Implementation: dolbeau/vaesenc-int
Security model: unknown
Compiler: icc -xAVX -O2 -fomit-frame-pointer
vaesenc-int.c: vaesenc-int.c(260): warning #167: argument of type "const __m128i *" is incompatible with parameter of type "const union __m256i *"
vaesenc-int.c: __m256i nv = _mm256_load_si256((const __m128i *)n);
vaesenc-int.c: ^
vaesenc-int.c:

Number of similar (compiler,implementation) pairs: 14, namely:
CompilerImplementations
icc -xAVX -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xAVX -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX-I -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX-I -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX2 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX2 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX512 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xCORE-AVX512 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.1 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.1 -O3 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.2 -O2 -fomit-frame-pointer dolbeau/vaesenc-int
icc -xSSE4.2 -O3 -fomit-frame-pointer dolbeau/vaesenc-int