Implementation notes: amd64, luft, crypto_scalarmult/kummer

Computer: luft
Architecture: amd64
CPU ID: GenuineIntel-000306d4-bfebfbff
SUPERCOP version: 20200702
Operation: crypto_scalarmult
Primitive: kummer
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
30691221106 0 045056 4096 0avx2intclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
33763615663 0 036864 4096 0avx2intgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
34432818807 0 045056 4096 0avx2intclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
34692018807 0 045056 4096 0avx2intclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
4095328793 0 028672 4096 0avx2intclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
4187729379 0 028672 4096 0avx2intgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
4404489810 0 028672 4096 0avx2intgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
4679806683 0 024576 4096 0avx2intgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
89891214190 0 032768 4096 0ref5uclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
95650812551 0 036864 4096 0ref5uclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
135857612357 0 036864 4096 0ref5clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
172902413965 0 036864 4096 0ref5uclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
176743612551 0 036864 4096 0ref5uclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
177556414155 0 032768 4096 0ref5clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
18098927496 0 028672 4096 0ref5gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
186117213819 0 036864 4096 0ref5clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
18849207859 0 028672 4096 0ref5ugcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
19235124640 0 024576 4096 0ref5gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
19539604400 0 024576 4096 0ref5clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
200175212357 0 036864 4096 0ref5clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
20076884408 0 024576 4096 0ref5uclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071020200702
20680524774 0 024576 4096 0ref5gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
20958084970 0 024576 4096 0ref5ugcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
21478564501 0 020480 4096 0ref5gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
22686404778 0 020480 4096 0ref5ugcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702
24439205120 0 024576 4096 0ref5ugcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071020200702

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: Undefined symbols for architecture x86_64:
try.c: "_2p106", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __2p106)
try.c: "_2p127", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p127, __2p127m2p85 )
try.c: "_2p128m2p86", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p128m2p86)
try.c: "_2p22", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __2p22)
try.c: "_2p43", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p43m1, __2p43 )
try.c: "_2p44m2", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p44m2p23, __2p44m2 )
try.c: "_2p64", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __2p64)
try.c: "_2p85", referenced from:
try.c: ...

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

Compiler output

Implementation: avx
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: Undefined symbols for architecture x86_64:
try.c: "_2p106", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __2p106)
try.c: "_2p127", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p127, __2p127m2p85 )
try.c: "_2p128m2p86", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p128m2p86)
try.c: "_2p22", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __2p22)
try.c: "_2p43", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p43m1, __2p43 )
try.c: "_2p44m2", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p44m2, __2p44m2p23 )
try.c: "_2p64", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __2p64)
try.c: "_2p85", referenced from:
try.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: Undefined symbols for architecture x86_64:
try.c: "_1111", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __1111)
try.c: "_2p127", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p127, __2p127m2p85 )
try.c: "_2p128m2p86", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p128m2p86)
try.c: "_2p43", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p43m1, __2p43 )
try.c: "_2p44m2", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p44m2p23, __2p44m2 )
try.c: "_2p85", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p85m2p43, __2p85 )
try.c: "_2p86m2p44", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p86m2p44)
try.c: "_2pm127", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: ...

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: Undefined symbols for architecture x86_64:
try.c: "_1111", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: (maybe you meant: __1111)
try.c: "_2p127", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p127, __2p127m2p85 )
try.c: "_2p128m2p86", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p128m2p86)
try.c: "_2p43", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p43m1, __2p43 )
try.c: "_2p44m2", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p44m2p23, __2p44m2 )
try.c: "_2p85", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p85, __2p85m2p43 )
try.c: "_2p86m2p44", referenced from:
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: (maybe you meant: __2p86m2p44)
try.c: "_2pm127", referenced from:
try.c: _ladder in crypto_scalarmult_kummer.a(ladder.o)
try.c: _gfe4x3limb_freeze in crypto_scalarmult_kummer.a(gfe4x3limb_freeze.o)
try.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2

Compiler output

Implementation: avx2int
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
measure.c: ld: warning: could not create compact unwind for _crypto_stream_aes256ctr_dolbeau_aesenc_int_xor: register 3 saved somewhere other than in frame

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

Compiler output

Implementation: avx2int
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
smult.c: smult.c:36:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t0 = _mm256_mul_epi32(a->v[0],*b);
smult.c: ^
smult.c: smult.c:37:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t1 = _mm256_mul_epi32(a->v[1],*b);
smult.c: ^
smult.c: smult.c:38:10: error: always_inline function '_mm256_add_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t1 = _mm256_add_epi64(t1,_mm256_srli_epi64(t0,26)); t0 &= mask26;
smult.c: ^
smult.c: smult.c:38:30: error: always_inline function '_mm256_srli_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t1 = _mm256_add_epi64(t1,_mm256_srli_epi64(t0,26)); t0 &= mask26;
smult.c: ^
smult.c: smult.c:39:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t2 = _mm256_mul_epi32(a->v[2],*b);
smult.c: ^
smult.c: smult.c:40:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t3 = _mm256_mul_epi32(a->v[3],*b);
smult.c: ^
smult.c: smult.c:41:8: error: always_inline function '_mm256_mul_epi32' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t4 = _mm256_mul_epi32(a->v[4],*b);
smult.c: ^
smult.c: smult.c:42:10: error: always_inline function '_mm256_add_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: t3 = _mm256_add_epi64(t3,_mm256_srli_epi64(t2,26)); t2 &= mask26;
smult.c: ^
smult.c: smult.c:42:30: error: always_inline function '_mm256_srli_epi64' requires target feature 'avx2', but would be inlined into function 'crypto_scalarmult_kummer_avx2int_gfe4x_mulconst' that is compiled without support for 'avx2'
smult.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2int