Implementation notes: aarch64, pmnod145, crypto_hash/simd256

Computer: pmnod145
Architecture: aarch64
CPU ID: 431f0af1
SUPERCOP version: 20191017
Operation: crypto_hash
Primitive: simd256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
7330049540 0 061907 848 760sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9202546636 0 057899 848 744sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9367543936 0 055083 848 744sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
9480046648 0 062648 864 752sphlibarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
9777544776 0 059880 864 744sphlibarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
9810041252 0 051615 832 736sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
10465027132 0 039523 848 760sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
10770030308 0 046344 864 752sphlib-smallarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
11555027796 0 042936 864 744sphlib-smallarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
12367525284 0 036579 848 744sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
12865023580 0 033975 832 736sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
12875025776 0 036963 848 744sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
14147543751 388 056338 1268 760optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
15822531263 388 046091 1276 744optarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
16055037567 388 052227 1276 752optarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
18572515411 388 026866 1260 744optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
22840015959 388 027290 1260 744optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
23565013291 388 023822 1244 736optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
373365011499 388 024058 1268 760refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
38086005243 388 016666 1260 744refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
380912551055 388 067243 1276 752refarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O3_-fPIC_-fPIE2019101820191017
381442531607 388 046899 1276 744refarmclang_-march=armv8a+crypto_-mcpu=thunderx2t99_-mtune=thunderx2t99_-O2_-fPIC_-fPIE2019101820191017
42865254939 388 016250 1260 744refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017
100753754391 388 014878 1244 736refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019101820191017

Compiler output

Implementation: ref
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE
reference.c: reference.c:69:82: warning: expression result unused [-Wunused-value]
reference.c: state->A[j] = state->D[j] + w[j] + F(state->A[j], state->B[j], state->C[j]), s;
reference.c: ^
reference.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE ref
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O3 -fPIC -fPIE ref

Compiler output

Implementation: vect128
Security model: unknown
Compiler: armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE
vector.c: In file included from vector.c:5:
vector.c: ./vector.h:252:2: error: "I don't know how to vectorize on this architecture."
vector.c: #error "I don't know how to vectorize on this architecture."
vector.c: ^
vector.c: ./vector.h:344:38: error: array has incomplete element type 'const union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:344:22: note: forward declaration of 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:355:39: error: array has incomplete element type 'const union cv'
vector.c: static const union cv FFT128_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:344:22: note: forward declaration of 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:367:39: error: array has incomplete element type 'const union cv'
vector.c: static const union cv FFT256_Twiddle[] = {
vector.c: ^
vector.c: ./vector.h:344:22: note: forward declaration of 'union cv'
vector.c: static const union cv FFT64_Twiddle[] = {
vector.c: ^
vector.c: vector.c:24:30: warning: implicit declaration of function 'CV' is invalid in C99 [-Wimplicit-function-declaration]
vector.c: static const union cv V128 = CV(128);
vector.c: ^
vector.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O2 -fPIC -fPIE vect128
armclang -march=armv8a+crypto -mcpu=thunderx2t99 -mtune=thunderx2t99 -O3 -fPIC -fPIE vect128

Compiler output

Implementation: vect128
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
vector.c: In file included from vector.c:5:
vector.c: vector.h:252:2: error: #error "I don't know how to vectorize on this architecture."
vector.c: 252 | #error "I don't know how to vectorize on this architecture."
vector.c: | ^~~~~
vector.c: vector.h:344:25: error: array type has incomplete element type 'union cv'
vector.c: 344 | static const union cv FFT64_Twiddle[] = {
vector.c: | ^~~~~~~~~~~~~
vector.c: vector.h:355:25: error: array type has incomplete element type 'union cv'
vector.c: 355 | static const union cv FFT128_Twiddle[] = {
vector.c: | ^~~~~~~~~~~~~~
vector.c: vector.h:367:25: error: array type has incomplete element type 'union cv'
vector.c: 367 | static const union cv FFT256_Twiddle[] = {
vector.c: | ^~~~~~~~~~~~~~
vector.c: vector.c:24:20: error: variable 'V128' has initializer but incomplete type
vector.c: 24 | static const union cv V128 = CV(128);
vector.c: | ^~
vector.c: vector.c:24:30: warning: implicit declaration of function 'CV' [-Wimplicit-function-declaration]
vector.c: 24 | static const union cv V128 = CV(128);
vector.c: | ^~
vector.c: vector.c:25:20: error: variable 'V255' has initializer but incomplete type
vector.c: 25 | static const union cv V255 = CV(255);
vector.c: | ^~
vector.c: vector.c:26:20: error: variable 'V257' has initializer but incomplete type
vector.c: 26 | static const union cv V257 = CV(257);
vector.c: | ^~
vector.c: ...

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