Implementation notes: amd64, haswell, crypto_encrypt/ntruees787ep1

Computer: haswell
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20130419
Operation: crypto_encrypt
Primitive: ntruees787ep1
TimeImplementationCompilerBenchmark dateSUPERCOP version
1390190refclang -O32013060920130419
1395038refclang -O3 -mavx2013060920130419
1487840refgcc -funroll-loops -O3 -fomit-frame-pointer2013060920130419
1493712refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2013060920130419
1522572refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2013060920130419
1523248refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
1532916refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
1539188refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
1539584refgcc -funroll-loops -O2 -fomit-frame-pointer2013060920130419
1539612refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2013060920130419
1540576refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2013060920130419
1542062refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2013060920130419
1550212refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
1575840refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2013060920130419
1577424refgcc -funroll-loops -O -fomit-frame-pointer2013060920130419
1580768refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
1582888refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2013060920130419
1583784refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2013060920130419
1585524refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2013060920130419
1587062refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1588280refgcc -m64 -march=core2 -Os -fomit-frame-pointer2013060920130419
1593794refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1594072refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2013060920130419
1594954refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1597676refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1598132refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
1602109refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
1619207refgcc -O2 -fomit-frame-pointer2013060920130419
1625478refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2013060920130419
1630860refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
1632372refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
1633802refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
1634308refgcc -march=k8 -O3 -fomit-frame-pointer2013060920130419
1635626refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2013060920130419
1637740refgcc -m64 -O3 -fomit-frame-pointer2013060920130419
1638380refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
1639228refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2013060920130419
1640032refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2013060920130419
1644486refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
1645104refgcc -march=k8 -Os -fomit-frame-pointer2013060920130419
1645286refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2013060920130419
1646048refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2013060920130419
1646348refgcc -fno-schedule-insns -Os -fomit-frame-pointer2013060920130419
1646702refgcc -m64 -Os -fomit-frame-pointer2013060920130419
1647208refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2013060920130419
1650704refgcc -march=barcelona -Os -fomit-frame-pointer2013060920130419
1650854refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
1650972refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2013060920130419
1652368refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2013060920130419
1653268refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2013060920130419
1653978refgcc -funroll-loops -Os -fomit-frame-pointer2013060920130419
1654788refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2013060920130419
1671540refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2013060920130419
1673072refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2013060920130419
1673668refgcc -m64 -O2 -fomit-frame-pointer2013060920130419
1673992refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2013060920130419
1675100refgcc -march=k8 -O2 -fomit-frame-pointer2013060920130419
1679985refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
1681139refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2013060920130419
1687141refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2013060920130419
1687614refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2013060920130419
1697652refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1697900refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2013060920130419
1698496refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2013060920130419
1699428refgcc -funroll-loops -m64 -O -fomit-frame-pointer2013060920130419
1699608refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2013060920130419
1702516refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2013060920130419
1704072refgcc -m64 -march=nocona -Os -fomit-frame-pointer2013060920130419
1704276refgcc -march=nocona -O2 -fomit-frame-pointer2013060920130419
1708336refgcc -Os -fomit-frame-pointer2013060920130419
1712368refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2013060920130419
1712428refgcc -m64 -march=k8 -Os -fomit-frame-pointer2013060920130419
1735520refgcc -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1736374refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2013060920130419
1736628refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2013060920130419
1737796refgcc -march=nocona -O3 -fomit-frame-pointer2013060920130419
1737936refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2013060920130419
1739038refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2013060920130419
1753224refgcc -march=nocona -Os -fomit-frame-pointer2013060920130419
1766112refgcc -march=barcelona -O3 -fomit-frame-pointer2013060920130419
1768934refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2013060920130419
1774324refgcc -O3 -fomit-frame-pointer2013060920130419
1783911refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2013060920130419
1805120refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2013060920130419
1806268refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2013060920130419
1806564refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2013060920130419
1858192refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2013060920130419
1859816refgcc -fno-schedule-insns -O -fomit-frame-pointer2013060920130419
1860148refgcc -m64 -march=corei7 -O -fomit-frame-pointer2013060920130419
1860956refgcc -m64 -O -fomit-frame-pointer2013060920130419
1863596refgcc -march=k8 -O -fomit-frame-pointer2013060920130419
1897900refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2013060920130419
1928596refgcc -m64 -march=core2 -O -fomit-frame-pointer2013060920130419
1929598refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2013060920130419
1929880refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2013060920130419
1931260refgcc -march=nocona -O -fomit-frame-pointer2013060920130419
1934034refgcc -march=barcelona -O -fomit-frame-pointer2013060920130419
1935398refgcc -m64 -march=k8 -O -fomit-frame-pointer2013060920130419
1945478refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2013060920130419
2003900refgcc -m64 -march=nocona -O -fomit-frame-pointer2013060920130419
2009912refgcc -O -fomit-frame-pointer2013060920130419
2010168refgcc -m64 -march=barcelona -O -fomit-frame-pointer2013060920130419
4738229refgcc2013060920130419
4878645refgcc -funroll-loops2013060920130419
4977876refcc2013060920130419

Compiler output

Implementation: crypto_encrypt/ntruees787ep1/ref
Compiler: clang -O3
ntru_encrypt.c: ntru_encrypt.c:477:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ntru_encrypt.c: ntru_encrypt.c:477:26: note: place parentheses around the assignment to silence this warning
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ( )
ntru_encrypt.c: ntru_encrypt.c:477:26: note: use '==' to turn this assignment into an equality comparison
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ==
ntru_encrypt.c: ntru_encrypt.c:493:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ntru_encrypt.c: ntru_encrypt.c:493:22: note: place parentheses around the assignment to silence this warning
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ( )
ntru_encrypt.c: ntru_encrypt.c:493:22: note: use '==' to turn this assignment into an equality comparison
ntru_encrypt.c: if (ci_coeff = *chkR_ptr++ & 0x0001) {
ntru_encrypt.c: ^
ntru_encrypt.c: ==
ntru_encrypt.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 ref
clang -O3 -mavx ref