Implementation notes: armeabi, pi2, crypto_aead/hs1sivhiv2

Computer: pi2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: hs1sivhiv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
103779fastergcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
106013fastergcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
115646fastergcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
128050fastergcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731
176526refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080620160731
187746refgcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
218350refgcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
243341refgcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
297546refgcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731

Test failure

Implementation: crypto_aead/hs1sivhiv2/faster
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111

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

Compiler output

Implementation: crypto_aead/hs1sivhiv2/dolbeau/armv8crypto
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:192:
encrypt.c: ./c256.h:148:5: warning: implicit declaration of function 'vtrn1q_u32' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ^
encrypt.c: ./c256.h:134:13: note: expanded from macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: t0l = vtrn1q_u32(x_##a,x_##b); \
encrypt.c: ^
encrypt.c: ./c256.h:148:5: error: assigning to 'uint32x4_t' (vector of 4 'uint32_t' values) from incompatible type 'int'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./c256.h:134:11: note: expanded from macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: t0l = vtrn1q_u32(x_##a,x_##b); \
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./c256.h:148:5: warning: implicit declaration of function 'vtrn2q_u32' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: ./c256.h:135:13: note: expanded from macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: t0h = vtrn2q_u32(x_##a,x_##b); \
encrypt.c: ^
encrypt.c: ./c256.h:148:5: error: assigning to 'uint32x4_t' (vector of 4 'uint32_t' values) from incompatible type 'int'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./c256.h:135:11: note: expanded from macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: t0h = vtrn2q_u32(x_##a,x_##b); \
encrypt.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: ./c256.h:148:5: error: assigning to 'uint32x4_t' (vector of 4 'uint32_t' values) from incompatible type 'int'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/hs1sivhiv2/dolbeau/amd64-avx512
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:54:
encrypt.c: In file included from /usr/bin/../lib/clang/3.8.1/include/immintrin.h:27:
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:45:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:69:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:75:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:81:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:87:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:93:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:99:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/bin/../lib/clang/3.8.1/include/mmintrin.h:105:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
encrypt.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/amd64-avx512

Compiler output

Implementation: crypto_aead/hs1sivhiv2/faster
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hs1.c: hs1.c:1033:30: warning: implicitly declaring library function 'malloc' with type 'void *(unsigned int)' [-Wimplicit-function-declaration]
hs1.c: unsigned char *tmp = malloc(abytes);
hs1.c: ^
hs1.c: hs1.c:1033:30: note: include the header gt; or explicitly provide a declaration for 'malloc'
hs1.c: hs1.c:1037:9: warning: implicit declaration of function 'free' is invalid in C99 [-Wimplicit-function-declaration]
hs1.c: free(tmp);
hs1.c: ^
hs1.c: 2 warnings generated.

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

Compiler output

Implementation: crypto_aead/hs1sivhiv2/dolbeau/armv8crypto
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
encrypt.c: In file included from encrypt.c:192:0:
encrypt.c: c256.h: In function 'chacha_noxor368':
encrypt.c: c256.h:134:13: warning: implicit declaration of function 'vtrn1q_u32' [-Wimplicit-function-declaration]
encrypt.c: t0l = vtrn1q_u32(x_##a,x_##b); \
encrypt.c: ^
encrypt.c: c256.h:148:5: note: in expansion of macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: c256.h:134:11: error: incompatible types when assigning to type 'uint32x4_t' from type 'int'
encrypt.c: t0l = vtrn1q_u32(x_##a,x_##b); \
encrypt.c: ^
encrypt.c: c256.h:148:5: note: in expansion of macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: c256.h:135:13: warning: implicit declaration of function 'vtrn2q_u32' [-Wimplicit-function-declaration]
encrypt.c: t0h = vtrn2q_u32(x_##a,x_##b); \
encrypt.c: ^
encrypt.c: c256.h:148:5: note: in expansion of macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: c256.h:135:11: error: incompatible types when assigning to type 'uint32x4_t' from type 'int'
encrypt.c: t0h = vtrn2q_u32(x_##a,x_##b); \
encrypt.c: ^
encrypt.c: c256.h:148:5: note: in expansion of macro 'ONEQUAD_TRANSPOSE_NOXOR'
encrypt.c: ONEQUAD_TRANSPOSE_NOXOR(0,1,2,3);
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/hs1sivhiv2/dolbeau/amd64-avx512
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:54:23: fatal error: immintrin.h: No such file or directory
encrypt.c: #include gt;
encrypt.c: ^
encrypt.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512

Compiler output

Implementation: crypto_aead/hs1sivhiv2/faster
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
hs1.c: hs1.c: In function 'hs1siv_decrypt':
hs1.c: hs1.c:1033:30: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
hs1.c: unsigned char *tmp = malloc(abytes);
hs1.c: ^~~~~~
hs1.c: hs1.c:1033:30: warning: incompatible implicit declaration of built-in function 'malloc'
hs1.c: hs1.c:1033:30: note: include 'gt;' or provide a declaration of 'malloc'
hs1.c: hs1.c:1037:9: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
hs1.c: free(tmp);
hs1.c: ^~~~
hs1.c: hs1.c:1037:9: warning: incompatible implicit declaration of built-in function 'free'
hs1.c: hs1.c:1037:9: note: include 'gt;' or provide a declaration of 'free'

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv faster
gcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv faster
gcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv faster
gcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv faster