Implementation notes: armeabi, pi2, crypto_stream/simon64128ctr

Computer: pi2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_stream
Primitive: simon64128ctr
TimeImplementationCompilerBenchmark dateSUPERCOP version
45561neongcc -mcpu=native -mfpu=neon -Os -fomit-frame-pointer -fwrapv2016080620160731
56942neongcc -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv2016080620160731
64519neongcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv2016080620160731
68165neongcc -mcpu=native -mfpu=neon -O -fomit-frame-pointer -fwrapv2016080620160731

Compiler output

Implementation: crypto_stream/simon64128ctr/avx2
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.c: In file included from stream.c:20:
stream.c: In file included from ./Simon64128AVX2.h:17:
stream.c: In file included from ./Intrinsics_AVX2_64block.h:5:
stream.c: In file included from /usr/bin/../lib/clang/3.8.1/include/x86intrin.h:29:
stream.c: In file included from /usr/bin/../lib/clang/3.8.1/include/immintrin.h:27:
stream.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
stream.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
stream.c: ...

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

Compiler output

Implementation: crypto_stream/simon64128ctr/sse4
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.c: In file included from stream.c:20:
stream.c: In file included from ./Simon64128SSE4.h:17:
stream.c: In file included from ./Intrinsics_SSE4_64block.h:5:
stream.c: In file included from /usr/bin/../lib/clang/3.8.1/include/x86intrin.h:29:
stream.c: In file included from /usr/bin/../lib/clang/3.8.1/include/immintrin.h:27:
stream.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
stream.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
stream.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stream.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
stream.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
stream.c: ...

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

Compiler output

Implementation: crypto_stream/simon64128ctr/neon
Compiler: clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
stream.c: stream.c:42:3: warning: implicit declaration of function 'ExpandKey' is invalid in C99 [-Wimplicit-function-declaration]
stream.c: ExpandKey(K,rk,key);
stream.c: ^
stream.c: stream.c:54:5: warning: implicit declaration of function 'Encrypt' is invalid in C99 [-Wimplicit-function-declaration]
stream.c: Encrypt(out,nonce,rk,key,128);
stream.c: ^
stream.c: stream.c:118:3: error: passing 'long long' to parameter of incompatible type 'uint64x1_t' (vector of 1 'uint64_t' value)
stream.c: SET4(Y[0],nonce[0]);
stream.c: ^~~~~~~~~~~~~~~~~~~
stream.c: ./Intrinsics_NEON_64block.h:23:52: note: expanded from macro 'SET4'
stream.c: #define SET4(X,c) ( X=SET1(X,c), X=ADD(X,(u128)SET(0x0000000200000000LL,0x0000000300000001LL)), c+=4)
stream.c: ^~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/arm_neon.h:4033:41: note: passing argument to parameter '__p0' here
stream.c: __ai uint64x2_t vcombine_u64(uint64x1_t __p0, uint64x1_t __p1) {
stream.c: ^
stream.c: stream.c:123:5: error: passing 'long long' to parameter of incompatible type 'uint64x1_t' (vector of 1 'uint64_t' value)
stream.c: SET4(Y[1],nonce[0]);
stream.c: ^~~~~~~~~~~~~~~~~~~
stream.c: ./Intrinsics_NEON_64block.h:23:52: note: expanded from macro 'SET4'
stream.c: #define SET4(X,c) ( X=SET1(X,c), X=ADD(X,(u128)SET(0x0000000200000000LL,0x0000000300000001LL)), c+=4)
stream.c: ^~~~~~~~~~~~~~~~~~~~
stream.c: /usr/bin/../lib/clang/3.8.1/include/arm_neon.h:4033:41: note: passing argument to parameter '__p0' here
stream.c: __ai uint64x2_t vcombine_u64(uint64x1_t __p0, uint64x1_t __p1) {
stream.c: ^
stream.c: stream.c:127:7: error: passing 'long long' to parameter of incompatible type 'uint64x1_t' (vector of 1 'uint64_t' value)
stream.c: ...

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

Compiler output

Implementation: crypto_stream/simon64128ctr/avx2
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
stream.c: In file included from Simon64128AVX2.h:17:0,
stream.c: from stream.c:20:
stream.c: Intrinsics_AVX2_64block.h:5:23: fatal error: x86intrin.h: No such file or directory
stream.c: #include gt;
stream.c: ^
stream.c: compilation terminated.

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

Compiler output

Implementation: crypto_stream/simon64128ctr/sse4
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
stream.c: In file included from Simon64128SSE4.h:17:0,
stream.c: from stream.c:20:
stream.c: Intrinsics_SSE4_64block.h:5:23: fatal error: x86intrin.h: No such file or directory
stream.c: #include gt;
stream.c: ^
stream.c: compilation terminated.

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

Compiler output

Implementation: crypto_stream/simon64128ctr/neon
Compiler: gcc -mcpu=native -mfpu=neon -O2 -fomit-frame-pointer -fwrapv
stream.c: stream.c: In function 'crypto_stream_simon64128ctr_neon':
stream.c: stream.c:42:3: warning: implicit declaration of function 'ExpandKey' [-Wimplicit-function-declaration]
stream.c: ExpandKey(K,rk,key);
stream.c: ^~~~~~~~~
stream.c: stream.c:54:5: warning: implicit declaration of function 'Encrypt' [-Wimplicit-function-declaration]
stream.c: Encrypt(out,nonce,rk,key,128);
stream.c: ^~~~~~~
stream.c: stream.c: In function 'crypto_stream_simon64128ctr_neon_xor':
stream.c: stream.c:179:5: warning: implicit declaration of function 'Encrypt_Xor' [-Wimplicit-function-declaration]
stream.c: Encrypt_Xor(out,in,nonce,rk,key,128);
stream.c: ^~~~~~~~~~~

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