Implementation notes: x86, leaf, crypto_aead/paeq128

Computer: leaf
Architecture: x86
CPU ID: unknown CPU ID
SUPERCOP version: 20160731
Operation: crypto_aead
Primitive: paeq128
TimeImplementationCompilerBenchmark dateSUPERCOP version
21580892refg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072920160724
22012272refg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072920160724
28780160refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072920160724
35935488refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072920160724

Compiler output

Implementation: crypto_aead/paeq128/aesni
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.cpp: encrypt.cpp:13:23: error: wmmintrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:17:23: error: x86intrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:144: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:145: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:146: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:147: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:147: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:223: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:224: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:225: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:226: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:226: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const long long int __vector__*, const long long int __vector__*, long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:167: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:241: error: '_mm_aesenc_si128' was not declared in this scope

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

Compiler output

Implementation: crypto_aead/paeq128/opt-win-aes
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.cpp: encrypt.cpp:8:19: error: cstdint: No such file or directory
encrypt.cpp: encrypt.cpp:12:23: error: wmmintrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:13:20: error: intrin.h: No such file or directory
encrypt.cpp: encrypt.cpp:136: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:136: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:137: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:137: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:138: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:138: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:139: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:139: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:215: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:215: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:216: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:216: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:217: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:217: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:218: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp:218: error: integer constant is too large for 'long' type
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const long long int __vector__*, const long long int __vector__*, long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:159: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const long long int __vector__*, long long int __vector__*)':
encrypt.cpp: encrypt.cpp:233: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: encrypt.cpp: In function 'int PAEQ128_opt_AESNI_encrypt(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:798: error: '_mm_extract_epi64' was not declared in this scope

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv opt-win-aes
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv opt-win-aes
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv opt-win-aes
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv opt-win-aes

Compiler output

Implementation: crypto_aead/paeq128/ref
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
try.cpp: /tmp//ccXAnlwg.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: /tmp//ccU8Wi59.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?

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

Compiler output

Implementation: crypto_aead/paeq128/ref
Compiler: g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv
try.cpp: /tmp//cc84sy6P.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: /tmp//ccfi2kSG.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?

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

Compiler output

Implementation: crypto_aead/paeq128/ref
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv
try.cpp: /tmp//cc7XvqMv.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: /tmp//ccfL280T.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?

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

Compiler output

Implementation: crypto_aead/paeq128/ref
Compiler: g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv
try.cpp: /tmp//ccD2JHja.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: /tmp//ccEodzrl.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?

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