Implementation notes: amd64, waldorf, crypto_core/aes256encrypt

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_core
Primitive: aes256encrypt
TimeImplementationCompilerBenchmark dateSUPERCOP version
700dolbeau/std-4ftgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
812dolbeau/std-4ftgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
836dolbeau/std-4ftclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
836dolbeau/std-4ftgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
872dolbeau/std-4ftgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
888dolbeau/std-2ftgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
896dolbeau/std-2ftgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
932dolbeau/std-2ftgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
992dolbeau/std-1ftclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
992dolbeau/std-2ftgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1028dolbeau/std-2ftclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
1072dolbeau/std-1ftgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
1144dolbeau/std-1ftgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
1152dolbeau/std-1ftgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
1156dolbeau/std-1ftgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
1039424refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
1321380refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
2096912refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
2122952refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
2143084refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_core/aes256encrypt/dolbeau/armv8crypto
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
core.c: In file included from core.c:9:
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:28:2: error: "NEON support not enabled"
core.c: #error "NEON support not enabled"
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:48:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t;
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:49:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t;
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:50:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t;
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:51:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t;
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:52:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t;
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:53:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t;
core.c: ^
core.c: /usr/include/clang/3.5.0/include/arm_neon.h:54:24: error: 'neon_vector_type' attribute is not supported for this target
core.c: typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t;
core.c: ^
core.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/armv8crypto

Compiler output

Implementation: crypto_core/aes256encrypt/dolbeau/aesenc-int
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
core.c: core.c:13:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
core.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/include/clang/3.5.0/include/emmintrin.h:1069:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: core.c:14:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
core.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/include/clang/3.5.0/include/emmintrin.h:1069:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: core.c:43:3: warning: implicit declaration of function '_mm_aeskeygenassist_si128' is invalid in C99 [-Wimplicit-function-declaration]
core.c: BLOCK1(0x01);
core.c: ^
core.c: core.c:24:11: note: expanded from macro 'BLOCK1'
core.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
core.c: ^
core.c: core.c:43:3: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
core.c: BLOCK1(0x01);
core.c: ^~~~~~~~~~~~
core.c: core.c:24:9: note: expanded from macro 'BLOCK1'
core.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
core.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: core.c:44:3: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
core.c: ...

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

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
core.c: core.c:1:10: fatal error: 'openssl/aes.h' file not found
core.c: #include gt;
core.c: ^
core.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments openssl

Compiler output

Implementation: crypto_core/aes256encrypt/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
core.c: core.c: In function 'aes256ni_setkey_encrypt':
core.c: core.c:13:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type
core.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
core.c: from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:29,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:692:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
core.c: _mm_loadu_si128 (__m128i const *__P)
core.c: ^
core.c: core.c:14:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type
core.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
core.c: from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:29,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:692:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
core.c: _mm_loadu_si128 (__m128i const *__P)
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:39:0,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
core.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
core.c: ^
core.c: core.c:24:9: error: called from here
core.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

Compiler output

Implementation: crypto_core/aes256encrypt/openssl
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
core.c: core.c:1:25: fatal error: openssl/aes.h: No such file or directory
core.c: #include gt;
core.c: ^
core.c: compilation terminated.

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

Compiler output

Implementation: crypto_core/aes256encrypt/dolbeau/armv8crypto
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
core.c: core.c:9:22: fatal error: arm_neon.h: No such file or directory
core.c: #include gt;
core.c: ^
core.c: compilation terminated.

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