Implementation notes: aarch64, hikey960, crypto_dh/hecfp64e2bk

Computer: hikey960
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_dh
Primitive: hecfp64e2bk

Compiler output

Implementation: v01/varglv8
Security model: unknown
Compiler: cc
array_lo.c: In file included from array_lo.c:24:0:
array_lo.c: array_lo.c: In function 'man_convert_word':
array_lo.c: kernel.h:123:41: error: impossible constraint in 'asm'
array_lo.c: #define km_mul_2_add_c(zH, zL, a, b, c) __asm__( \
array_lo.c: ^
array_lo.c: multiprecision.h:696:4: note: in expansion of macro 'km_mul_2_add_c'
array_lo.c: km_mul_2_add_c(_t, (zn)[0], (an)[0], (b), _t); \
array_lo.c: ^~~~~~~~~~~~~~
array_lo.c: array_lo.c:37:3: note: in expansion of macro 'mim_mul_1'
array_lo.c: mim_mul_1(an[al], an, an, al, base, buf[i]);
array_lo.c: ^~~~~~~~~
array_lo.c: kernel.h:123:41: error: impossible constraint in 'asm'
array_lo.c: #define km_mul_2_add_c(zH, zL, a, b, c) __asm__( \
array_lo.c: ^
array_lo.c: multiprecision.h:699:4: note: in expansion of macro 'km_mul_2_add_c'
array_lo.c: km_mul_2_add_c(_t, (zn)[0], (an)[0], (b), _t); \
array_lo.c: ^~~~~~~~~~~~~~
array_lo.c: array_lo.c:37:3: note: in expansion of macro 'mim_mul_1'
array_lo.c: mim_mul_1(an[al], an, an, al, base, buf[i]);
array_lo.c: ^~~~~~~~~
array_lo.c: kernel.h:123:41: error: impossible constraint in 'asm'
array_lo.c: #define km_mul_2_add_c(zH, zL, a, b, c) __asm__( \
array_lo.c: ^
array_lo.c: multiprecision.h:700:4: note: in expansion of macro 'km_mul_2_add_c'
array_lo.c: km_mul_2_add_c(_t, (zn)[1], (an)[1], (b), _t); \
array_lo.c: ...

Number of similar (compiler,implementation) pairs: 161, namely:
CompilerImplementations
cc v01/varglv8
gcc v01/varglv8
gcc -O2 -fomit-frame-pointer v01/varglv8
gcc -O3 -fomit-frame-pointer v01/varglv8
gcc -O -fomit-frame-pointer v01/varglv8
gcc -Os -fomit-frame-pointer v01/varglv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/varglv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/varglv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/varglv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/varglv8
gcc -funroll-loops v01/varglv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -O -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/varglv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/varglv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/varglv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/varglv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/varglv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/varglv8
cc v01/w8s01glv8
gcc v01/w8s01glv8
gcc -O2 -fomit-frame-pointer v01/w8s01glv8
gcc -O3 -fomit-frame-pointer v01/w8s01glv8
gcc -O -fomit-frame-pointer v01/w8s01glv8
gcc -Os -fomit-frame-pointer v01/w8s01glv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s01glv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s01glv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/w8s01glv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops v01/w8s01glv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -O -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/w8s01glv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s01glv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/w8s01glv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/w8s01glv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/w8s01glv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/w8s01glv8
cc v01/w8s02glv8
gcc v01/w8s02glv8
gcc -O2 -fomit-frame-pointer v01/w8s02glv8
gcc -O3 -fomit-frame-pointer v01/w8s02glv8
gcc -O -fomit-frame-pointer v01/w8s02glv8
gcc -Os -fomit-frame-pointer v01/w8s02glv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s02glv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s02glv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/w8s02glv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops v01/w8s02glv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -O -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/w8s02glv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s02glv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/w8s02glv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/w8s02glv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/w8s02glv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/w8s02glv8
cc v01/w8s04glv8
gcc v01/w8s04glv8
gcc -O2 -fomit-frame-pointer v01/w8s04glv8
gcc -O3 -fomit-frame-pointer v01/w8s04glv8
gcc -O -fomit-frame-pointer v01/w8s04glv8
gcc -Os -fomit-frame-pointer v01/w8s04glv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s04glv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s04glv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/w8s04glv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops v01/w8s04glv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -O -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/w8s04glv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s04glv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/w8s04glv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/w8s04glv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/w8s04glv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/w8s04glv8
cc v01/w8s08glv8
gcc v01/w8s08glv8
gcc -O2 -fomit-frame-pointer v01/w8s08glv8
gcc -O3 -fomit-frame-pointer v01/w8s08glv8
gcc -O -fomit-frame-pointer v01/w8s08glv8
gcc -Os -fomit-frame-pointer v01/w8s08glv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s08glv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s08glv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/w8s08glv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops v01/w8s08glv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -O -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/w8s08glv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s08glv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/w8s08glv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/w8s08glv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/w8s08glv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/w8s08glv8
cc v01/w8s16glv8
gcc v01/w8s16glv8
gcc -O2 -fomit-frame-pointer v01/w8s16glv8
gcc -O3 -fomit-frame-pointer v01/w8s16glv8
gcc -O -fomit-frame-pointer v01/w8s16glv8
gcc -Os -fomit-frame-pointer v01/w8s16glv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s16glv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s16glv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/w8s16glv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops v01/w8s16glv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -O -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/w8s16glv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s16glv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/w8s16glv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/w8s16glv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/w8s16glv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/w8s16glv8
cc v01/w8s32glv8
gcc v01/w8s32glv8
gcc -O2 -fomit-frame-pointer v01/w8s32glv8
gcc -O3 -fomit-frame-pointer v01/w8s32glv8
gcc -O -fomit-frame-pointer v01/w8s32glv8
gcc -Os -fomit-frame-pointer v01/w8s32glv8
gcc -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s32glv8
gcc -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s32glv8
gcc -fno-schedule-insns -O -fomit-frame-pointer v01/w8s32glv8
gcc -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops v01/w8s32glv8
gcc -funroll-loops -O2 -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -O3 -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -O -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -Os -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer v01/w8s32glv8
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer v01/w8s32glv8
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv v01/w8s32glv8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv v01/w8s32glv8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv v01/w8s32glv8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv v01/w8s32glv8

Compiler output

Implementation: v01/varglv8
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
array_lo.c: array_lo.c:37:3: error: invalid output constraint '=&d' in asm
array_lo.c: mim_mul_1(an[al], an, an, al, base, buf[i]);
array_lo.c: ^
array_lo.c: ./multiprecision.h:696:4: note: expanded from macro 'mim_mul_1'
array_lo.c: km_mul_2_add_c(_t, (zn)[0], (an)[0], (b), _t); \
array_lo.c: ^
array_lo.c: ./kernel.h:127:4: note: expanded from macro 'km_mul_2_add_c'
array_lo.c: : "=&d"((zH)), "=a"((zL)) \
array_lo.c: ^
array_lo.c: array_lo.c:37:3: error: invalid output constraint '=&d' in asm
array_lo.c: ./multiprecision.h:699:4: note: expanded from macro 'mim_mul_1'
array_lo.c: km_mul_2_add_c(_t, (zn)[0], (an)[0], (b), _t); \
array_lo.c: ^
array_lo.c: ./kernel.h:127:4: note: expanded from macro 'km_mul_2_add_c'
array_lo.c: : "=&d"((zH)), "=a"((zL)) \
array_lo.c: ^
array_lo.c: array_lo.c:37:3: error: invalid output constraint '=&d' in asm
array_lo.c: ./multiprecision.h:700:4: note: expanded from macro 'mim_mul_1'
array_lo.c: km_mul_2_add_c(_t, (zn)[1], (an)[1], (b), _t); \
array_lo.c: ^
array_lo.c: ./kernel.h:127:4: note: expanded from macro 'km_mul_2_add_c'
array_lo.c: : "=&d"((zH)), "=a"((zL)) \
array_lo.c: ^
array_lo.c: array_lo.c:37:3: error: invalid output constraint '=&d' in asm
array_lo.c: ./multiprecision.h:703:4: note: expanded from macro 'mim_mul_1'
array_lo.c: ...

Number of similar (compiler,implementation) pairs: 28, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/varglv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/varglv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/varglv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/varglv8
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/w8s01glv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/w8s01glv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/w8s01glv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/w8s01glv8
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/w8s02glv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/w8s02glv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/w8s02glv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/w8s02glv8
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/w8s04glv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/w8s04glv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/w8s04glv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/w8s04glv8
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/w8s08glv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/w8s08glv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/w8s08glv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/w8s08glv8
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/w8s16glv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/w8s16glv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/w8s16glv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/w8s16glv8
clang -O3 -fomit-frame-pointer -Qunused-arguments v01/w8s32glv8
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments v01/w8s32glv8
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments v01/w8s32glv8
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments v01/w8s32glv8