Implementation notes: amd64, sliver, crypto_aead/aeadaes256ocbtaglen128v1

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: aeadaes256ocbtaglen128v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
17604optclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
18726dolbeau/aesenc-intclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080120160731
420528refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072420160718
805812refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072420160718
811398refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072420160718
851562refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072420160718
889566refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072420160718

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/opt
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-1d9cf4.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-75ac19.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-694142.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-a5517b.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/dolbeau/aesenc-int
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:74:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
encrypt.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/local/bin/../lib/clang/3.5/include/emmintrin.h:1069:32: note: passing argument to parameter '__p' here
encrypt.c: _mm_loadu_si128(__m128i const *__p)
encrypt.c: ^
encrypt.c: encrypt.c:75:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
encrypt.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
encrypt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: /usr/local/bin/../lib/clang/3.5/include/emmintrin.h:1069:32: note: passing argument to parameter '__p' here
encrypt.c: _mm_loadu_si128(__m128i const *__p)
encrypt.c: ^
encrypt.c: 2 warnings generated.
try.c: /tmp/try-anything-c693dd.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp/try-anything-e1a9d2.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccTekeqd.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccgO8hYC.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/opt
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//cceG1TtE.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: crypto_aead_aeadaes256ocbtaglen128v1.a(ocb.o): In function `gen_offset_from_nonce':
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv opt

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:45:23: error: immintrin.h: No such file or directory
encrypt.c: encrypt.c:73: error: expected declaration specifiers or '...' before '__m128i'
encrypt.c: encrypt.c: In function 'aes256ni_setkey_encrypt':
encrypt.c: encrypt.c:74: error: '__m128i' undeclared (first use in this function)
encrypt.c: encrypt.c:74: error: (Each undeclared identifier is reported only once
encrypt.c: encrypt.c:74: error: for each function it appears in.)
encrypt.c: encrypt.c:74: error: expected ';' before 'key0'
encrypt.c: encrypt.c:75: error: expected ';' before 'key1'
encrypt.c: encrypt.c:76: error: expected ';' before 'temp0'
encrypt.c: encrypt.c:79: error: 'rkeys' undeclared (first use in this function)
encrypt.c: encrypt.c:79: error: 'key0' undeclared (first use in this function)
encrypt.c: encrypt.c:80: error: 'temp0' undeclared (first use in this function)
encrypt.c: encrypt.c:81: error: 'temp2' undeclared (first use in this function)
encrypt.c: encrypt.c:81: error: 'key1' undeclared (first use in this function)
encrypt.c: encrypt.c:104: error: 'temp1' undeclared (first use in this function)
encrypt.c: encrypt.c:104: error: 'temp4' undeclared (first use in this function)
encrypt.c: encrypt.c: At top level:
encrypt.c: encrypt.c:125: error: expected declaration specifiers or '...' before '__m128i'
encrypt.c: encrypt.c: In function 'aes256ni_setkey_decrypt':
encrypt.c: encrypt.c:126: error: '__m128i' undeclared (first use in this function)
encrypt.c: encrypt.c:126: error: expected ';' before 'tkeys'
encrypt.c: encrypt.c:128: error: 'tkeys' undeclared (first use in this function)
encrypt.c: encrypt.c:128: error: too many arguments to function 'aes256ni_setkey_encrypt'
encrypt.c: encrypt.c:129: error: 'rkeys' undeclared (first use in this function)
encrypt.c: encrypt.c: At top level:
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/opt
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccIWejDg.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: crypto_aead_aeadaes256ocbtaglen128v1.a(ocb.o): In function `gen_offset_from_nonce':
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv opt

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/ref
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccxQUz4j.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cckWtfhi.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/opt
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//cc9v612r.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: crypto_aead_aeadaes256ocbtaglen128v1.a(ocb.o): In function `gen_offset_from_nonce':
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv opt

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/ref
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//cciUZq2w.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//cchvsPma.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/ref
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//cc1b88ta.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: /tmp//ccft2ypn.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref

Compiler output

Implementation: crypto_aead/aeadaes256ocbtaglen128v1/opt
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//cc3sehcD.o: In function `alignedcalloc':
try.c: try-anything.c:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.c: crypto_aead_aeadaes256ocbtaglen128v1.a(ocb.o): In function `gen_offset_from_nonce':
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: ocb.c:(.text+0x...): undefined reference to `__builtin_bswap64'
try.c: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv opt