Implementation notes: amd64, sliver, crypto_encrypt/3hfe

Computer: sliver
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160731
Operation: crypto_encrypt
Primitive: 3hfe
TimeImplementationCompilerBenchmark dateSUPERCOP version
1750524refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072520160718
2198100refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072520160718

Test failure

Implementation: crypto_encrypt/3hfe/ref
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111
crypto_encrypt_open does not handle s=t overlap

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

Test failure

Implementation: crypto_encrypt/3hfe/ref
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
error 111
crypto_encrypt_open does not match m

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

Compiler output

Implementation: crypto_encrypt/3hfe/ref
Compiler: clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
HFE-test.cpp: In file included from HFE-test.cpp:18:
HFE-test.cpp: In file included from ./HFE.h:6:
HFE-test.cpp: ./tower.h:364:9: error: argument to '__builtin_ia32_palignr128' must be a constant integer
HFE-test.cpp: return _mm_alignr_epi8(a1, a0, i*2);
HFE-test.cpp: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
HFE-test.cpp: /usr/local/bin/../lib/clang/3.5/include/tmmintrin.h:72:12: note: expanded from macro '_mm_alignr_epi8'
HFE-test.cpp: (__m128i)__builtin_ia32_palignr128((__v16qi)__a, (__v16qi)__b, (n)); })
HFE-test.cpp: ^ ~~~
HFE-test.cpp: In file included from HFE-test.cpp:18:
HFE-test.cpp: In file included from ./HFE.h:6:
HFE-test.cpp: ./tower.h:364:9: error: cannot initialize return object of type '__m128i' with an rvalue of type 'void'
HFE-test.cpp: return _mm_alignr_epi8(a1, a0, i*2);
HFE-test.cpp: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
HFE-test.cpp: /usr/local/bin/../lib/clang/3.5/include/tmmintrin.h:69:34: note: expanded from macro '_mm_alignr_epi8'
HFE-test.cpp: #define _mm_alignr_epi8(a, b, n) __extension__ ({ \
HFE-test.cpp: ^~~~~~~~~~~~~~~~~~
HFE-test.cpp: 2 errors generated.

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

Compiler output

Implementation: crypto_encrypt/3hfe/ref
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.cpp: /tmp//cc9lQKWj.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `void rand_vecgt;(VECgt;*)':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._Z8rand_vecILj31ELj27EEvP3VECIXT_EXT0_EE+0x11): warning: warning: rand() may return deterministic values, is that what you want?
try.cpp: /tmp//cczgwIcY.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `void rand_vecgt;(VECgt;*)':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._Z8rand_vecILj31ELj27EEvP3VECIXT_EXT0_EE+0x11): warning: warning: rand() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_encrypt/3hfe/ref
Compiler: g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.cpp: /tmp//cc2SQPFS.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `void rand_affine_invgt;(MLPSgt;*, MLPSgt;*)':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._Z15rand_affine_invILj31ELj27EEvP4MLPSIXT_EXT0_EXT0_EES2_+0xae): warning: warning: rand() may return deterministic values, is that what you want?
try.cpp: /tmp//cc4cS0Ff.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `void rand_affine_invgt;(MLPSgt;*, MLPSgt;*)':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._Z15rand_affine_invILj31ELj27EEvP4MLPSIXT_EXT0_EXT0_EES2_+0xae): warning: warning: rand() may return deterministic values, is that what you want?
measure.cpp: measure.cpp:24: error: redefinition of 'unsigned char* pk'
measure.cpp: measure.cpp:22: error: 'unsigned char* pk' previously declared here
measure.cpp: measure.cpp:25: error: redefinition of 'unsigned char* sk'
measure.cpp: measure.cpp:23: error: 'unsigned char* sk' previously declared here

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

Compiler output

Implementation: crypto_encrypt/3hfe/ref
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.cpp: /tmp//ccT9nl8U.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `void rand_vecgt;(VECgt;*)':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._Z8rand_vecILj31ELj27EEvP3VECIXT_EXT0_EE+0xf): warning: warning: rand() may return deterministic values, is that what you want?

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

Compiler output

Implementation: crypto_encrypt/3hfe/ref
Compiler: g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.cpp: /tmp//ccSQGueE.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `gfgt;::rand()':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._ZN2gfILj31EE4randEv+0x9): warning: warning: rand() may return deterministic values, is that what you want?
try.cpp: /tmp//ccuUbbD6.o: In function `alignedcalloc(unsigned long long)':
try.cpp: try-anything.cpp:(.text+0x...): warning: warning: random() may return deterministic values, is that what you want?
try.cpp: crypto_encrypt_3hfe.a(HFE-test.o): In function `gfgt;::rand()':
try.cpp: HFE-test.cpp:(.gnu.linkonce.t._ZN2gfILj31EE4randEv+0x9): warning: warning: rand() may return deterministic values, is that what you want?
measure.cpp: measure.cpp:24: error: redefinition of 'unsigned char* pk'
measure.cpp: measure.cpp:22: error: 'unsigned char* pk' previously declared here
measure.cpp: measure.cpp:25: error: redefinition of 'unsigned char* sk'
measure.cpp: measure.cpp:23: error: 'unsigned char* sk' previously declared here

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