Implementation notes: armeabi, berry2, crypto_kem/firesaber2

Computer: berry2
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20201018
Operation: crypto_kem
Primitive: firesaber2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
461473196127 0 0120317 400 1584T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090520200826
999943613969 0 027355 396 1576T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090520200826
1030850730381 0 045511 396 1576T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090520200826
1058698816993 0 030307 396 1576T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090520200826
1123866013743 0 026503 388 1576T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090520200826

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:5:
SABER_indcpa.c: In file included from ./SABER_indcpa.h:4:
SABER_indcpa.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/immintrin.h:28:
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
SABER_indcpa.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
SABER_indcpa.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:301:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) 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:avx2

Compiler output

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

Number of similar (compiler,implementation) pairs: 4, 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

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:28:
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:28: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: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: ...

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
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: y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: vtrnq_u16
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:42:7: error: incompatible types when assigning to type 'uint16x8_t' from 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'; did you mean 'vtrnq_u16'? [-Wimplicit-function-declaration]
SABER_indcpa.c: y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: vtrnq_u16
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:43:7: error: incompatible types when assigning to type 'uint16x8_t' from 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: incompatible types when assigning to type 'uint16x8_t' from 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: incompatible types when assigning to type 'uint16x8_t' from 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'; did you mean 'vtrnq_u32'? [-Wimplicit-function-declaration]
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 -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:14:
SABER_indcpa.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:28: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: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: ...

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
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: y16 = vtrn1q_u16(y0, y1);
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: vtrnq_u16
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:64:9: error: incompatible types when assigning to type 'uint16x8_t' from 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'; did you mean 'vtrnq_u16'? [-Wimplicit-function-declaration]
SABER_indcpa.c: y17 = vtrn2q_u16(y0, y1);
SABER_indcpa.c: ^~~~~~~~~~
SABER_indcpa.c: vtrnq_u16
SABER_indcpa.c: rq_mul/neon_matrix_transpose.c:65:9: error: incompatible types when assigning to type 'uint16x8_t' from 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: incompatible types when assigning to type 'uint16x8_t' from 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: incompatible types when assigning to type 'uint16x8_t' from 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'; did you mean 'vtrnq_u32'? [-Wimplicit-function-declaration]
SABER_indcpa.c: 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 -mcpu=native -O3 -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.

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

Namespace violations

Implementation: T:ref
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.o GenMatrix T
SABER_indcpa.o InnerProd T
SABER_indcpa.o MatrixVectorMul T
SABER_indcpa.o POL2MSG T
SABER_indcpa.o clock1 C
SABER_indcpa.o clock2 C
SABER_indcpa.o clock_cl_mv C
SABER_indcpa.o clock_cl_sm C
SABER_indcpa.o clock_kp_mv C
SABER_indcpa.o clock_kp_sm C
SABER_indcpa.o indcpa_kem_dec T
SABER_indcpa.o indcpa_kem_enc T
SABER_indcpa.o indcpa_kem_keypair T
SABER_indcpa.o karatsuba_simple T
SABER_indcpa.o pol_mul T
SABER_indcpa.o print_poly2 T
SABER_indcpa.o reduce T
SABER_indcpa.o toom_cook_4way T
cbd.o cbd T
fips202.o KeccakF1600_StatePermute T
fips202.o cshake128_simple T
fips202.o cshake128_simple_absorb T
fips202.o cshake128_simple_squeezeblocks T
fips202.o sha3_256 T
fips202.o sha3_512 T
fips202.o shake128 T
kem.o clock1 C
kem.o clock2 C
kem.o clock_cl_mv C
kem.o clock_cl_sm C
kem.o clock_kp_mv C
kem.o clock_kp_sm C
pack_unpack.o BS2POL T
pack_unpack.o BS2POLVEC T
pack_unpack.o BS2POLVECp T
pack_unpack.o BS2POLVECq T
pack_unpack.o POLVEC2BS T
pack_unpack.o POLVECp2BS T
pack_unpack.o POLVECq2BS T
pack_unpack.o SABER_pack_3bit T
pack_unpack.o SABER_pack_4bit T
pack_unpack.o SABER_pack_6bit T
pack_unpack.o SABER_un_pack3bit T
pack_unpack.o SABER_un_pack4bit T
pack_unpack.o SABER_un_pack6bit T
poly.o GenSecret T
verify.o cmov T
verify.o verify T

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
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