Implementation notes: amd64, sliver, crypto_aead/aes256otrsv3

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: aes256otrsv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
37452ni_p7m2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
37746ni_p8m1clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
38322ni_p7m1clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
38742ni_p8m2clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
269946refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072820160724
370920refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072820160724
384498refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072820160724
396324refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072820160724
483372refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072820160724

Compiler output

Implementation: crypto_aead/aes256otrsv3/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-f2ad4f.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-826fc7.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/aes256otrsv3/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-f89f8e.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-bc527b.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/aes256otrsv3/ni_p7m2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-2af276.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-da34a1.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/aes256otrsv3/ni_p8m2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-60779d.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-092370.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/aes256otrsv3/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /tmp/try-anything-fed1eb.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-8ff620.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/aes256otrsv3/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/aes256otrsv3/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/aes256otrsv3/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccHN8MaE.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//ccqSCzbm.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/aes256otrsv3/ref
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//cc1CG5oD.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//ccfKxfLu.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/aes256otrsv3/ref
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//cc7aft89.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//ccMcVDa9.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/aes256otrsv3/ref
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccGlhDnr.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//ccHOOYcP.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