Implementation notes: x86, hydra4, crypto_stream/aes128ctr

Computer: hydra4
Architecture: x86
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_stream
Primitive: aes128ctr
TimeImplementationCompilerBenchmark dateSUPERCOP version
19379cryptoppg++ -m32 -march=barcelona -O3 -fomit-frame-pointer2014052920140525
19430cryptoppg++ -m32 -march=barcelona -O2 -fomit-frame-pointer2014052920140525
19434cryptoppg++ -m32 -march=k6-3 -O2 -fomit-frame-pointer2014052920140525
19457cryptoppg++ -m32 -march=k6 -O2 -fomit-frame-pointer2014052920140525
19484cryptoppg++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2014052920140525
19488cryptoppg++ -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052920140525
19511cryptoppg++ -m32 -march=k6-2 -O2 -fomit-frame-pointer2014052920140525
19512cryptoppg++ -m32 -march=core2 -O2 -fomit-frame-pointer2014052920140525
19527cryptoppg++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer2014052920140525
19528cryptoppg++ -m32 -march=nocona -O2 -fomit-frame-pointer2014052920140525
19535cryptoppg++ -m32 -march=pentium -O2 -fomit-frame-pointer2014052920140525
19539cryptoppg++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2014052920140525
19547cryptoppg++ -m32 -march=corei7-avx -O2 -fomit-frame-pointer2014052920140525
19550cryptoppg++ -m32 -march=pentium2 -O3 -fomit-frame-pointer2014052920140525
19551cryptoppg++ -m32 -march=pentium4 -O2 -fomit-frame-pointer2014052920140525
19551cryptoppg++ -m32 -march=pentium4 -O -fomit-frame-pointer2014052920140525
19551cryptoppg++ -m32 -march=prescott -O2 -fomit-frame-pointer2014052920140525
19555cryptoppg++ -m32 -march=i486 -O3 -fomit-frame-pointer2014052920140525
19558cryptoppg++ -m32 -march=core-avx-i -O2 -fomit-frame-pointer2014052920140525
19558cryptoppg++ -m32 -march=k8 -O2 -fomit-frame-pointer2014052920140525
19559cryptoppg++ -m32 -O2 -fomit-frame-pointer2014052920140525
19559cryptoppg++ -m32 -march=athlon -O2 -fomit-frame-pointer2014052920140525
19562cryptoppg++ -m32 -march=pentium4 -O3 -fomit-frame-pointer2014052920140525
19578cryptoppg++ -m32 -march=k6-2 -O3 -fomit-frame-pointer2014052920140525
19582cryptoppg++ -m32 -O3 -fomit-frame-pointer2014052920140525
19582cryptoppg++ -m32 -march=athlon -O3 -fomit-frame-pointer2014052920140525
19582cryptoppg++ -m32 -march=k6 -O -fomit-frame-pointer2014052920140525
19582cryptoppg++ -m32 -march=pentium-m -O -fomit-frame-pointer2014052920140525
19586cryptoppg++ -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2014052920140525
19590cryptoppg++ -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2014052920140525
19605cryptoppg++ -m32 -march=pentiumpro -O -fomit-frame-pointer2014052920140525
19609cryptoppg++ -m32 -march=core-avx-i -O -fomit-frame-pointer2014052920140525
19609cryptoppg++ -m32 -march=corei7 -O2 -fomit-frame-pointer2014052920140525
19609cryptoppg++ -m32 -march=pentium -O3 -fomit-frame-pointer2014052920140525
19613cryptoppg++ -m32 -march=core2 -O -fomit-frame-pointer2014052920140525
19613cryptoppg++ -m32 -march=pentium3 -O3 -fomit-frame-pointer2014052920140525
19617cryptoppg++ -m32 -march=pentium-m -O3 -fomit-frame-pointer2014052920140525
19621cryptoppg++ -m32 -march=pentium2 -O2 -fomit-frame-pointer2014052920140525
19632cryptoppg++ -m32 -march=i486 -O2 -fomit-frame-pointer2014052920140525
19633cryptoppg++ -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052920140525
19633cryptoppg++ -m32 -march=k6-3 -O3 -fomit-frame-pointer2014052920140525
19636cryptoppg++ -m32 -march=pentium2 -O -fomit-frame-pointer2014052920140525
19637cryptoppg++ -m32 -march=pentium3 -O -fomit-frame-pointer2014052920140525
19640cryptoppg++ -m32 -march=pentium-mmx -O -fomit-frame-pointer2014052920140525
19652cryptoppg++ -m32 -march=k6-2 -O -fomit-frame-pointer2014052920140525
19652cryptoppg++ -m32 -march=nocona -O3 -fomit-frame-pointer2014052920140525
19652cryptoppg++ -m32 -march=nocona -O -fomit-frame-pointer2014052920140525
19660cryptoppg++ -m32 -march=k6-3 -Os -fomit-frame-pointer2014052920140525
19664cryptoppg++ -m32 -march=native -mtune=native -O -fomit-frame-pointer2014052920140525
19672cryptoppg++ -m32 -march=pentium2 -Os -fomit-frame-pointer2014052920140525
19675cryptoppg++ -m32 -march=barcelona -O -fomit-frame-pointer2014052920140525
19675cryptoppg++ -m32 -march=core2 -msse4 -O -fomit-frame-pointer2014052920140525
19676cryptoppg++ -m32 -march=i486 -O -fomit-frame-pointer2014052920140525
19676cryptoppg++ -m32 -march=k8 -O3 -fomit-frame-pointer2014052920140525
19676cryptoppg++ -m32 -march=k8 -O -fomit-frame-pointer2014052920140525
19676cryptoppg++ -m32 -march=pentium-m -O2 -fomit-frame-pointer2014052920140525
19680cryptoppg++ -m32 -march=prescott -O3 -fomit-frame-pointer2014052920140525
19695cryptoppg++ -m32 -march=k6-3 -O -fomit-frame-pointer2014052920140525
19703cryptoppg++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer2014052920140525
19722cryptoppg++ -m32 -O -fomit-frame-pointer2014052920140525
19734cryptoppg++ -m32 -march=pentium-m -Os -fomit-frame-pointer2014052920140525
19741cryptoppg++ -m32 -march=prescott -O -fomit-frame-pointer2014052920140525
19750cryptoppg++ -m32 -march=pentiumpro -Os -fomit-frame-pointer2014052920140525
19753cryptoppg++ -m32 -march=pentium3 -Os -fomit-frame-pointer2014052920140525
19754cryptoppg++ -m32 -march=corei7 -O -fomit-frame-pointer2014052920140525
19754cryptoppg++ -m32 -march=i386 -Os -fomit-frame-pointer2014052920140525
19765cryptoppg++ -m32 -march=athlon -O -fomit-frame-pointer2014052920140525
19773cryptoppg++ -m32 -march=k6 -Os -fomit-frame-pointer2014052920140525
19773cryptoppg++ -m32 -march=pentium -O -fomit-frame-pointer2014052920140525
19796cryptoppg++ -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052920140525
19800cryptoppg++ -m32 -march=corei7-avx -O -fomit-frame-pointer2014052920140525
19804cryptoppg++ -m32 -march=i486 -Os -fomit-frame-pointer2014052920140525
19808cryptoppg++ -m32 -march=k6-2 -Os -fomit-frame-pointer2014052920140525
19812cryptoppg++ -m32 -march=pentium3 -O2 -fomit-frame-pointer2014052920140525
19824cryptoppg++ -m32 -march=core2 -Os -fomit-frame-pointer2014052920140525
19828cryptoppg++ -m32 -march=pentium -Os -fomit-frame-pointer2014052920140525
19831cryptoppg++ -m32 -march=pentium4 -Os -fomit-frame-pointer2014052920140525
19843cryptoppg++ -m32 -march=core-avx-i -Os -fomit-frame-pointer2014052920140525
19863cryptoppg++ -m32 -march=native -mtune=native -Os -fomit-frame-pointer2014052920140525
19878cryptoppg++ -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052920140525
19878cryptoppg++ -m32 -march=nocona -Os -fomit-frame-pointer2014052920140525
19879cryptoppg++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer2014052920140525
19890cryptoppg++ -m32 -march=corei7-avx -Os -fomit-frame-pointer2014052920140525
19898cryptoppg++ -m32 -march=prescott -Os -fomit-frame-pointer2014052920140525
19906cryptoppg++ -m32 -Os -fomit-frame-pointer2014052920140525
19910cryptoppg++ -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2014052920140525
19910cryptoppg++ -m32 -march=corei7 -Os -fomit-frame-pointer2014052920140525
19925cryptoppg++ -m32 -march=athlon -Os -fomit-frame-pointer2014052920140525
19929cryptoppg++ -m32 -march=k8 -Os -fomit-frame-pointer2014052920140525
19940cryptoppg++ -m32 -march=barcelona -Os -fomit-frame-pointer2014052920140525
21641cryptoppg++ -m32 -march=k6 -O3 -fomit-frame-pointer2014052920140525

Test failure

Implementation: crypto_stream/aes128ctr/cryptopp
Compiler: g++ -m32 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -m32 -march=core2 -O3 -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_stream/aes128ctr/cryptopp
Compiler: g++ -m32 -march=i386 -O2 -fomit-frame-pointer
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::Exception::~Exception()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP9ExceptionD2Ev[_ZN8CryptoPP9ExceptionD5Ev]+0x43): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const':
try.cpp: stream.cpp:(.text._ZNK8CryptoPP13AlgorithmImplINS_20ConcretePolicyHolderINS_5EmptyENS_22AdditiveCipherTemplateINS_20AbstractPolicyHolderINS_28AdditiveCipherAbstractPolicyENS_14CTR_ModePolicyEEEEES5_EENS_36CipherModeFinalTemplate_CipherHolderINS_16BlockCipherFinalILNS_9CipherDirE0ENS_8Rijndael3EncEEES9_EEE13AlgorithmNameEv[CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const]+0xc7): undefined reference to `__sync_fetch_and_add_4'
try.cpp: stream.cpp:(.text._ZNK8CryptoPP13AlgorithmImplINS_20ConcretePolicyHolderINS_5EmptyENS_22AdditiveCipherTemplateINS_20AbstractPolicyHolderINS_28AdditiveCipherAbstractPolicyENS_14CTR_ModePolicyEEEEES5_EENS_36CipherModeFinalTemplate_CipherHolderINS_16BlockCipherFinalILNS_9CipherDirE0ENS_8Rijndael3EncEEES9_EEE13AlgorithmNameEv[CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const]+0xf9): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::InvalidArgument::~InvalidArgument()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP15InvalidArgumentD2Ev[_ZN8CryptoPP15InvalidArgumentD5Ev]+0x43): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::NotImplemented::~NotImplemented()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP14NotImplementedD2Ev[_ZN8CryptoPP14NotImplementedD5Ev]+0x43): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o):stream.cpp:(.text._ZN8CryptoPP9ExceptionD0Ev[_ZN8CryptoPP9ExceptionD5Ev]+0x4b): more undefined references to `__sync_fetch_and_add_4' follow
try.cpp: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -m32 -march=i386 -O2 -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_stream/aes128ctr/cryptopp
Compiler: g++ -m32 -march=i386 -O3 -fomit-frame-pointer
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::Exception::~Exception()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP9ExceptionD2Ev[_ZN8CryptoPP9ExceptionD5Ev]+0x43): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::NotImplemented::~NotImplemented()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP14NotImplementedD2Ev[_ZN8CryptoPP14NotImplementedD5Ev]+0x43): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const':
try.cpp: stream.cpp:(.text._ZNK8CryptoPP13AlgorithmImplINS_20ConcretePolicyHolderINS_5EmptyENS_22AdditiveCipherTemplateINS_20AbstractPolicyHolderINS_28AdditiveCipherAbstractPolicyENS_14CTR_ModePolicyEEEEES5_EENS_36CipherModeFinalTemplate_CipherHolderINS_16BlockCipherFinalILNS_9CipherDirE0ENS_8Rijndael3EncEEES9_EEE13AlgorithmNameEv[CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const]+0xc7): undefined reference to `__sync_fetch_and_add_4'
try.cpp: stream.cpp:(.text._ZNK8CryptoPP13AlgorithmImplINS_20ConcretePolicyHolderINS_5EmptyENS_22AdditiveCipherTemplateINS_20AbstractPolicyHolderINS_28AdditiveCipherAbstractPolicyENS_14CTR_ModePolicyEEEEES5_EENS_36CipherModeFinalTemplate_CipherHolderINS_16BlockCipherFinalILNS_9CipherDirE0ENS_8Rijndael3EncEEES9_EEE13AlgorithmNameEv[CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const]+0xf9): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::InvalidArgument::~InvalidArgument()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP15InvalidArgumentD2Ev[_ZN8CryptoPP15InvalidArgumentD5Ev]+0x43): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o):stream.cpp:(.text._ZN8CryptoPP9ExceptionD0Ev[_ZN8CryptoPP9ExceptionD5Ev]+0x4b): more undefined references to `__sync_fetch_and_add_4' follow
try.cpp: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -m32 -march=i386 -O3 -fomit-frame-pointer cryptopp

Compiler output

Implementation: crypto_stream/aes128ctr/cryptopp
Compiler: g++ -m32 -march=i386 -O -fomit-frame-pointer
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::Exception::~Exception()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP9ExceptionD2Ev[_ZN8CryptoPP9ExceptionD5Ev]+0x35): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::NotImplemented::~NotImplemented()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP14NotImplementedD2Ev[_ZN8CryptoPP14NotImplementedD5Ev]+0x35): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const':
try.cpp: stream.cpp:(.text._ZNK8CryptoPP13AlgorithmImplINS_20ConcretePolicyHolderINS_5EmptyENS_22AdditiveCipherTemplateINS_20AbstractPolicyHolderINS_28AdditiveCipherAbstractPolicyENS_14CTR_ModePolicyEEEEES5_EENS_36CipherModeFinalTemplate_CipherHolderINS_16BlockCipherFinalILNS_9CipherDirE0ENS_8Rijndael3EncEEES9_EEE13AlgorithmNameEv[CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const]+0xd6): undefined reference to `__sync_fetch_and_add_4'
try.cpp: stream.cpp:(.text._ZNK8CryptoPP13AlgorithmImplINS_20ConcretePolicyHolderINS_5EmptyENS_22AdditiveCipherTemplateINS_20AbstractPolicyHolderINS_28AdditiveCipherAbstractPolicyENS_14CTR_ModePolicyEEEEES5_EENS_36CipherModeFinalTemplate_CipherHolderINS_16BlockCipherFinalILNS_9CipherDirE0ENS_8Rijndael3EncEEES9_EEE13AlgorithmNameEv[CryptoPP::AlgorithmImplgt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt;, CryptoPP::CipherModeFinalTemplate_CipherHoldergt;, CryptoPP::ConcretePolicyHoldergt; >gt;, CryptoPP::AdditiveCipherAbstractPolicy>gt; >gt; >gt;::AlgorithmName() const]+0x122): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o): In function `CryptoPP::NotImplemented::~NotImplemented()':
try.cpp: stream.cpp:(.text._ZN8CryptoPP14NotImplementedD0Ev[_ZN8CryptoPP14NotImplementedD5Ev]+0x35): undefined reference to `__sync_fetch_and_add_4'
try.cpp: crypto_stream_aes128ctr.a(stream.o):stream.cpp:(.text._ZN8CryptoPP15InvalidArgumentD2Ev[_ZN8CryptoPP15InvalidArgumentD5Ev]+0x35): more undefined references to `__sync_fetch_and_add_4' follow
try.cpp: collect2: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -m32 -march=i386 -O -fomit-frame-pointer cryptopp