Implementation notes: amd64, sliver, crypto_aead/aes256otrpv3

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: aes256otrpv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
14946ni_p7m2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
15030ni_p7m1clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
16320ni_p8m1clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
16500ni_p8m2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
257406refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072820160724
388746refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072820160724
435030refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
453924refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072820160724
513048refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072820160724

Compiler output

Implementation: crypto_aead/aes256otrpv3/ni_p8m1
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:38:
encrypt.c: In file included from ./doubling.h:27:
encrypt.c: ./otr.h:29:26: warning: redefinition of typedef 'block' is a C11 feature [-Wtypedef-redefinition]
encrypt.c: typedef ALIGN(16)__m128i block;
encrypt.c: ^
encrypt.c: ./otr.h:29:26: note: previous definition is here
encrypt.c: typedef ALIGN(16)__m128i block;
encrypt.c: ^
encrypt.c: In file included from encrypt.c:38:
encrypt.c: In file included from ./doubling.h:27:
encrypt.c: ./otr.h:30:23: warning: redefinition of typedef 'uint8' is a C11 feature [-Wtypedef-redefinition]
encrypt.c: typedef unsigned char uint8;
encrypt.c: ^
encrypt.c: ./otr.h:30:23: note: previous definition is here
encrypt.c: typedef unsigned char uint8;
encrypt.c: ^
encrypt.c: In file included from encrypt.c:38:
encrypt.c: In file included from ./doubling.h:27:
encrypt.c: ./otr.h:31:22: warning: redefinition of typedef 'uint32' is a C11 feature [-Wtypedef-redefinition]
encrypt.c: typedef unsigned int uint32;
encrypt.c: ^
encrypt.c: ./otr.h:31:22: note: previous definition is here
encrypt.c: typedef unsigned int uint32;
encrypt.c: ^
encrypt.c: 3 warnings generated.
try.c: /tmp/try-anything-0f6428.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-feced6.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 ni_p8m1

Compiler output

Implementation: crypto_aead/aes256otrpv3/ni_p7m1
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:38:
encrypt.c: In file included from ./doubling.h:27:
encrypt.c: ./otr.h:29:26: warning: redefinition of typedef 'block' is a C11 feature [-Wtypedef-redefinition]
encrypt.c: typedef ALIGN(16)__m128i block;
encrypt.c: ^
encrypt.c: ./otr.h:29:26: note: previous definition is here
encrypt.c: typedef ALIGN(16)__m128i block;
encrypt.c: ^
encrypt.c: In file included from encrypt.c:38:
encrypt.c: In file included from ./doubling.h:27:
encrypt.c: ./otr.h:30:23: warning: redefinition of typedef 'uint8' is a C11 feature [-Wtypedef-redefinition]
encrypt.c: typedef unsigned char uint8;
encrypt.c: ^
encrypt.c: ./otr.h:30:23: note: previous definition is here
encrypt.c: typedef unsigned char uint8;
encrypt.c: ^
encrypt.c: In file included from encrypt.c:38:
encrypt.c: In file included from ./doubling.h:27:
encrypt.c: ./otr.h:31:22: warning: redefinition of typedef 'uint32' is a C11 feature [-Wtypedef-redefinition]
encrypt.c: typedef unsigned int uint32;
encrypt.c: ^
encrypt.c: ./otr.h:31:22: note: previous definition is here
encrypt.c: typedef unsigned int uint32;
encrypt.c: ^
encrypt.c: 3 warnings generated.
try.c: /tmp/try-anything-996442.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-df0ca6.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 ni_p7m1

Compiler output

Implementation: crypto_aead/aes256otrpv3/ni_p7m2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-8818ee.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-fe8a7f.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 ni_p7m2

Compiler output

Implementation: crypto_aead/aes256otrpv3/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-9cf140.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-dd6b66.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/aes256otrpv3/ni_p8m2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-bfcea7.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-a7afa9.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 ni_p8m2

Compiler output

Implementation: crypto_aead/aes256otrpv3/ni_p7m2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:32:23: error: wmmintrin.h: No such file or directory
encrypt.c: encrypt.c:33:42: error: tmmintrin.h: No such file or directory
encrypt.c: encrypt.c:34:42: error: smmintrin.h: No such file or directory
encrypt.c: In file included from encrypt.c:36:
encrypt.c: otr.h:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'block'
encrypt.c: encrypt.c:47: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Q'
encrypt.c: encrypt.c:48: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'encrypt_key'
encrypt.c: encrypt.c:69: error: expected declaration specifiers or '...' before '__m128i'
encrypt.c: encrypt.c: In function 'AES_256_Key_Expansion':
encrypt.c: encrypt.c:71: error: '__m128i' undeclared (first use in this function)
encrypt.c: encrypt.c:71: error: (Each undeclared identifier is reported only once
encrypt.c: encrypt.c:71: error: for each function it appears in.)
encrypt.c: encrypt.c:71: error: expected ';' before 'x0'
encrypt.c: encrypt.c:72: error: 'kp' undeclared (first use in this function)
encrypt.c: encrypt.c:72: error: 'x0' undeclared (first use in this function)
encrypt.c: encrypt.c:72: error: expected expression before ')' token
encrypt.c: encrypt.c:73: error: 'x3' undeclared (first use in this function)
encrypt.c: encrypt.c:73: error: expected expression before ')' token
encrypt.c: encrypt.c:74: error: 'x2' undeclared (first use in this function)
encrypt.c: encrypt.c:75: error: 'x1' undeclared (first use in this function)
encrypt.c: encrypt.c: In function 'AES_128_Key_Expansion':
encrypt.c: encrypt.c:96: error: '__m128i' undeclared (first use in this function)
encrypt.c: encrypt.c:96: error: expected ';' before 'x0'
encrypt.c: encrypt.c:97: error: 'kp' undeclared (first use in this function)
encrypt.c: encrypt.c:97: error: expected expression before ')' token
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/aes256otrpv3/ni_p7m1
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c:33:23: error: wmmintrin.h: No such file or directory
encrypt.c: encrypt.c:34:42: error: tmmintrin.h: No such file or directory
encrypt.c: encrypt.c:35:42: error: smmintrin.h: No such file or directory
encrypt.c: In file included from encrypt.c:37:
encrypt.c: otr.h:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'block'
encrypt.c: In file included from doubling.h:27,
encrypt.c: from encrypt.c:38:
encrypt.c: otr.h:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'block'
encrypt.c: encrypt.c:49: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Q'
encrypt.c: encrypt.c:50: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'encrypt_key'
encrypt.c: encrypt.c:71: error: expected declaration specifiers or '...' before '__m128i'
encrypt.c: encrypt.c: In function 'AES_256_Key_Expansion':
encrypt.c: encrypt.c:73: error: '__m128i' undeclared (first use in this function)
encrypt.c: encrypt.c:73: error: (Each undeclared identifier is reported only once
encrypt.c: encrypt.c:73: error: for each function it appears in.)
encrypt.c: encrypt.c:73: error: expected ';' before 'x0'
encrypt.c: encrypt.c:74: error: 'kp' undeclared (first use in this function)
encrypt.c: encrypt.c:74: error: 'x0' undeclared (first use in this function)
encrypt.c: encrypt.c:74: error: expected expression before ')' token
encrypt.c: encrypt.c:75: error: 'x3' undeclared (first use in this function)
encrypt.c: encrypt.c:75: error: expected expression before ')' token
encrypt.c: encrypt.c:76: error: 'x2' undeclared (first use in this function)
encrypt.c: encrypt.c:77: error: 'x1' undeclared (first use in this function)
encrypt.c: encrypt.c: In function 'AES_128_Key_Expansion':
encrypt.c: encrypt.c:98: error: '__m128i' undeclared (first use in this function)
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/aes256otrpv3/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//cccudlva.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//cc0FpNkN.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/aes256otrpv3/ref
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//cc80gwrA.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//ccByypNP.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/aes256otrpv3/ref
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccQK4Xuo.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//ccMhDC9u.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/aes256otrpv3/ref
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccv59bzh.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//ccbwmnlR.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