Implementation notes: amd64, renoir, crypto_dh/curve2251

Computer: renoir
Microarchitecture: amd64; Zen 2 (860f01)
Architecture: amd64
CPU ID: AuthenticAMD-00860f01-178bfbff
SUPERCOP version: 20240425
Operation: crypto_dh
Primitive: curve2251
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
39460740203 385024 110462423 385900 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
39558153307 385024 110477215 385900 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
39674031905 385024 110453493 385892 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
39978731881 385024 110453445 385892 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
39983540179 385024 110462375 385900 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
40086853283 385024 110477231 385900 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
40391528711 385024 110449487 385892 2904T:relic/amd64-avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
40913528687 385024 110449439 385892 2904T:relic/amd64-clmulgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
107631740177 385024 110461597 385892 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
115780761579 385024 110485319 385900 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
121979636983 385024 110457591 385892 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
133578148475 385024 110470527 385900 2904T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
252164416104 0 850774 860 1816T:mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
257403515583 0 849726 860 1816T:mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
262093426015 0 862406 860 1816T:mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
282619411726 0 845020 860 1816T:mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425

Compiler output

Implementation: T:mpfq
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
curve2_251.c: In file included from curve2_251.c:8:
curve2_251.c: In file included from ./field.h:1:
curve2_251.c: In file included from ./mpfq_2_251.h:5:
curve2_251.c: ./x86_64/mpfq_2_251.h:900:14: error: use of unknown builtin '__builtin_ia32_pslldqi128' [-Wimplicit-function-declaration]
curve2_251.c: r.s = t0 ^ SHLD(t1, 64);
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:748:25: note: expanded from macro 'SHLD'
curve2_251.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:900:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
curve2_251.c: r.s = t0 ^ SHLD(t1, 64);
curve2_251.c: ^~~~~~~~~~~~
curve2_251.c: ./x86_64/mpfq_2_251.h:748:19: note: expanded from macro 'SHLD'
curve2_251.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
curve2_251.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
curve2_251.c: ./x86_64/mpfq_2_251.h:907:14: error: use of unknown builtin '__builtin_ia32_psrldqi128' [-Wimplicit-function-declaration]
curve2_251.c: r.s = t2 ^ SHRD(t1, 64);
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:749:25: note: expanded from macro 'SHRD'
curve2_251.c: #define SHRD(x,r) (v2di)__builtin_ia32_psrldqi128 ((gcc43bugfix) (x),(r))
curve2_251.c: ^
curve2_251.c: ./x86_64/mpfq_2_251.h:907:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
curve2_251.c: r.s = t2 ^ SHRD(t1, 64);
curve2_251.c: ^~~~~~~~~~~~
curve2_251.c: ./x86_64/mpfq_2_251.h:749:19: note: expanded from macro 'SHRD'
curve2_251.c: ...

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

Compiler output

Implementation: T:relic/amd64-avx
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
relic.c: In file included from relic.c:4:
relic.c: ./src/relic_rand.c:117:8: warning: implicit declaration of function 'time' is invalid in C99 [-Wimplicit-function-declaration]
relic.c: srand(time(NULL));
relic.c: ^
relic.c: 1 warning generated.
relic_low.S: relic_low.S:5:1: error: changed section type for .note.GNU-stack, expected: 0x7
relic_low.S: .section .note.GNU-stack,"",@progbits
relic_low.S: ^

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-avx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-avx
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-avx
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-avx
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-avx
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-clmul
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-clmul
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-clmul
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-clmul
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:relic/amd64-clmul

Compiler output

Implementation: T:relic/amd64-avx
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c: 117 | srand(time(NULL));
relic.c: | ^~~~
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-avx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-avx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-avx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-avx
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-clmul
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-clmul
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-clmul
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-clmul
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-ssse3
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-ssse3
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-ssse3
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:relic/amd64-ssse3

Compiler output

Implementation: T:relic/amd64-ssse3
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
relic.c: In file included from relic.c:4:
relic.c: ./src/relic_rand.c:117:8: warning: implicit declaration of function 'time' is invalid in C99 [-Wimplicit-function-declaration]
relic.c: srand(time(NULL));
relic.c: ^
relic.c: 1 warning generated.
relic_low.S: ./src/low/relic_fb_mul_low.s:2339:2: error: changed section type for .note.GNU-stack, expected: 0x7
relic_low.S: .section .note.GNU-stack,"",@progbits
relic_low.S: ^
relic_low.S: relic_low.S:5:1: error: changed section type for .note.GNU-stack, expected: 0x7
relic_low.S: .section .note.GNU-stack,"",@progbits
relic_low.S: ^

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