Implementation notes: x86, thoth, crypto_aead/hs1sivhiv2

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: hs1sivhiv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
115264fasterclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080320160731
115526fastergcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080320160731
119060fastergcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080320160731
123366fastergcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080320160731
124205refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080320160731
126308fastergcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080320160731
146827refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080320160731
159390refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080320160731
186609refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080320160731
187113refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080320160731

Compiler output

Implementation: crypto_aead/hs1sivhiv2/dolbeau/amd64-avx512
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:90:2: error: "This code requires AVX512F to work"
encrypt.c: #error "This code requires AVX512F to work"
encrypt.c: ^
encrypt.c: encrypt.c:297:14: error: expected ';' after expression
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: ;
encrypt.c: encrypt.c:297:3: error: use of undeclared identifier '__uint128_t'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:297:15: error: use of undeclared identifier 'tmp'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:297:28: error: expected ')'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:297:21: note: to match this '('
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:297:28: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ~~~~~ ^
encrypt.c: encrypt.c:297:51: error: expected ')'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments dolbeau/amd64-avx512

Compiler output

Implementation: crypto_aead/hs1sivhiv2/faster
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
hs1.c: hs1.c:1033:30: warning: implicitly declaring library function 'malloc' with type 'void *(unsigned int)' [-Wimplicit-function-declaration]
hs1.c: unsigned char *tmp = malloc(abytes);
hs1.c: ^
hs1.c: hs1.c:1033:30: note: include the header gt; or explicitly provide a declaration for 'malloc'
hs1.c: hs1.c:1037:9: warning: implicit declaration of function 'free' is invalid in C99 [-Wimplicit-function-declaration]
hs1.c: free(tmp);
hs1.c: ^
hs1.c: 2 warnings generated.

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

Compiler output

Implementation: crypto_aead/hs1sivhiv2/dolbeau/amd64-avx512
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:90:2: error: #error "This code requires AVX512F to work"
encrypt.c: #error "This code requires AVX512F to work"
encrypt.c: ^
encrypt.c: encrypt.c: In function 'poly_step':
encrypt.c: encrypt.c:297:3: error: unknown type name '__uint128_t'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:297:28: error: unknown type name '__uint128_t'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:297:51: error: unknown type name '__uint128_t'
encrypt.c: __uint128_t tmp = (const __uint128_t)a * (const __uint128_t)k;
encrypt.c: ^
encrypt.c: encrypt.c:298:49: warning: right shift count >gt;= width of type [-Wshift-count-overflow]
encrypt.c: return ((uint64_t)tmp & m61) + (uint64_t)(tmp >gt;>gt; 61) + m;
encrypt.c: ^
encrypt.c: encrypt.c: In function 'prf_hash2_3':
encrypt.c: encrypt.c:389:14: warning: implicit declaration of function '_mm512_reduce_add_epi64' [-Wimplicit-function-declaration]
encrypt.c: ia0[0] = _mm512_reduce_add_epi64(p0_##I##s) & m60; \
encrypt.c: ^
encrypt.c: encrypt.c:406:5: note: in expansion of macro 'ACCANDSTORE'
encrypt.c: ACCANDSTORE(s, 1); \
encrypt.c: ^
encrypt.c: encrypt.c:425:21: note: in expansion of macro 'ALL3HASH_SEQ'
encrypt.c: #define ALL3HASH(s) ALL3HASH_SEQ(s)
encrypt.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv dolbeau/amd64-avx512

Compiler output

Implementation: crypto_aead/hs1sivhiv2/faster
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
hs1.c: hs1.c: In function 'hs1siv_decrypt':
hs1.c: hs1.c:1033:30: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
hs1.c: unsigned char *tmp = malloc(abytes);
hs1.c: ^
hs1.c: hs1.c:1033:30: warning: incompatible implicit declaration of built-in function 'malloc'
hs1.c: hs1.c:1033:30: note: include 'gt;' or provide a declaration of 'malloc'
hs1.c: hs1.c:1037:9: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
hs1.c: free(tmp);
hs1.c: ^
hs1.c: hs1.c:1037:9: warning: incompatible implicit declaration of built-in function 'free'
hs1.c: hs1.c:1037:9: note: include 'gt;' or provide a declaration of 'free'

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