Implementation notes: armeabi, bblack, crypto_kem/ntruhrss701

Computer: bblack
Microarchitecture: armeabi; Cortex-A8 (413fc082)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: ntruhrss701
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
365508817888 0 055875 424 1496compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024022520240107
144343568536 0 037699 424 1496compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024022520240107
144496887524 0 036931 424 1488compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024022520240107
144580207524 0 036931 424 1488compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024022520240107
183489603726 0 028610 456 1488refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024020420231212
1920542410868 0 048703 424 1496refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024020420231212
192465405840 0 034879 424 1488refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024020420231212
192471645840 0 034623 424 1496refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024020420231212
192477085840 0 034879 424 1488refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024020420231212
192507485380 0 032813 420 1488refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024020420231212
193047043666 0 029318 448 1488refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024020420231212
194940523178 0 028102 456 1488compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024022520240107
198724045376 0 033073 420 1488compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024022520240107
211623926004 0 031976 460 1488compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024022520240107
212378325020 0 030948 460 1488refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024020420231212
212464963944 0 028874 456 1488refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024020420231212
219371523512 0 028366 456 1488compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024022520240107
221385962996 0 028810 448 1488compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024022520240107

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
neon_poly_mod.c: In file included from neon_poly_mod.c:20:
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:28:2: error: "NEON support not enabled"
neon_poly_mod.c: #error "NEON support not enabled"
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:48:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(8))) int8_t int8x8_t;
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:49:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(16))) int8_t int8x16_t;
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:50:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(4))) int16_t int16x4_t;
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:51:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(8))) int16_t int16x8_t;
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:52:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(2))) int32_t int32x2_t;
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:53:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(4))) int32_t int32x4_t;
neon_poly_mod.c: ^
neon_poly_mod.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/arm_neon.h:54:24: error: 'neon_vector_type' attribute is not supported for this target
neon_poly_mod.c: typedef __attribute__((neon_vector_type(1))) int64_t int64x1_t;
neon_poly_mod.c: ^
neon_poly_mod.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
neon_poly_rq_mul.c: In file included from neon_poly_rq_mul.c:20:
neon_poly_rq_mul.c: In file included from ./rq_mul/neon_poly_rq_mul.c:24:
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:64:11: warning: implicit declaration of function 'vtrn1q_u16' is invalid in C99 [-Wimplicit-function-declaration]
neon_poly_rq_mul.c: y16 = vtrn1q_u16(y0, y1);
neon_poly_rq_mul.c: ^
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:64:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
neon_poly_rq_mul.c: y16 = vtrn1q_u16(y0, y1);
neon_poly_rq_mul.c: ^ ~~~~~~~~~~~~~~~~~~
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:65:11: warning: implicit declaration of function 'vtrn2q_u16' is invalid in C99 [-Wimplicit-function-declaration]
neon_poly_rq_mul.c: y17 = vtrn2q_u16(y0, y1);
neon_poly_rq_mul.c: ^
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:65:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
neon_poly_rq_mul.c: y17 = vtrn2q_u16(y0, y1);
neon_poly_rq_mul.c: ^ ~~~~~~~~~~~~~~~~~~
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:66:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
neon_poly_rq_mul.c: y18 = vtrn1q_u16(y2, y3);
neon_poly_rq_mul.c: ^ ~~~~~~~~~~~~~~~~~~
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:67:9: error: assigning to 'uint16x8_t' (vector of 8 'uint16_t' values) from incompatible type 'int'
neon_poly_rq_mul.c: y19 = vtrn2q_u16(y2, y3);
neon_poly_rq_mul.c: ^ ~~~~~~~~~~~~~~~~~~
neon_poly_rq_mul.c: ./rq_mul/neon_matrix_transpose.c:68:23: warning: implicit declaration of function 'vtrn1q_u32' is invalid in C99 [-Wimplicit-function-declaration]
neon_poly_rq_mul.c: y24 = (uint16x8_t)vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
neon_poly_rq_mul.c: ^
neon_poly_rq_mul.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
neon_poly_rq_mul.c: y24 = (uint16x8_t)vtrn1q_u32((uint32x4_t)y16, (uint32x4_t)y17);
neon_poly_rq_mul.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
neon_poly_mod.c: In file included from neon_poly_mod.c:20:
neon_poly_mod.c: neon_poly_mod.c: In function 'crypto_kem_ntruhrss701_neon_timingleaks_poly_mod_3_Phi_n':
neon_poly_mod.c: /usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6754:1: error: inlining failed in call to always_inline 'vdupq_n_u16': target specific option mismatch
neon_poly_mod.c: vdupq_n_u16 (uint16_t __a)
neon_poly_mod.c: ^~~~~~~~~~~
neon_poly_mod.c: neon_poly_mod.c:33:36: note: called from here
neon_poly_mod.c: #define poly_vdup_x1(c, value) c = vdupq_n_u16(value);
neon_poly_mod.c: ^~~~~~~~~~~~~~~~~~
neon_poly_mod.c: neon_poly_mod.c:175:5: note: in expansion of macro 'poly_vdup_x1'
neon_poly_mod.c: poly_vdup_x1(hex_0x03, 0x03);
neon_poly_mod.c: ^~~~~~~~~~~~
neon_poly_mod.c: In file included from neon_poly_mod.c:20:
neon_poly_mod.c: /usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6754:1: error: inlining failed in call to always_inline 'vdupq_n_u16': target specific option mismatch
neon_poly_mod.c: vdupq_n_u16 (uint16_t __a)
neon_poly_mod.c: ^~~~~~~~~~~
neon_poly_mod.c: neon_poly_mod.c:33:36: note: called from here
neon_poly_mod.c: #define poly_vdup_x1(c, value) c = vdupq_n_u16(value);
neon_poly_mod.c: ^~~~~~~~~~~~~~~~~~
neon_poly_mod.c: neon_poly_mod.c:174:5: note: in expansion of macro 'poly_vdup_x1'
neon_poly_mod.c: poly_vdup_x1(hex_0x0f, 0x0f);
neon_poly_mod.c: ^~~~~~~~~~~~
neon_poly_mod.c: In file included from neon_poly_mod.c:20:
neon_poly_mod.c: /usr/lib/gcc/arm-linux-gnueabihf/8/include/arm_neon.h:6754:1: error: inlining failed in call to always_inline 'vdupq_n_u16': target specific option mismatch
neon_poly_mod.c: vdupq_n_u16 (uint16_t __a)
neon_poly_mod.c: ^~~~~~~~~~~
neon_poly_mod.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