Implementation notes: armeabi, bblack, crypto_kem/ntruhrss701

Computer: bblack
Microarchitecture: armeabi; Cortex-A8 (413fc082)
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20240425
Operation: crypto_kem
Primitive: ntruhrss701
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
365476017888 0 051779 452 1496compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
144364167524 0 032859 452 1488compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
144380487524 0 032859 452 1488compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
144395368536 0 033627 452 1496compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
183551523726 0 024498 484 1488refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
1921057610868 0 044559 452 1496refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
192558245840 0 030983 452 1488refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
192560005840 0 030727 452 1496refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
192576565840 0 030983 452 1488refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
192598645380 0 028885 448 1488refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
193174083666 0 025358 476 1488refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
195026803178 0 023950 484 1488compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
198793845376 0 029065 448 1488compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024062120240425
211642726004 0 027920 488 1488compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
212357843944 0 024786 484 1488refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
212393285020 0 026932 488 1488refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
219444963512 0 024358 484 1488compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425
221449362996 0 024690 476 1488compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024062120240425

Compiler output


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 (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:neonclang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))
T:neonclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))
T:neonclang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))
T:neonclang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))

Compiler output


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 (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:neonclang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final))

Compiler output


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 (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:neongcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0)
T:neongcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0)
T:neongcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0)
T:neongcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0)