Implementation notes: armeabi, novenablue, crypto_kem/firesaber2

Computer: novenablue
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20200702
Operation: crypto_kem
Primitive: firesaber2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
760752820615 0 038885 424 1600refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060220200601
761015220059 0 036613 424 1600refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060220200601
761627520059 0 036613 424 1600refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060220200601
772299715747 0 031263 420 1600refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060220200601
790283511188 0 023705 416 1584refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060220200601
795443220555 0 038821 424 1600refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060220200601
823292631024 0 045397 416 1584refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060220200601
868910913236 0 026069 416 1584refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060220200601
932888110741 0 022953 408 1584refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060220200601

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:5:
SABER_indcpa.c: ./SABER_indcpa.h:24:1: error: unknown type name '__m256i'
SABER_indcpa.c: __m256i mask,inv3_avx,inv9_avx,inv15_avx,int45_avx,int30_avx,int0_avx;
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from SABER_indcpa.c:9:
SABER_indcpa.c: In file included from ././polymul/toom-cook_4way.c:6:
SABER_indcpa.c: ././polymul/scm_avx.c:6:8: error: unknown type name '__m256i'
SABER_indcpa.c: inline __m256i mul_add(__m256i a, __m256i b, __m256i c) {
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:6:24: error: unknown type name '__m256i'
SABER_indcpa.c: inline __m256i mul_add(__m256i a, __m256i b, __m256i c) {
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:6:35: error: unknown type name '__m256i'
SABER_indcpa.c: inline __m256i mul_add(__m256i a, __m256i b, __m256i c) {
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:6:46: error: unknown type name '__m256i'
SABER_indcpa.c: inline __m256i mul_add(__m256i a, __m256i b, __m256i c) {
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:7:12: warning: implicit declaration of function '_mm256_add_epi16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: return _mm256_add_epi16(_mm256_mullo_epi16(a, b), c);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:7:29: warning: implicit declaration of function '_mm256_mullo_epi16' is invalid in C99 [-Wimplicit-function-declaration]
SABER_indcpa.c: return _mm256_add_epi16(_mm256_mullo_epi16(a, b), c);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:11:30: error: unknown type name '__m256i'
SABER_indcpa.c: ...

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:5:0:
SABER_indcpa.c: SABER_indcpa.h:4:23: 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 avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2

Compiler output

Implementation: neon
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon

Compiler output

Implementation: neon
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:28:0:
SABER_indcpa.c: /usr/lib/gcc/arm-linux-gnueabihf/4.9/include/arm_neon.h:31:2: error: #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
SABER_indcpa.c: #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
SABER_indcpa.c: ^
SABER_indcpa.c: In file included from polymul/toom_cook_4/batch_64coefficient_multiplications.c:26:0,
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:28:3: error: unknown type name 'uint16x8_t'
SABER_indcpa.c: uint16x8_t y0, y1, y2, y3, y4, y5, y6, y7, y8;
SABER_indcpa.c: ^
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:29:3: error: unknown type name 'uint16x8_t'
SABER_indcpa.c: uint16x8_t y9, y10, y11, y12, y13, y14, y15, y16, y17;
SABER_indcpa.c: ^
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:30:3: error: unknown type name 'uint16x8_t'
SABER_indcpa.c: uint16x8_t y18, y19, y20, y21, y22, y23, y24, y25, y26;
SABER_indcpa.c: ^
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:31:3: error: unknown type name 'uint16x8_t'
SABER_indcpa.c: uint16x8_t y27, y28, y29, y30, y31, y32, y33, y34, y35;
SABER_indcpa.c: ^
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:46:10: error: 'uint16x8_t' undeclared (first use in this function)
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:10: note: each undeclared identifier is reported only once for each function it appears in
SABER_indcpa.c: polymul/toom_cook_4/asimd_matrix.c:46:22: error: expected ';' before 'vtrn1q_u32'
SABER_indcpa.c: ...

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

Compiler output

Implementation: ref
Security model: unknown
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.

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -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: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref