Implementation notes: amd64, genji202, crypto_aead/paeq128tnm

Computer: genji202
Architecture: amd64
CPU ID: GenuineIntel-000306f2-bfebfbff
SUPERCOP version: 20171020
Operation: crypto_aead
Primitive: paeq128tnm
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
47572? ? ?? ? ?aesnig++_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017111320171020
47580? ? ?? ? ?aesnig++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111320171020
47724? ? ?? ? ?aesnig++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111320171020
47752? ? ?? ? ?aesnig++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111320171020
47760? ? ?? ? ?aesnig++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111320171020
47792? ? ?? ? ?aesniicpc_-xCORE-AVX2_-O3_-fomit-frame-pointer2017111320171020
47920? ? ?? ? ?aesniicpc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2017111320171020
47944? ? ?? ? ?aesnig++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111320171020
47956? ? ?? ? ?aesnig++_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017111320171020
47980? ? ?? ? ?aesnig++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111320171020
47988? ? ?? ? ?aesnig++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111320171020
48752? ? ?? ? ?aesniicpc_-xCORE-AVX2_-O2_-fomit-frame-pointer2017111320171020
48772? ? ?? ? ?aesnig++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111320171020
48780? ? ?? ? ?aesnig++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111320171020
48792? ? ?? ? ?aesnig++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111320171020
48796? ? ?? ? ?aesniicpc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2017111320171020
48800? ? ?? ? ?aesnig++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111320171020
48896? ? ?? ? ?aesnig++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111320171020
48908? ? ?? ? ?aesnig++_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017111320171020
50284? ? ?? ? ?aesnig++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111320171020
50296? ? ?? ? ?aesnig++_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017111320171020
50308? ? ?? ? ?aesnig++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111320171020
50536? ? ?? ? ?aesnig++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111320171020
50788? ? ?? ? ?aesnig++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111320171020
2817868? ? ?? ? ?reficpc_-xCORE-AVX2_-O3_-fomit-frame-pointer2017111320171020
2954752? ? ?? ? ?reficpc_-xCORE-AVX2_-O2_-fomit-frame-pointer2017111320171020
3238136? ? ?? ? ?refg++_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111320171020
3251360? ? ?? ? ?refg++_-march=barcelona_-O3_-fomit-frame-pointer2017111320171020
3306308? ? ?? ? ?reficpc_-xCORE-AVX-I_-O3_-fomit-frame-pointer2017111320171020
3310464? ? ?? ? ?refg++_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111320171020
3315932? ? ?? ? ?reficpc_-xCORE-AVX-I_-O2_-fomit-frame-pointer2017111320171020
3356476? ? ?? ? ?refg++_-march=nocona_-O3_-fomit-frame-pointer2017111320171020
3503376? ? ?? ? ?refg++_-m64_-march=corei7_-O3_-fomit-frame-pointer2017111320171020
3504792? ? ?? ? ?refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111320171020
3505680? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111320171020
3506388? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017111320171020
3509140? ? ?? ? ?refg++_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017111320171020
3520692? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017111320171020
3562996? ? ?? ? ?refg++_-m64_-march=k8_-O3_-fomit-frame-pointer2017111320171020
3565520? ? ?? ? ?refg++_-march=k8_-O3_-fomit-frame-pointer2017111320171020
3586016? ? ?? ? ?refg++_-m64_-O3_-fomit-frame-pointer2017111320171020
3586976? ? ?? ? ?refg++_-O3_-fomit-frame-pointer2017111320171020
3588260? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017111320171020
3588312? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017111320171020
3589400? ? ?? ? ?refg++_-m64_-march=core2_-O3_-fomit-frame-pointer2017111320171020
3593232? ? ?? ? ?refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111320171020
3596800? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111320171020
3600908? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111320171020
5826040? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017111320171020
7568816? ? ?? ? ?refg++_-m64_-march=core2_-O2_-fomit-frame-pointer2017111320171020
7574160? ? ?? ? ?refg++_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111320171020
7609580? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111320171020
7620420? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111320171020
7621188? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111320171020
7623484? ? ?? ? ?refg++_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017111320171020
7626404? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017111320171020
7633148? ? ?? ? ?refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111320171020
7644936? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017111320171020
7646208? ? ?? ? ?refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111320171020
7661848? ? ?? ? ?refg++_-m64_-march=k8_-O2_-fomit-frame-pointer2017111320171020
7670940? ? ?? ? ?refg++_-m64_-O2_-fomit-frame-pointer2017111320171020
7741008? ? ?? ? ?refg++_-O2_-fomit-frame-pointer2017111320171020
7741084? ? ?? ? ?refg++_-march=k8_-O2_-fomit-frame-pointer2017111320171020
8773828? ? ?? ? ?refg++_-march=k8_-O_-fomit-frame-pointer2017111320171020
8776128? ? ?? ? ?refg++_-m64_-march=k8_-O_-fomit-frame-pointer2017111320171020
8848820? ? ?? ? ?refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2017111320171020
8852940? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111320171020
8853948? ? ?? ? ?refg++_-m64_-O_-fomit-frame-pointer2017111320171020
8863404? ? ?? ? ?refg++_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017111320171020
8870388? ? ?? ? ?refg++_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017111320171020
8871588? ? ?? ? ?refg++_-m64_-march=core2_-O_-fomit-frame-pointer2017111320171020
8877792? ? ?? ? ?refg++_-O_-fomit-frame-pointer2017111320171020
8880184? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111320171020
8880436? ? ?? ? ?refg++_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017111320171020
8900328? ? ?? ? ?refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111320171020
8903752? ? ?? ? ?refg++_-m64_-march=corei7_-O_-fomit-frame-pointer2017111320171020
8940756? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111320171020
15225168? ? ?? ? ?refg++_-march=nocona_-O_-fomit-frame-pointer2017111320171020
15258444? ? ?? ? ?refg++_-m64_-march=nocona_-O_-fomit-frame-pointer2017111320171020
18545980? ? ?? ? ?refg++_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111320171020
18547004? ? ?? ? ?refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111320171020
18554024? ? ?? ? ?refg++_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017111320171020
18558036? ? ?? ? ?refg++_-march=nocona_-Os_-fomit-frame-pointer2017111320171020
18563064? ? ?? ? ?refg++_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111320171020
18835584? ? ?? ? ?refg++_-march=barcelona_-Os_-fomit-frame-pointer2017111320171020
18836568? ? ?? ? ?refg++_-march=k8_-Os_-fomit-frame-pointer2017111320171020
18836876? ? ?? ? ?refg++_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111320171020
18851276? ? ?? ? ?refg++_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111320171020
18853576? ? ?? ? ?refg++_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111320171020
18854272? ? ?? ? ?refg++_-m64_-march=core2_-Os_-fomit-frame-pointer2017111320171020
18857844? ? ?? ? ?refg++_-m64_-march=k8_-Os_-fomit-frame-pointer2017111320171020
18912724? ? ?? ? ?refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111320171020
19101120? ? ?? ? ?refg++_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111320171020
19124196? ? ?? ? ?refg++_-march=nocona_-O2_-fomit-frame-pointer2017111320171020
19130820? ? ?? ? ?refg++_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111320171020
19140416? ? ?? ? ?refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111320171020
19146532? ? ?? ? ?refg++_-Os_-fomit-frame-pointer2017111320171020
19157416? ? ?? ? ?refg++_-m64_-Os_-fomit-frame-pointer2017111320171020
19825532? ? ?? ? ?refg++_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017111320171020
19859868? ? ?? ? ?refg++_-march=barcelona_-O_-fomit-frame-pointer2017111320171020
19862264? ? ?? ? ?refg++_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017111320171020
19898184? ? ?? ? ?refg++_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111320171020
20273380? ? ?? ? ?refg++_-march=barcelona_-O2_-fomit-frame-pointer2017111320171020
20276328? ? ?? ? ?refg++_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111320171020
42076988? ? ?? ? ?refg++2017111320171020

Compiler output

Implementation: crypto_aead/paeq128tnm/aesni
Compiler: g++
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:174:9: note: called from here
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:173:9: note: called from here
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:172:9: note: called from here
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ...

Number of similar (compiler,implementation) pairs: 53, namely:
CompilerImplementations
g++ aesni
g++ -O2 -fomit-frame-pointer aesni
g++ -O3 -fomit-frame-pointer aesni
g++ -O -fomit-frame-pointer aesni
g++ -Os -fomit-frame-pointer aesni
g++ -fno-schedule-insns -O2 -fomit-frame-pointer aesni
g++ -fno-schedule-insns -O3 -fomit-frame-pointer aesni
g++ -fno-schedule-insns -O -fomit-frame-pointer aesni
g++ -fno-schedule-insns -Os -fomit-frame-pointer aesni
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer aesni
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer aesni
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer aesni
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer aesni
g++ -m64 -O2 -fomit-frame-pointer aesni
g++ -m64 -O3 -fomit-frame-pointer aesni
g++ -m64 -O -fomit-frame-pointer aesni
g++ -m64 -Os -fomit-frame-pointer aesni
g++ -m64 -march=core2 -O2 -fomit-frame-pointer aesni
g++ -m64 -march=core2 -O3 -fomit-frame-pointer aesni
g++ -m64 -march=core2 -O -fomit-frame-pointer aesni
g++ -m64 -march=core2 -Os -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer aesni
g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer aesni
g++ -m64 -march=corei7 -O2 -fomit-frame-pointer aesni
g++ -m64 -march=corei7 -O3 -fomit-frame-pointer aesni
g++ -m64 -march=corei7 -O -fomit-frame-pointer aesni
g++ -m64 -march=corei7 -Os -fomit-frame-pointer aesni
g++ -m64 -march=k8 -O2 -fomit-frame-pointer aesni
g++ -m64 -march=k8 -O3 -fomit-frame-pointer aesni
g++ -m64 -march=k8 -O -fomit-frame-pointer aesni
g++ -m64 -march=k8 -Os -fomit-frame-pointer aesni
g++ -m64 -march=nocona -O2 -fomit-frame-pointer aesni
g++ -m64 -march=nocona -O3 -fomit-frame-pointer aesni
g++ -m64 -march=nocona -O -fomit-frame-pointer aesni
g++ -m64 -march=nocona -Os -fomit-frame-pointer aesni
g++ -march=barcelona -O2 -fomit-frame-pointer aesni
g++ -march=barcelona -O3 -fomit-frame-pointer aesni
g++ -march=barcelona -O -fomit-frame-pointer aesni
g++ -march=barcelona -Os -fomit-frame-pointer aesni
g++ -march=k8 -O2 -fomit-frame-pointer aesni
g++ -march=k8 -O3 -fomit-frame-pointer aesni
g++ -march=k8 -O -fomit-frame-pointer aesni
g++ -march=k8 -Os -fomit-frame-pointer aesni
g++ -march=nocona -O2 -fomit-frame-pointer aesni
g++ -march=nocona -O3 -fomit-frame-pointer aesni
g++ -march=nocona -O -fomit-frame-pointer aesni
g++ -march=nocona -Os -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq128tnm/ref
Compiler: g++
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_paeq128tnm_ref_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*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:355:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_encrypt_no_nonce(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:610:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_paeq128tnm_ref_decrypt(unsigned char*, long long unsigned int*, unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:864:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits

Number of similar (compiler,implementation) pairs: 73, namely:
CompilerImplementations
g++ ref
g++ -O2 -fomit-frame-pointer ref
g++ -O3 -fomit-frame-pointer ref
g++ -O -fomit-frame-pointer ref
g++ -Os -fomit-frame-pointer ref
g++ -fno-schedule-insns -O2 -fomit-frame-pointer ref
g++ -fno-schedule-insns -O3 -fomit-frame-pointer ref
g++ -fno-schedule-insns -O -fomit-frame-pointer ref
g++ -fno-schedule-insns -Os -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
g++ -m64 -O2 -fomit-frame-pointer ref
g++ -m64 -O3 -fomit-frame-pointer ref
g++ -m64 -O -fomit-frame-pointer ref
g++ -m64 -Os -fomit-frame-pointer ref
g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer ref
g++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref
g++ -m64 -march=core-avx-i -O -fomit-frame-pointer ref
g++ -m64 -march=core-avx-i -Os -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer ref
g++ -m64 -march=core2 -O2 -fomit-frame-pointer ref
g++ -m64 -march=core2 -O3 -fomit-frame-pointer ref
g++ -m64 -march=core2 -O -fomit-frame-pointer ref
g++ -m64 -march=core2 -Os -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
g++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer ref
g++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref
g++ -m64 -march=corei7-avx -O -fomit-frame-pointer ref
g++ -m64 -march=corei7-avx -Os -fomit-frame-pointer ref
g++ -m64 -march=corei7 -O2 -fomit-frame-pointer ref
g++ -m64 -march=corei7 -O3 -fomit-frame-pointer ref
g++ -m64 -march=corei7 -O -fomit-frame-pointer ref
g++ -m64 -march=corei7 -Os -fomit-frame-pointer ref
g++ -m64 -march=k8 -O2 -fomit-frame-pointer ref
g++ -m64 -march=k8 -O3 -fomit-frame-pointer ref
g++ -m64 -march=k8 -O -fomit-frame-pointer ref
g++ -m64 -march=k8 -Os -fomit-frame-pointer ref
g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
g++ -m64 -march=nocona -O2 -fomit-frame-pointer ref
g++ -m64 -march=nocona -O3 -fomit-frame-pointer ref
g++ -m64 -march=nocona -O -fomit-frame-pointer ref
g++ -m64 -march=nocona -Os -fomit-frame-pointer ref
g++ -march=barcelona -O2 -fomit-frame-pointer ref
g++ -march=barcelona -O3 -fomit-frame-pointer ref
g++ -march=barcelona -O -fomit-frame-pointer ref
g++ -march=barcelona -Os -fomit-frame-pointer ref
g++ -march=k8 -O2 -fomit-frame-pointer ref
g++ -march=k8 -O3 -fomit-frame-pointer ref
g++ -march=k8 -O -fomit-frame-pointer ref
g++ -march=k8 -Os -fomit-frame-pointer ref
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref
g++ -march=nocona -O2 -fomit-frame-pointer ref
g++ -march=nocona -O3 -fomit-frame-pointer ref
g++ -march=nocona -O -fomit-frame-pointer ref
g++ -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/paeq128tnm/opt-win-aes
Compiler: g++
encrypt.cpp: encrypt.cpp:13:10: fatal error: intrin.h: No such file or directory
encrypt.cpp: #include <intrin.h>
encrypt.cpp: ^~~~~~~~~~
encrypt.cpp: compilation terminated.

Number of similar (compiler,implementation) pairs: 73, namely:
CompilerImplementations
g++ opt-win-aes
g++ -O2 -fomit-frame-pointer opt-win-aes
g++ -O3 -fomit-frame-pointer opt-win-aes
g++ -O -fomit-frame-pointer opt-win-aes
g++ -Os -fomit-frame-pointer opt-win-aes
g++ -fno-schedule-insns -O2 -fomit-frame-pointer opt-win-aes
g++ -fno-schedule-insns -O3 -fomit-frame-pointer opt-win-aes
g++ -fno-schedule-insns -O -fomit-frame-pointer opt-win-aes
g++ -fno-schedule-insns -Os -fomit-frame-pointer opt-win-aes
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer opt-win-aes
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer opt-win-aes
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer opt-win-aes
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx-i -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx-i -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7-avx -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7-avx -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=corei7 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=k8 -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=k8 -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=k8 -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=k8 -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer opt-win-aes
g++ -m64 -march=nocona -O2 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=nocona -O3 -fomit-frame-pointer opt-win-aes
g++ -m64 -march=nocona -O -fomit-frame-pointer opt-win-aes
g++ -m64 -march=nocona -Os -fomit-frame-pointer opt-win-aes
g++ -march=barcelona -O2 -fomit-frame-pointer opt-win-aes
g++ -march=barcelona -O3 -fomit-frame-pointer opt-win-aes
g++ -march=barcelona -O -fomit-frame-pointer opt-win-aes
g++ -march=barcelona -Os -fomit-frame-pointer opt-win-aes
g++ -march=k8 -O2 -fomit-frame-pointer opt-win-aes
g++ -march=k8 -O3 -fomit-frame-pointer opt-win-aes
g++ -march=k8 -O -fomit-frame-pointer opt-win-aes
g++ -march=k8 -Os -fomit-frame-pointer opt-win-aes
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
g++ -march=nocona -O2 -fomit-frame-pointer opt-win-aes
g++ -march=nocona -O3 -fomit-frame-pointer opt-win-aes
g++ -march=nocona -O -fomit-frame-pointer opt-win-aes
g++ -march=nocona -Os -fomit-frame-pointer opt-win-aes

Compiler output

Implementation: crypto_aead/paeq128tnm/aesni
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:174:9: note: called from here
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:173:9: note: called from here
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:172:9: note: called from here
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ...
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:174:9: note: called from here
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:173:9: note: called from here
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:172:9: note: called from here
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /home_nfs/bdolbeaur/gcc-7.2.0-full+isl/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ...

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

Compiler output

Implementation: crypto_aead/paeq128tnm/ref
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_paeq128tnm_ref_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*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:355:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_encrypt_no_nonce(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:610:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_paeq128tnm_ref_decrypt(unsigned char*, long long unsigned int*, unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:864:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_paeq128tnm_ref_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*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:355:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_encrypt_no_nonce(unsigned char*, long long unsigned int*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:610:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: encrypt.cpp: In function 'int crypto_aead_paeq128tnm_ref_decrypt(unsigned char*, long long unsigned int*, unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
encrypt.cpp: encrypt.cpp:864:27: warning: large integer implicitly truncated to unsigned type [-Woverflow]
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -m64 -march=barcelona -O2 -fomit-frame-pointer ref
g++ -m64 -march=barcelona -O3 -fomit-frame-pointer ref
g++ -m64 -march=barcelona -O -fomit-frame-pointer ref
g++ -m64 -march=barcelona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/paeq128tnm/opt-win-aes
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.cpp: encrypt.cpp:13:10: fatal error: intrin.h: No such file or directory
encrypt.cpp: #include <intrin.h>
encrypt.cpp: ^~~~~~~~~~
encrypt.cpp: compilation terminated.
encrypt.cpp: encrypt.cpp:13:10: fatal error: intrin.h: No such file or directory
encrypt.cpp: #include <intrin.h>
encrypt.cpp: ^~~~~~~~~~
encrypt.cpp: compilation terminated.

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

Compiler output

Implementation: crypto_aead/paeq128tnm/opt-win-aes
Compiler: icpc -xCORE-AVX-I -O2 -fomit-frame-pointer
encrypt.cpp: encrypt.cpp(13): catastrophic error: cannot open source file "intrin.h"
encrypt.cpp: #include <intrin.h>
encrypt.cpp: ^
encrypt.cpp:
encrypt.cpp: compilation aborted for encrypt.cpp (code 4)

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
icpc -xCORE-AVX-I -O2 -fomit-frame-pointer opt-win-aes
icpc -xCORE-AVX-I -O3 -fomit-frame-pointer opt-win-aes
icpc -xCORE-AVX2 -O2 -fomit-frame-pointer opt-win-aes
icpc -xCORE-AVX2 -O3 -fomit-frame-pointer opt-win-aes

Compiler output

Implementation: crypto_aead/paeq128tnm/aesni
Compiler: icpc -xCORE-AVX-I -O2 -fomit-frame-pointer
encrypt.cpp: encrypt.cpp(21): warning #1879: unimplemented pragma ignored
encrypt.cpp: #pragma intrinsic(_mm_set_epi64x)
encrypt.cpp: ^
encrypt.cpp:

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
icpc -xCORE-AVX-I -O2 -fomit-frame-pointer aesni
icpc -xCORE-AVX-I -O3 -fomit-frame-pointer aesni
icpc -xCORE-AVX2 -O2 -fomit-frame-pointer aesni
icpc -xCORE-AVX2 -O3 -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq128tnm/ref
Compiler: icpc -xCORE-AVX-I -O2 -fomit-frame-pointer
encrypt.cpp: encrypt.cpp(355): warning #69: integer conversion resulted in truncation
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: ^
encrypt.cpp:
encrypt.cpp: encrypt.cpp(610): warning #69: integer conversion resulted in truncation
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits, zero for 256-bit nonce
encrypt.cpp: ^
encrypt.cpp:
encrypt.cpp: encrypt.cpp(864): warning #69: integer conversion resulted in truncation
encrypt.cpp: D0[0] = CRYPTO_NPUBBYTES*8; //nonce length in bits
encrypt.cpp: ^
encrypt.cpp:

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
icpc -xCORE-AVX-I -O2 -fomit-frame-pointer ref
icpc -xCORE-AVX-I -O3 -fomit-frame-pointer ref
icpc -xCORE-AVX2 -O2 -fomit-frame-pointer ref
icpc -xCORE-AVX2 -O3 -fomit-frame-pointer ref