Implementation notes: amd64, sliver, crypto_aead/pi64cipher256v1

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: pi64cipher256v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
236988optimized_nonSSEgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072420160718
306426refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072420160718
311748optimized_nonSSEgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072420160718
322272optimized_nonSSEgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072420160718
329358refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072420160718
352338optimized_nonSSEgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072420160718
461544refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072420160718
493164refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072420160718

Test failure

Implementation: crypto_aead/pi64cipher256v1/optimized_nonSSE
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
error 111
crypto_aead_decrypt returns nonzero

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:231:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:333:68: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: c[CRYPTO_NSECBYTES+b+i] = InternalState8[i1] = InternalState8[i1++] ^ m[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:478:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: 3 warnings generated.
try.c: /tmp/try-anything-7eb01d.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/pi64cipher256v1/optimized_nonSSE
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:346:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:448:68: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: c[CRYPTO_NSECBYTES+b+i] = InternalState8[i1] = InternalState8[i1++] ^ m[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:593:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: 3 warnings generated.
try.c: /tmp/try-anything-a7680c.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 optimized_nonSSE

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_AVX
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /usr/bin/ld: crypto_aead_pi64cipher256v1.a(encrypt_AVX.o): relocation R_X86_64_32S against `InternalState' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_aead_pi64cipher256v1.a: could not read symbols: Bad value
try.c: clang-3.5: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_AVX2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /usr/bin/ld: crypto_aead_pi64cipher256v1.a(encrypt_AVX2.o): relocation R_X86_64_32S against `InternalState' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_aead_pi64cipher256v1.a: could not read symbols: Bad value
try.c: clang-3.5: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_SSE
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: /usr/bin/ld: crypto_aead_pi64cipher256v1.a(encrypt_SSE.o): relocation R_X86_64_32S against `InternalState' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_aead_pi64cipher256v1.a: could not read symbols: Bad value
try.c: clang-3.5: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_AVX
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt_AVX.S: encrypt_AVX.s: Assembler messages:
encrypt_AVX.S: encrypt_AVX.s:21: Error: no such instruction: `vpxor %xmm0,%xmm0,%xmm0'
encrypt_AVX.S: encrypt_AVX.s:46: Error: no such instruction: `vmovdqa %xmm0,1032(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:50: Error: no such instruction: `vmovdqa %xmm0,1048(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:52: Error: no such instruction: `vmovdqa %xmm0,1064(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:53: Error: no such instruction: `vmovdqa %xmm0,1080(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:54: Error: no such instruction: `vmovdqa %xmm0,1096(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:55: Error: no such instruction: `vmovdqa %xmm0,1112(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:56: Error: no such instruction: `vmovdqa %xmm0,1128(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:57: Error: no such instruction: `vmovdqa %xmm0,1144(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:58: Error: no such instruction: `vpxor %xmm0,%xmm0,%xmm0'
encrypt_AVX.S: encrypt_AVX.s:60: Error: no such instruction: `vmovdqa %ymm0,InternalState(%rip)'
encrypt_AVX.S: encrypt_AVX.s:61: Error: no such instruction: `vmovdqa %ymm0,InternalState+32(%rip)'
encrypt_AVX.S: encrypt_AVX.s:62: Error: no such instruction: `vmovdqa %ymm0,InternalState+64(%rip)'
encrypt_AVX.S: encrypt_AVX.s:63: Error: no such instruction: `vmovdqa %ymm0,InternalState+96(%rip)'
encrypt_AVX.S: encrypt_AVX.s:66: Error: no such instruction: `vmovdqu (%rsi),%xmm0'
encrypt_AVX.S: encrypt_AVX.s:67: Error: no such instruction: `vinsertf128 $0x1,16(%rsi),%ymm0,%ymm0'
encrypt_AVX.S: encrypt_AVX.s:68: Error: no such instruction: `vmovdqa %ymm0,InternalState(%rip)'
encrypt_AVX.S: encrypt_AVX.s:74: Error: no such instruction: `vmovdqu (%r8),%xmm0'
encrypt_AVX.S: encrypt_AVX.s:75: Error: no such instruction: `vmovdqa %xmm0,InternalState+32(%rip)'
encrypt_AVX.S: encrypt_AVX.s:1224: Error: no such instruction: `vmovdqa InternalState(%rip),%ymm0'
encrypt_AVX.S: encrypt_AVX.s:1225: Error: no such instruction: `vmovdqa %ymm0,904(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:1226: Error: no such instruction: `vmovdqa InternalState+32(%rip),%ymm0'
encrypt_AVX.S: encrypt_AVX.s:1227: Error: no such instruction: `vmovdqa %ymm0,936(%rsp)'
encrypt_AVX.S: encrypt_AVX.s:1228: Error: no such instruction: `vmovdqa InternalState+64(%rip),%ymm0'
encrypt_AVX.S: ...

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_AVX2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt_AVX2.S: encrypt.s: Assembler messages:
encrypt_AVX2.S: encrypt.s:23: Error: no such instruction: `vpxor %xmm0,%xmm0,%xmm0'
encrypt_AVX2.S: encrypt.s:43: Error: no such instruction: `vmovdqa %ymm0,1800(%rsp)'
encrypt_AVX2.S: encrypt.s:52: Error: no such instruction: `vmovdqa %ymm0,1832(%rsp)'
encrypt_AVX2.S: encrypt.s:54: Error: no such instruction: `vmovdqa %ymm0,1864(%rsp)'
encrypt_AVX2.S: encrypt.s:55: Error: no such instruction: `vmovdqa %ymm0,1896(%rsp)'
encrypt_AVX2.S: encrypt.s:56: Error: no such instruction: `vmovdqa %ymm0,1928(%rsp)'
encrypt_AVX2.S: encrypt.s:57: Error: no such instruction: `vmovdqa %ymm0,1960(%rsp)'
encrypt_AVX2.S: encrypt.s:58: Error: no such instruction: `vmovdqa %ymm0,1992(%rsp)'
encrypt_AVX2.S: encrypt.s:59: Error: no such instruction: `vmovdqa %ymm0,2024(%rsp)'
encrypt_AVX2.S: encrypt.s:60: Error: no such instruction: `vmovdqa %ymm0,InternalState(%rip)'
encrypt_AVX2.S: encrypt.s:61: Error: no such instruction: `vmovdqa %ymm0,InternalState+32(%rip)'
encrypt_AVX2.S: encrypt.s:62: Error: no such instruction: `vmovdqa %ymm0,InternalState+64(%rip)'
encrypt_AVX2.S: encrypt.s:63: Error: no such instruction: `vmovdqa %ymm0,InternalState+96(%rip)'
encrypt_AVX2.S: encrypt.s:66: Error: no such instruction: `vmovdqu (%rsi),%xmm0'
encrypt_AVX2.S: encrypt.s:67: Error: no such instruction: `vinserti128 $0x1,16(%rsi),%ymm0,%ymm0'
encrypt_AVX2.S: encrypt.s:68: Error: no such instruction: `vmovdqa %ymm0,InternalState(%rip)'
encrypt_AVX2.S: encrypt.s:74: Error: no such instruction: `vmovdqu (%r8),%xmm0'
encrypt_AVX2.S: encrypt.s:75: Error: no such instruction: `vmovdqa %xmm0,InternalState+32(%rip)'
encrypt_AVX2.S: encrypt.s:1224: Error: no such instruction: `vmovdqa InternalState(%rip),%ymm0'
encrypt_AVX2.S: encrypt.s:1225: Error: no such instruction: `vmovdqa %ymm0,1672(%rsp)'
encrypt_AVX2.S: encrypt.s:1226: Error: no such instruction: `vmovdqa InternalState+32(%rip),%ymm0'
encrypt_AVX2.S: encrypt.s:1227: Error: no such instruction: `vmovdqa %ymm0,1704(%rsp)'
encrypt_AVX2.S: encrypt.s:1228: Error: no such instruction: `vmovdqa InternalState+64(%rip),%ymm0'
encrypt_AVX2.S: encrypt.s:1229: Error: no such instruction: `vmovdqa %ymm0,1736(%rsp)'
encrypt_AVX2.S: ...

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/ref
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccbGGFAa.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//cc95krsP.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/pi64cipher256v1/optimized_nonSSE
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccks0G4f.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//cceDHWtO.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 optimized_nonSSE

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_SSE
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.c: /usr/bin/ld: crypto_aead_pi64cipher256v1.a(encrypt_SSE.o): relocation R_X86_64_32S against `InternalState' can not be used when making a shared object; recompile with -fPIC
try.c: crypto_aead_pi64cipher256v1.a: could not read symbols: Bad value
try.c: collect2: ld returned 1 exit status

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

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_nonSSE
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccJ9tq5b.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//ccqhceO5.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 optimized_nonSSE

Compiler output

Implementation: crypto_aead/pi64cipher256v1/ref
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.c: /tmp//ccUkZuBT.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//cc5HhYBt.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/pi64cipher256v1/ref
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccINhNo8.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//ccSzD3Eh.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/pi64cipher256v1/optimized_nonSSE
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.c: /tmp//ccMv3Xxi.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//ccwEnUO7.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 optimized_nonSSE

Compiler output

Implementation: crypto_aead/pi64cipher256v1/optimized_nonSSE
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccK58ej9.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//ccOfwCSG.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 optimized_nonSSE

Compiler output

Implementation: crypto_aead/pi64cipher256v1/ref
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.c: /tmp//ccm7jeUt.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//ccXFsp7y.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