Implementation notes: amd64, mangetsu, crypto_aead/paeq128t

Computer: mangetsu
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_aead
Primitive: paeq128t
TimeImplementationCompilerBenchmark dateSUPERCOP version
39772aesniclang++ -O3 -fwrapv -march=native -fomit-frame-pointer2014101820141014
39988aesniclang++ -O3 -fwrapv -mavx -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101820141014
40076aesniclang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer2014101820141014
40084aesniclang++ -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101820141014
41284aesnig++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2014101820141014
41328aesnig++ -m64 -march=core-avx-i -O -fomit-frame-pointer2014101820141014
41480aesnig++ -m64 -march=corei7-avx -O -fomit-frame-pointer2014101820141014
52956aesnig++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014101820141014
53176aesnig++ -m64 -march=core-avx-i -Os -fomit-frame-pointer2014101820141014
54036aesnig++ -m64 -march=corei7-avx -Os -fomit-frame-pointer2014101820141014
4831456refg++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014101820141014
4836136refg++ -march=barcelona -O3 -fomit-frame-pointer2014101820141014
4839676refg++ -m64 -O3 -fomit-frame-pointer2014101820141014
4843748refg++ -m64 -march=corei7 -O3 -fomit-frame-pointer2014101820141014
4847532refg++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014101820141014
4849656refg++ -m64 -march=barcelona -O3 -fomit-frame-pointer2014101820141014
4857156refg++ -fno-schedule-insns -O3 -fomit-frame-pointer2014101820141014
4857576refg++ -O3 -fomit-frame-pointer2014101820141014
4860252refg++ -m64 -march=k8 -O3 -fomit-frame-pointer2014101820141014
4860772refg++ -m64 -march=core2 -O3 -fomit-frame-pointer2014101820141014
4871328refg++ -march=nocona -O3 -fomit-frame-pointer2014101820141014
4875992refg++ -march=k8 -O3 -fomit-frame-pointer2014101820141014
4876924refg++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014101820141014
4878520refg++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer2014101820141014
4882408refg++ -m64 -march=nocona -O3 -fomit-frame-pointer2014101820141014
4889740refg++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014101820141014
4892676refg++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer2014101820141014
4991888refg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014101820141014
5139884refclang++ -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101820141014
5178648refclang++ -O3 -fwrapv -mavx -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101820141014
5187344refclang++ -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101820141014
5215304refclang++ -O3 -fomit-frame-pointer2014101820141014
5251572refclang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer2014101820141014
5315228refclang++ -O3 -fwrapv -mavx -fomit-frame-pointer2014101820141014
5382748refclang++ -O3 -fwrapv -march=native -fomit-frame-pointer2014101820141014
8503872refg++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014101820141014
10144124refg++ -m64 -march=nocona -O2 -fomit-frame-pointer2014101820141014
10163196refg++ -march=nocona -O2 -fomit-frame-pointer2014101820141014
10185388refg++ -m64 -march=barcelona -O2 -fomit-frame-pointer2014101820141014
10193108refg++ -march=barcelona -O2 -fomit-frame-pointer2014101820141014
10246880refg++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer2014101820141014
10246984refg++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014101820141014
10253116refg++ -m64 -O2 -fomit-frame-pointer2014101820141014
10253904refg++ -O2 -fomit-frame-pointer2014101820141014
10258528refg++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014101820141014
10259796refg++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer2014101820141014
10265992refg++ -m64 -march=corei7 -O2 -fomit-frame-pointer2014101820141014
10269044refg++ -m64 -march=core2 -O2 -fomit-frame-pointer2014101820141014
10270248refg++ -fno-schedule-insns -O2 -fomit-frame-pointer2014101820141014
10283776refg++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014101820141014
10298076refg++ -march=k8 -O2 -fomit-frame-pointer2014101820141014
10311572refg++ -m64 -march=k8 -O2 -fomit-frame-pointer2014101820141014
10720768refg++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014101820141014
10886928refg++ -march=k8 -Os -fomit-frame-pointer2014101820141014
10888708refg++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014101820141014
10889948refg++ -m64 -march=core-avx-i -Os -fomit-frame-pointer2014101820141014
10895168refg++ -m64 -march=barcelona -Os -fomit-frame-pointer2014101820141014
10896640refg++ -fno-schedule-insns -Os -fomit-frame-pointer2014101820141014
10898904refg++ -march=barcelona -Os -fomit-frame-pointer2014101820141014
10900420refg++ -m64 -Os -fomit-frame-pointer2014101820141014
10901036refg++ -m64 -march=corei7 -Os -fomit-frame-pointer2014101820141014
10904968refg++ -m64 -march=k8 -Os -fomit-frame-pointer2014101820141014
10907940refg++ -m64 -march=core2 -Os -fomit-frame-pointer2014101820141014
10913448refg++ -Os -fomit-frame-pointer2014101820141014
10920624refg++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014101820141014
10936816refg++ -m64 -march=corei7-avx -Os -fomit-frame-pointer2014101820141014
10937612refg++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014101820141014
11160580refg++ -m64 -march=nocona -O -fomit-frame-pointer2014101820141014
11162756refg++ -march=nocona -O -fomit-frame-pointer2014101820141014
11189372refg++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014101820141014
11191200refg++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014101820141014
11191608refg++ -m64 -march=corei7-avx -O -fomit-frame-pointer2014101820141014
11191676refg++ -O -fomit-frame-pointer2014101820141014
11192884refg++ -m64 -march=corei7 -O -fomit-frame-pointer2014101820141014
11195436refg++ -march=nocona -Os -fomit-frame-pointer2014101820141014
11215812refg++ -m64 -march=core-avx-i -O -fomit-frame-pointer2014101820141014
11219544refg++ -m64 -march=nocona -Os -fomit-frame-pointer2014101820141014
11236140refg++ -fno-schedule-insns -O -fomit-frame-pointer2014101820141014
11260060refg++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2014101820141014
11263204refg++ -m64 -march=core2 -O -fomit-frame-pointer2014101820141014
11268828refg++ -m64 -O -fomit-frame-pointer2014101820141014
11334500refg++ -march=barcelona -O -fomit-frame-pointer2014101820141014
11335760refg++ -m64 -march=barcelona -O -fomit-frame-pointer2014101820141014
11488856refg++ -m64 -march=k8 -O -fomit-frame-pointer2014101820141014
11526876refg++ -march=k8 -O -fomit-frame-pointer2014101820141014
46554896refg++2014101820141014

Test failure

Implementation: crypto_aead/paeq128t/aesni
Compiler: clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer aesni ref
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer ref
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer aesni ref
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer aesni ref
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer aesni ref

Test failure

Implementation: crypto_aead/paeq128t/aesni
Compiler: g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer
error 111
crypto_aead_decrypt returns nonzero

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer aesni
g++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer aesni
g++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer aesni
g++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer aesni
g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer aesni
g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq128t/aesni
Compiler: clang++ -O3 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:14:
encrypt.cpp: /usr/bin/../lib64/clang/3.3/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
encrypt.cpp: # error "AES/PCLMUL instructions not enabled"
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:168:11: error: use of undeclared identifier '_mm_aesenc_si128'; did you mean '_mm_and_si128'?
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: _mm_and_si128
encrypt.cpp: /usr/bin/../lib64/clang/3.3/include/emmintrin.h:801:1: note: '_mm_and_si128' declared here
encrypt.cpp: _mm_and_si128(__m128i __a, __m128i __b)
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:169:11: error: use of undeclared identifier '_mm_aesenc_si128'; did you mean '_mm_and_si128'?
encrypt.cpp: acc1 = _mm_aesenc_si128(acc1, roundkey1);
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: _mm_and_si128
encrypt.cpp: /usr/bin/../lib64/clang/3.3/include/emmintrin.h:801:1: note: '_mm_and_si128' declared here
encrypt.cpp: _mm_and_si128(__m128i __a, __m128i __b)
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:170:11: error: use of undeclared identifier '_mm_aesenc_si128'; did you mean '_mm_and_si128'?
encrypt.cpp: acc2 = _mm_aesenc_si128(acc2, roundkey2);
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: _mm_and_si128
encrypt.cpp: /usr/bin/../lib64/clang/3.3/include/emmintrin.h:801:1: note: '_mm_and_si128' declared here
encrypt.cpp: _mm_and_si128(__m128i __a, __m128i __b)
encrypt.cpp: ^
encrypt.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq128t/aesni
Compiler: clang++ -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
encrypt.cpp: clang-3.3: warning: argument unused during compilation: '-fpolly'

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer aesni ref
clang++ -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref
clang++ -O3 -fwrapv -mavx -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer aesni ref

Compiler output

Implementation: crypto_aead/paeq128t/aesni
Compiler: clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
encrypt.cpp: clang-3.3: warning: argument unused during compilation: '-mcpu=core-avx2'

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer aesni ref

Compiler output

Implementation: crypto_aead/paeq128t/aesni
Compiler: clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:14:
encrypt.cpp: /usr/bin/../lib64/clang/3.3/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
encrypt.cpp: # error "AES/PCLMUL instructions not enabled"
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:168:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:169:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc1 = _mm_aesenc_si128(acc1, roundkey1);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:170:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc2 = _mm_aesenc_si128(acc2, roundkey2);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:171:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc3 = _mm_aesenc_si128(acc3, roundkey3);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:173:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc4 = _mm_aesenc_si128(acc4, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:174:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:175:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ^
encrypt.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer aesni
clang++ -O3 -fwrapv -mavx -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq128t/aesni
Compiler: clang++ -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
encrypt.cpp: clang-3.3: warning: argument unused during compilation: '-fpolly'
encrypt.cpp: In file included from encrypt.cpp:14:
encrypt.cpp: /usr/bin/../lib64/clang/3.3/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
encrypt.cpp: # error "AES/PCLMUL instructions not enabled"
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:168:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:169:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc1 = _mm_aesenc_si128(acc1, roundkey1);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:170:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc2 = _mm_aesenc_si128(acc2, roundkey2);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:171:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc3 = _mm_aesenc_si128(acc3, roundkey3);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:173:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc4 = _mm_aesenc_si128(acc4, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:174:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:175:11: error: use of undeclared identifier '_mm_aesenc_si128'
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer aesni

Compiler output

Implementation: crypto_aead/paeq128t/aesni
Compiler: g++
encrypt.cpp: In file included from encrypt.cpp:14:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: # error "AES/PCLMUL instructions not enabled"
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: encrypt.cpp:168:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const __m128i*, __m128i*)':
encrypt.cpp: encrypt.cpp:242:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
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/paeq128t/aesni
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:14:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: # error "AES/PCLMUL instructions not enabled"
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: encrypt.cpp:168:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const __m128i*, __m128i*)':
encrypt.cpp: encrypt.cpp:242:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:14:0:
encrypt.cpp: /usr/lib64/gcc/x86_64-suse-linux/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
encrypt.cpp: # error "AES/PCLMUL instructions not enabled"
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: encrypt.cpp:168:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp: In function 'void FPermAsm(const __m128i*, __m128i*)':
encrypt.cpp: encrypt.cpp:242:43: error: '_mm_aesenc_si128' was not declared in this scope
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
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