Implementation notes: amd64, utrecht, crypto_aead/aes128gcmv1

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: aes128gcmv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
82503opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731
82530opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
82611opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
82683opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
21841218refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080420160731
21960090refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080420160731
22290876refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080420160731
22431555refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080420160731

Compiler output

Implementation: crypto_aead/aes128gcmv1/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
aesenc-int.c: aesenc-int.c: In function 'aesni_key128_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:50:9: error: incompatible types when assigning to type '__m128i' from type 'int'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:60:3: note: in expansion of macro 'BLOCK1'
aesenc-int.c: BLOCK1(0x01);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:50:9: error: incompatible types when assigning to type '__m128i' from type 'int'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:61:3: note: in expansion of macro 'BLOCK1'
aesenc-int.c: BLOCK1(0x02);
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:50:9: error: incompatible types when assigning to type '__m128i' from type 'int'
aesenc-int.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
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