Implementation notes: armeabi, novena, crypto_kem/ntruhrss701

Computer: novena
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20220506
Operation: crypto_kem
Primitive: ntruhrss701
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
929166410732 0 036154 464 1496refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022061420220506
94144755772 0 022698 464 1496refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022061420220506
96757005384 0 021184 460 1488refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022061420220506
98141145772 0 023314 464 1488refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022061420220506
1048457711924 0 026343 472 1488refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022061420220506
173728174044 0 017207 472 1488refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022061420220506
174660263772 0 016805 468 1488refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022061420220506
182789005416 0 021256 460 1488refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022061420220506
186305333686 0 017567 464 1488refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022061420220506

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-11/lib/clang/11.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
neon_poly_mod.c: #error "NEON support not enabled"
neon_poly_mod.c: ^
neon_poly_mod.c: neon_poly_mod.c:167:5: error: unknown type name 'uint16x8_t'; did you mean 'uint16_t'?
neon_poly_mod.c: uint16x8_t last, hex_0xff, hex_0x0f, hex_0x03;
neon_poly_mod.c: ^~~~~~~~~~
neon_poly_mod.c: uint16_t
neon_poly_mod.c: /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h:25:20: note: 'uint16_t' declared here
neon_poly_mod.c: typedef __uint16_t uint16_t;
neon_poly_mod.c: ^
neon_poly_mod.c: neon_poly_mod.c:169:5: warning: implicit declaration of function 'vdupq_n_u16' is invalid in C99 [-Wimplicit-function-declaration]
neon_poly_mod.c: poly_vdup_x1(last, r->coeffs[NTRU_N - 1]);
neon_poly_mod.c: ^
neon_poly_mod.c: neon_poly_mod.c:33:36: note: expanded from macro 'poly_vdup_x1'
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:171:5: warning: implicit declaration of function 'vshlq_n_u16' is invalid in C99 [-Wimplicit-function-declaration]
neon_poly_mod.c: poly_vsl_x1(last, last, 1);
neon_poly_mod.c: ^
neon_poly_mod.c: neon_poly_mod.c:30:38: note: expanded from macro 'poly_vsl_x1'
neon_poly_mod.c: #define poly_vsl_x1(c, a, value) c = vshlq_n_u16(a, value);
neon_poly_mod.c: ^
neon_poly_mod.c: neon_poly_mod.c:178:17: error: expected ';' after expression
neon_poly_mod.c: uint16x8x4_t r0, r1, r2, r3;
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_mod.c: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
neon_poly_mod.c: Stack dump:
neon_poly_mod.c: 0. Program arguments: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE -DSUPERCOP -DCRYPTO_NAMESPACETOP=crypto_kem_ntruhrss701_neon_timingleaks -D_CRYPTO_NAMESPACETOP=_crypto_kem_ntruhrss701_neon_timingleaks -DCRYPTO_NAMESPACE(name)=crypto_kem_ntruhrss701_neon_timingleaks_##name -D_CRYPTO_NAMESPACE(name)=_crypto_kem_ntruhrss701_neon_timingleaks_##name -I. -I/home/user/supercop-20220506/supercop-data/novena/armeabi/include -I/home/user/supercop-20220506/supercop-data/novena/armeabi/include/timingleaks -c neon_poly_mod.c
neon_poly_mod.c: 1. <eof> parser at end of file
neon_poly_mod.c: 2. Code generation
neon_poly_mod.c: 3. Running pass 'Function Pass Manager' on module 'neon_poly_mod.c'.
neon_poly_mod.c: 4. Running pass 'ARM Instruction Selection' on function '@crypto_kem_ntruhrss701_neon_timingleaks_poly_mod_3_Phi_n'
neon_poly_mod.c: clang: error: clang frontend command failed due to signal (use -v to see invocation)
neon_poly_mod.c: Debian clang version 11.0.1-2
neon_poly_mod.c: Target: armv7l-unknown-linux-gnueabihf
neon_poly_mod.c: Thread model: posix
neon_poly_mod.c: InstalledDir: /usr/bin
neon_poly_mod.c: clang: note: diagnostic msg:
neon_poly_mod.c: ********************
neon_poly_mod.c:
neon_poly_mod.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
neon_poly_mod.c: Preprocessed source(s) and associated run script(s) are located at:
neon_poly_mod.c: clang: note: diagnostic msg: /tmp/neon_poly_mod-c3d14d.c
neon_poly_mod.c: clang: note: diagnostic msg: /tmp/neon_poly_mod-c3d14d.sh
neon_poly_mod.c: clang: note: diagnostic msg:
neon_poly_mod.c:
neon_poly_mod.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/10/include/arm_neon.h:6758:1: error: inlining failed in call to ‘always_inline’ ‘vdupq_n_u16’: target specific option mismatch
neon_poly_mod.c: 6758 | 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: 33 | #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: 175 | 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/10/include/arm_neon.h:6758:1: error: inlining failed in call to ‘always_inline’ ‘vdupq_n_u16’: target specific option mismatch
neon_poly_mod.c: 6758 | 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: 33 | #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: 174 | 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/10/include/arm_neon.h:6758:1: error: inlining failed in call to ‘always_inline’ ‘vdupq_n_u16’: target specific option mismatch
neon_poly_mod.c: 6758 | 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