Implementation notes: amd64, utrecht, crypto_aead/aes256gcmv1

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: aes256gcmv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
93420opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
93420opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
93483opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
93618opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
116289cryptoppg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
172773cryptoppg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
172953cryptoppg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
176076cryptoppg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
32815737refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
33299937refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
33486849refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
33701382refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731

Compiler output

Implementation: crypto_aead/aes256gcmv1/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
aesenc-int.c: aesenc-int.c: In function 'aesni_key256_expand':
aesenc-int.c: aesenc-int.c:42:3: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [enabled by default]
aesenc-int.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
aesenc-int.c: ^
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/xmmintrin.h:1246:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/immintrin.h:32,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:682:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
aesenc-int.c: _mm_loadu_si128 (__m128i const *__P)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:43:3: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [enabled by default]
aesenc-int.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
aesenc-int.c: ^
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/xmmintrin.h:1246:0,
aesenc-int.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/immintrin.h:32,
aesenc-int.c: from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:682:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
aesenc-int.c: _mm_loadu_si128 (__m128i const *__P)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:53:9: error: incompatible types when assigning to type '__m128i' from type 'int'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:72:3: note: in expansion of macro 'BLOCK1'
aesenc-int.c: BLOCK1(0x01);
aesenc-int.c: ^
aesenc-int.c: ...

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