Implementation notes: armeabi, novena, crypto_kem/firesaber2

Computer: novena
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20220506
Operation: crypto_kem
Primitive: firesaber2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
kem.c: In file included from kem.c:1:
kem.c: In file included from /usr/lib/llvm-11/lib/clang/11.0.1/include/immintrin.h:15:
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:50:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:129:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:159:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:189:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:216:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:239:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:260:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
kem.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kem.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/mmintrin.h:287:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
kem.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
kem.c: ...

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2_nttmul
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2_nttmul
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2_nttmul
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2_nttmul
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2_nttmul

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
kem.c: kem.c:1:10: fatal error: immintrin.h: No such file or directory
kem.c: 1 | #include <immintrin.h>
kem.c: | ^~~~~~~~~~~~~
kem.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2_nttmul
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2_nttmul
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2_nttmul
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2_nttmul

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly.c: poly.c:19:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf,SABER_N,nonce,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: poly.c:34:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf0,SABER_N,nonce0,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: 2 warnings generated.
SABER_indcpa.c: In file included from SABER_indcpa.c:28:
SABER_indcpa.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
SABER_indcpa.c: #error "NEON support not enabled"
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from SABER_indcpa.c:35:
SABER_indcpa.c: In file included from ./polymul/toom_cook_4/asimd_toom_cook_4way_neon.c:22:
SABER_indcpa.c: In file included from ./polymul/toom_cook_4/batch_64coefficient_multiplications.c:26:
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:28:3: error: unknown type name 'uint16x8_t'; did you mean 'uint16_t'?
SABER_indcpa.c: uint16x8_t y0, y1, y2, y3, y4, y5, y6, y7, y8;
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: uint16_t
SABER_indcpa.c: /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h:25:20: note: 'uint16_t' declared here
SABER_indcpa.c: typedef __uint16_t uint16_t;
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from SABER_indcpa.c:35:
SABER_indcpa.c: In file included from ./polymul/toom_cook_4/asimd_toom_cook_4way_neon.c:22:
SABER_indcpa.c: In file included from ./polymul/toom_cook_4/batch_64coefficient_multiplications.c:26:
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:29:3: error: unknown type name 'uint16x8_t'; did you mean 'uint16_t'?
SABER_indcpa.c: uint16x8_t y9, y10, y11, y12, y13, y14, y15, y16, y17;
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: uint16_t
SABER_indcpa.c: /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h:25:20: note: 'uint16_t' declared here
SABER_indcpa.c: typedef __uint16_t uint16_t;
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from SABER_indcpa.c:35:
SABER_indcpa.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly.c: poly.c:19:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf,SABER_N,nonce,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: poly.c:34:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf0,SABER_N,nonce0,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: 2 warnings generated.
SABER_indcpa.c: In file included from SABER_indcpa.c:35:
SABER_indcpa.c: In file included from ./polymul/toom_cook_4/asimd_toom_cook_4way_neon.c:22:
SABER_indcpa.c: In file included from ./polymul/toom_cook_4/batch_64coefficient_multiplications.c:26:
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:42:9: warning: implicit declaration of function 'vtrn1q_u16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: ^
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:42:7: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:43:9: warning: implicit declaration of function 'vtrn2q_u16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: ^
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:43:7: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:44:7: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y18 = vtrn1q_u16(y2, y3);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:45:7: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y19 = vtrn2q_u16(y2, y3);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:46:22: warning: implicit declaration of function 'vtrn1q_u32' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: y24 = (uint16x8_t) vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
SABER_indcpa.c: ^
SABER_indcpa.c: ./polymul/toom_cook_4/asimd_matrix.c:46:9: error: invalid conversion between vector type 'uint16x8_t' (vector of 8 'uint16_t' values) and integer type 'int' of different size
SABER_indcpa.c: ...

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

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
poly.c: poly.c: In function ‘poly_getnoise’:
poly.c: poly.c:19:3: warning: implicit declaration of function ‘cshake128_simple’ [-Wimplicit-function-declaration]
poly.c: 19 | cshake128_simple(buf,SABER_N,nonce,seed,SABER_NOISESEEDBYTES);
poly.c: | ^~~~~~~~~~~~~~~~
SABER_indcpa.c: In file included from polymul/toom_cook_4/batch_64coefficient_multiplications.c:26,
SABER_indcpa.c: from polymul/toom_cook_4/asimd_toom_cook_4way_neon.c:22,
SABER_indcpa.c: from SABER_indcpa.c:35:
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c: In function ‘transpose’:
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:42:9: warning: implicit declaration of function ‘vtrn1q_u16’; did you mean ‘vtrnq_u16’? [-Wimplicit-function-declaration]
SABER_indcpa.c: 42 | y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: | vtrnq_u16
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:42:9: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:43:9: warning: implicit declaration of function ‘vtrn2q_u16’; did you mean ‘vtrnq_u16’? [-Wimplicit-function-declaration]
SABER_indcpa.c: 43 | y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: | vtrnq_u16
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:43:9: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:44:9: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: 44 | y18 = vtrn1q_u16(y2, y3);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:45:9: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: 45 | y19 = vtrn2q_u16(y2, y3);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:46:22: warning: implicit declaration of function ‘vtrn1q_u32’; did you mean ‘vtrnq_u32’? [-Wimplicit-function-declaration]
SABER_indcpa.c: 46 | y24 = (uint16x8_t) vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: | vtrnq_u32
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:46:3: error: cannot convert a value of type ‘int’ to vector type ‘__simd128_uint16_t’ which has different size
SABER_indcpa.c: ...

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

Compiler output

Implementation: T:neon2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly.c: poly.c:19:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf,SABER_N,nonce,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: poly.c:34:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf0,SABER_N,nonce0,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: 2 warnings generated.
SABER_indcpa.c: In file included from SABER_indcpa.c:14:
SABER_indcpa.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
SABER_indcpa.c: #error "NEON support not enabled"
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from SABER_indcpa.c:22:
SABER_indcpa.c: In file included from ./rq_mul/neon_poly_rq_mul.c:24:
SABER_indcpa.c: ./rq_mul/neon_batch_multiplication.c:87:5: error: unknown type name 'uint16x8_t'; did you mean 'uint16_t'?
SABER_indcpa.c: uint16x8_t tmp, aa[16], bb[16];
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: uint16_t
SABER_indcpa.c: /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h:25:20: note: 'uint16_t' declared here
SABER_indcpa.c: typedef __uint16_t uint16_t;
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from SABER_indcpa.c:22:
SABER_indcpa.c: In file included from ./rq_mul/neon_poly_rq_mul.c:24:
SABER_indcpa.c: ./rq_mul/neon_batch_multiplication.c:91:9: warning: implicit declaration of function 'vld1q_u16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: sb_vload(aa[0], &a_mem[0 * 16]);
SABER_indcpa.c: ^
SABER_indcpa.c: ./rq_mul/neon_batch_multiplication.c:29:28: note: expanded from macro 'sb_vload'
SABER_indcpa.c: #define sb_vload(c, a) c = vld1q_u16(a);
SABER_indcpa.c: ^
SABER_indcpa.c: ./rq_mul/neon_batch_multiplication.c:94:9: warning: implicit declaration of function 'vmulq_u16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: sb_vmul(tmp, aa[0], bb[0]);
SABER_indcpa.c: ^
SABER_indcpa.c: ./rq_mul/neon_batch_multiplication.c:23:32: note: expanded from macro 'sb_vmul'
SABER_indcpa.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon2

Compiler output

Implementation: T:neon2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly.c: poly.c:19:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf,SABER_N,nonce,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: poly.c:34:3: warning: implicit declaration of function 'cshake128_simple' is invalid in C99 [-Wimplicit-function-declaration]
poly.c: cshake128_simple(buf0,SABER_N,nonce0,seed,SABER_NOISESEEDBYTES);
poly.c: ^
poly.c: 2 warnings generated.
SABER_indcpa.c: In file included from SABER_indcpa.c:22:
SABER_indcpa.c: In file included from ./rq_mul/neon_poly_rq_mul.c:25:
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:64:11: warning: implicit declaration of function 'vtrn1q_u16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: ^
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:64:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:65:11: warning: implicit declaration of function 'vtrn2q_u16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: ^
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:65:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:66:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y18 = vtrn1q_u16(y2, y3);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:67:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
SABER_indcpa.c: y19 = vtrn2q_u16(y2, y3);
SABER_indcpa.c: ^ ~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:68:23: warning: implicit declaration of function 'vtrn1q_u32' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: y24 = (uint16x8_t)vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
SABER_indcpa.c: ^
SABER_indcpa.c: ./rq_mul/neon_matrix_transpose.c:68:11: error: invalid conversion between vector type 'uint16x8_t' (vector of 8 'uint16_t' values) and integer type 'int' of different size
SABER_indcpa.c: y24 = (uint16x8_t)vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
SABER_indcpa.c: ...

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

Compiler output

Implementation: T:neon2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
poly.c: poly.c: In function ‘poly_getnoise’:
poly.c: poly.c:19:3: warning: implicit declaration of function ‘cshake128_simple’ [-Wimplicit-function-declaration]
poly.c: 19 | cshake128_simple(buf,SABER_N,nonce,seed,SABER_NOISESEEDBYTES);
poly.c: | ^~~~~~~~~~~~~~~~
SABER_indcpa.c: In file included from rq_mul/neon_poly_rq_mul.c:25,
SABER_indcpa.c: from SABER_indcpa.c:22:
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c: In function ‘transpose_8x16’:
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:64:11: warning: implicit declaration of function ‘vtrn1q_u16’; did you mean ‘vtrnq_u16’? [-Wimplicit-function-declaration]
SABER_indcpa.c: 64 | y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: | vtrnq_u16
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:64:11: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:65:11: warning: implicit declaration of function ‘vtrn2q_u16’; did you mean ‘vtrnq_u16’? [-Wimplicit-function-declaration]
SABER_indcpa.c: 65 | y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: | vtrnq_u16
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:65:11: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:66:11: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: 66 | y18 = vtrn1q_u16(y2, y3);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:67:11: error: incompatible types when assigning to type ‘uint16x8_t’ from type ‘int’
SABER_indcpa.c: 67 | y19 = vtrn2q_u16(y2, y3);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:68:23: warning: implicit declaration of function ‘vtrn1q_u32’; did you mean ‘vtrnq_u32’? [-Wimplicit-function-declaration]
SABER_indcpa.c: 68 | y24 = (uint16x8_t)vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
SABER_indcpa.c: | ^~~~~~~~~~
SABER_indcpa.c: | vtrnq_u32
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:68:5: error: cannot convert a value of type ‘int’ to vector type ‘__simd128_uint16_t’ which has different size
SABER_indcpa.c: 68 | y24 = (uint16x8_t)vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
SABER_indcpa.c: ...

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:6:
SABER_indcpa.c: ./poly_mul.inc:20:43: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
SABER_indcpa.c: printf(" Mod(%d,%lu)*x^%d + ", a[i], p,i);
SABER_indcpa.c: ~~~ ^
SABER_indcpa.c: %llu
SABER_indcpa.c: ./poly_mul.inc:22:41: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
SABER_indcpa.c: printf(" Mod(%d,%lu)*x^%d ", a[i], p,i);
SABER_indcpa.c: ~~~ ^
SABER_indcpa.c: %llu
SABER_indcpa.c: 2 warnings generated.
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `clock1'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x8): multiple definition of `clock2'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x18): multiple definition of `clock_cl_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x28): multiple definition of `clock_cl_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x10): multiple definition of `clock_kp_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `clock_kp_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `clock_cl_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x8): multiple definition of `clock_kp_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x10): multiple definition of `clock_cl_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x18): multiple definition of `clock_kp_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `clock2'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x28): multiple definition of `clock1'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
try.c: collect2: error: ld returned 1 exit status

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