Implementation notes: amd64, floodyberry, crypto_hash/blake2s

Computer: floodyberry
Architecture: amd64
CPU ID: GenuineIntel-00010676-bfebfbff
SUPERCOP version: 20140505
Operation: crypto_hash
Primitive: blake2s
TimeImplementationCompilerBenchmark dateSUPERCOP version
9137xmmicc -m64 -O3 -static -xHost -fomit-frame-pointer2014050720140505
9200xmmgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014050720140505
9212xmmgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014050720140505
9250xmmicc -m64 -O1 -static -xHost -fomit-frame-pointer2014050720140505
11475xmmgcc -m64 -O2 -fomit-frame-pointer2014050720140505
11487xmmgcc -m64 -O3 -fomit-frame-pointer2014050720140505
12763regsicc -m64 -O1 -static -xHost -fomit-frame-pointer2014050720140505
12863regsicc -m64 -O3 -static -xHost -fomit-frame-pointer2014050720140505
13050regsgcc -m64 -O2 -fomit-frame-pointer2014050720140505
13063regsgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014050720140505
13075regsgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014050720140505
13088regsgcc -m64 -O3 -fomit-frame-pointer2014050720140505
13613regsclang -O3 -march=native -m64 -fomit-frame-pointer2014050720140505
14875regsclang -O1 -march=native -m64 -fomit-frame-pointer2014050720140505
43012refclang -O1 -march=native -m64 -fomit-frame-pointer2014050720140505

Test failure

Implementation: crypto_hash/blake2s/avxicc
Compiler: clang -O1 -march=native -m64 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 11, namely:
CompilerImplementations
clang -O1 -march=native -m64 -fomit-frame-pointer avxicc xmm
clang -O3 -march=native -m64 -fomit-frame-pointer avxicc ref xmm
gcc -m64 -O2 -fomit-frame-pointer avxicc
gcc -m64 -O3 -fomit-frame-pointer avxicc
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer avxicc
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer avxicc
icc -m64 -O1 -static -xHost -fomit-frame-pointer avxicc
icc -m64 -O3 -static -xHost -fomit-frame-pointer avxicc

Compiler output

Implementation: crypto_hash/blake2s/regs
Compiler: clang -O1 -march=native -m64 -fomit-frame-pointer
blake2s.c: blake2s.c:796:11: warning: implicit conversion from 'unsigned long' to 'uint32_t' (aka 'unsigned int') changes value from 18446744073180816980 to 3766232660 [-Wconstant-conversion]
blake2s.c: v14 = ~0x1F83D9ABUL;
blake2s.c: ~ ^~~~~~~~~~~~~
blake2s.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O1 -march=native -m64 -fomit-frame-pointer regs
clang -O3 -march=native -m64 -fomit-frame-pointer regs

Compiler output

Implementation: crypto_hash/blake2s/avxicc
Compiler: clang -O1 -march=native -m64 -fomit-frame-pointer
blake2s.s: clang: warning: argument unused during compilation: '-fomit-frame-pointer'
blake2s.s: clang: warning: argument unused during compilation: '-D SUPERCOP'
blake2s.s: clang: warning: argument unused during compilation: '-I .'
blake2s.s: clang: warning: argument unused during compilation: '-I /home/bloom/supercop-20140505/supercop-data/floodyberry/amd64/include'

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O1 -march=native -m64 -fomit-frame-pointer avxicc
clang -O3 -march=native -m64 -fomit-frame-pointer avxicc

Compiler output

Implementation: crypto_hash/blake2s/ref
Compiler: gcc -m64 -O2 -fomit-frame-pointer
blake2s-ref.c: blake2s-ref.c: In function 'blake2s_init0':
blake2s-ref.c: blake2s-ref.c:137:3: error: 'for' loop initial declarations are only allowed in C99 mode
blake2s-ref.c: blake2s-ref.c:137:3: note: use option -std=c99 or -std=gnu99 to compile your code
blake2s-ref.c: blake2s-ref.c: In function 'blake2s_init_param':
blake2s-ref.c: blake2s-ref.c:149:3: error: 'for' loop initial declarations are only allowed in C99 mode
blake2s-ref.c: blake2s-ref.c: In function 'blake2s_compress':
blake2s-ref.c: blake2s-ref.c:215:3: error: 'for' loop initial declarations are only allowed in C99 mode
blake2s-ref.c: blake2s-ref.c:218:15: error: redefinition of 'i'
blake2s-ref.c: blake2s-ref.c:215:15: note: previous definition of 'i' was here
blake2s-ref.c: blake2s-ref.c:218:3: error: 'for' loop initial declarations are only allowed in C99 mode
blake2s-ref.c: blake2s-ref.c:262:15: error: redefinition of 'i'
blake2s-ref.c: blake2s-ref.c:218:15: note: previous definition of 'i' was here
blake2s-ref.c: blake2s-ref.c:262:3: error: 'for' loop initial declarations are only allowed in C99 mode
blake2s-ref.c: blake2s-ref.c: In function 'blake2s_final':
blake2s-ref.c: blake2s-ref.c:318:3: error: 'for' loop initial declarations are only allowed in C99 mode

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

Compiler output

Implementation: crypto_hash/blake2s/regs
Compiler: gcc -m64 -O2 -fomit-frame-pointer
blake2s.c: blake2s.c: In function 'crypto_hash_blake2s_regs':
blake2s.c: blake2s.c:796:5: warning: large integer implicitly truncated to unsigned type [-Woverflow]

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

Compiler output

Implementation: crypto_hash/blake2s/ref
Compiler: icc -m64 -O1 -static -xHost -fomit-frame-pointer
blake2s-ref.c: blake2s-ref.c(137): error: expected an expression
blake2s-ref.c: for( int i = 0; i gt;h[i] = blake2s_IV[i];
blake2s-ref.c: ^
blake2s-ref.c:
blake2s-ref.c: blake2s-ref.c(137): error: identifier "i" is undefined
blake2s-ref.c: for( int i = 0; i gt;h[i] = blake2s_IV[i];
blake2s-ref.c: ^
blake2s-ref.c:
blake2s-ref.c: blake2s-ref.c(149): error: type name is not allowed
blake2s-ref.c: for( size_t i = 0; i blake2s-ref.c: ^
blake2s-ref.c:
blake2s-ref.c: blake2s-ref.c(149): error: expected a ";"
blake2s-ref.c: for( size_t i = 0; i blake2s-ref.c: ^
blake2s-ref.c:
blake2s-ref.c: blake2s-ref.c(149): error: identifier "i" is undefined
blake2s-ref.c: for( size_t i = 0; i blake2s-ref.c: ^
blake2s-ref.c:
blake2s-ref.c: blake2s-ref.c(215): error: type name is not allowed
blake2s-ref.c: for( size_t i = 0; i blake2s-ref.c: ^
blake2s-ref.c:
blake2s-ref.c: blake2s-ref.c(215): error: expected a ";"
blake2s-ref.c: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -m64 -O1 -static -xHost -fomit-frame-pointer ref
icc -m64 -O3 -static -xHost -fomit-frame-pointer ref

Compiler output

Implementation: crypto_hash/blake2s/regs
Compiler: icc -m64 -O1 -static -xHost -fomit-frame-pointer
blake2s.c: blake2s.c(796): warning #69: integer conversion resulted in truncation
blake2s.c: v14 = ~0x1F83D9ABUL;
blake2s.c: ^
blake2s.c:

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
icc -m64 -O1 -static -xHost -fomit-frame-pointer regs
icc -m64 -O3 -static -xHost -fomit-frame-pointer regs