Implementation notes: amd64, hydra1, crypto_aead/pi64cipher128v1

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: pi64cipher128v1
TimeImplementationCompilerBenchmark dateSUPERCOP version
87362optimized_nonSSEgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102120161009
87384optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102120161009
87396optimized_nonSSEgcc -funroll-loops -O3 -fomit-frame-pointer2016102120161009
88944optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102120161009
88974optimized_nonSSEgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102120161009
89098optimized_nonSSEgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102120161009
89408optimized_nonSSEgcc -m64 -O3 -fomit-frame-pointer2016102120161009
89423optimized_nonSSEgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102120161009
89429optimized_nonSSEgcc -O3 -fomit-frame-pointer2016102120161009
89831optimized_nonSSEgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102120161009
89891optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102120161009
90120optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102120161009
90189optimized_nonSSEgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102120161009
90400optimized_nonSSEgcc -funroll-loops -O2 -fomit-frame-pointer2016102120161009
90414optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102120161009
90451optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102120161009
90493optimized_nonSSEgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102120161009
90915optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102120161009
90942optimized_nonSSEgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102120161009
91450optimized_nonSSEgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102120161009
91675optimized_nonSSEgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102120161009
91698optimized_nonSSEgcc -march=barcelona -O3 -fomit-frame-pointer2016102120161009
91727optimized_nonSSEgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102120161009
91976optimized_nonSSEgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102120161009
92124optimized_nonSSEgcc -march=k8 -O3 -fomit-frame-pointer2016102120161009
92138optimized_nonSSEgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102120161009
92176optimized_nonSSEgcc -march=nocona -O3 -fomit-frame-pointer2016102120161009
94805optimized_nonSSEgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102120161009
94907optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102120161009
94961optimized_nonSSEgcc -funroll-loops -O -fomit-frame-pointer2016102120161009
94966optimized_nonSSEgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102120161009
95012optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102120161009
95089optimized_nonSSEgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102120161009
95110optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102120161009
96431optimized_nonSSEgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102120161009
96581optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102120161009
96720optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102120161009
96853optimized_nonSSEgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102120161009
121509optimized_nonSSEgcc -march=k8 -O2 -fomit-frame-pointer2016102120161009
121699optimized_nonSSEgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102120161009
123535optimized_nonSSEgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102120161009
123578optimized_nonSSEgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102120161009
123595optimized_nonSSEgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102120161009
123614optimized_nonSSEgcc -march=barcelona -O2 -fomit-frame-pointer2016102120161009
123694optimized_nonSSEgcc -m64 -O2 -fomit-frame-pointer2016102120161009
123752optimized_nonSSEgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102120161009
123946optimized_nonSSEgcc -O2 -fomit-frame-pointer2016102120161009
124664optimized_nonSSEgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102120161009
124699optimized_nonSSEgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102120161009
125224optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102120161009
126054optimized_nonSSEgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102120161009
126149optimized_nonSSEgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102120161009
126277optimized_nonSSEgcc -m64 -Os -fomit-frame-pointer2016102120161009
126323optimized_nonSSEgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102120161009
126429optimized_nonSSEgcc -march=nocona -O2 -fomit-frame-pointer2016102120161009
126485optimized_nonSSEgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102120161009
126488optimized_nonSSEgcc -Os -fomit-frame-pointer2016102120161009
126543optimized_nonSSEgcc -march=k8 -Os -fomit-frame-pointer2016102120161009
127744optimized_nonSSEgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102120161009
128245optimized_nonSSEgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102120161009
128253optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102120161009
128320optimized_nonSSEgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102120161009
128927optimized_nonSSEgcc -funroll-loops -Os -fomit-frame-pointer2016102120161009
128965optimized_nonSSEgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102120161009
128986optimized_nonSSEgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102120161009
129023optimized_nonSSEgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102120161009
129083optimized_nonSSEgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102120161009
129115optimized_nonSSEgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102120161009
129125optimized_nonSSEgcc -march=barcelona -Os -fomit-frame-pointer2016102120161009
129200optimized_nonSSEgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102120161009
129318optimized_nonSSEgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102120161009
129389optimized_nonSSEgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102120161009
129555optimized_nonSSEgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102120161009
131179refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102120161009
131226refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102120161009
131283refgcc -funroll-loops -O3 -fomit-frame-pointer2016102120161009
131614optimized_nonSSEgcc -m64 -O -fomit-frame-pointer2016102120161009
131618optimized_nonSSEgcc -O -fomit-frame-pointer2016102120161009
131624optimized_nonSSEgcc -fno-schedule-insns -O -fomit-frame-pointer2016102120161009
132011optimized_nonSSEgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102120161009
132088optimized_nonSSEgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102120161009
132152optimized_nonSSEgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102120161009
132175optimized_nonSSEgcc -m64 -march=core2 -O -fomit-frame-pointer2016102120161009
132263optimized_nonSSEgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102120161009
132384optimized_nonSSEgcc -m64 -march=nocona -O -fomit-frame-pointer2016102120161009
132405optimized_nonSSEgcc -march=nocona -O -fomit-frame-pointer2016102120161009
132670refgcc -O3 -fomit-frame-pointer2016102120161009
132770refgcc -m64 -O3 -fomit-frame-pointer2016102120161009
132789refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102120161009
132968optimized_nonSSEgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102120161009
133015optimized_nonSSEgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102120161009
133131optimized_nonSSEgcc -march=nocona -Os -fomit-frame-pointer2016102120161009
133301optimized_nonSSEgcc -m64 -march=k8 -O -fomit-frame-pointer2016102120161009
133328optimized_nonSSEgcc -march=k8 -O -fomit-frame-pointer2016102120161009
133379optimized_nonSSEgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102120161009
133540refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102120161009
133651refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102120161009
133679refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102120161009
134405optimized_nonSSEgcc -march=barcelona -O -fomit-frame-pointer2016102120161009
134605refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102120161009
134723optimized_nonSSEgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102120161009
134800refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102120161009
134804refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102120161009
134960refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102120161009
135132refgcc -march=barcelona -O3 -fomit-frame-pointer2016102120161009
135182optimized_nonSSEgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102120161009
135758refgcc -march=k8 -O3 -fomit-frame-pointer2016102120161009
135934refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102120161009
140769refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102120161009
140880refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102120161009
141685refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102120161009
141685refgcc -march=nocona -O3 -fomit-frame-pointer2016102120161009
143641refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102120161009
143657refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102120161009
143798refgcc -funroll-loops -O -fomit-frame-pointer2016102120161009
143861refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102120161009
144325refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102120161009
145444refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102120161009
145481refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102120161009
145486refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102120161009
145574refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102120161009
156812refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102120161009
156876refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102120161009
156912refgcc -funroll-loops -O2 -fomit-frame-pointer2016102120161009
156914refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102120161009
156916refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102120161009
157010refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102120161009
157084refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102120161009
162696refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102120161009
163118refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102120161009
176400refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102120161009
176400refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102120161009
176461refgcc -funroll-loops -Os -fomit-frame-pointer2016102120161009
176528refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102120161009
176563refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102120161009
176757refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102120161009
176939refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102120161009
177754refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102120161009
177938refgcc -march=nocona -Os -fomit-frame-pointer2016102120161009
178514refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102120161009
178581refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102120161009
179504refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102120161009
179509refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102120161009
179576refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102120161009
179605refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102120161009
179613refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102120161009
179654refgcc -O -fomit-frame-pointer2016102120161009
179749refgcc -march=nocona -O -fomit-frame-pointer2016102120161009
179752refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102120161009
179762refgcc -m64 -march=nocona -O -fomit-frame-pointer2016102120161009
179933refgcc -march=barcelona -O -fomit-frame-pointer2016102120161009
179981refgcc -m64 -O -fomit-frame-pointer2016102120161009
179981refgcc -march=k8 -O2 -fomit-frame-pointer2016102120161009
179984refgcc -fno-schedule-insns -O -fomit-frame-pointer2016102120161009
180000refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102120161009
180016refgcc -m64 -march=core2 -O -fomit-frame-pointer2016102120161009
180040refgcc -march=k8 -Os -fomit-frame-pointer2016102120161009
180189refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102120161009
180232refgcc -Os -fomit-frame-pointer2016102120161009
180232refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102120161009
180237refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102120161009
180261refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102120161009
180261refgcc -m64 -Os -fomit-frame-pointer2016102120161009
180635refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102120161009
180701refgcc -march=barcelona -Os -fomit-frame-pointer2016102120161009
180747refgcc -m64 -march=k8 -O -fomit-frame-pointer2016102120161009
180749refgcc -march=k8 -O -fomit-frame-pointer2016102120161009
180901refgcc -m64 -O2 -fomit-frame-pointer2016102120161009
180909refgcc -O2 -fomit-frame-pointer2016102120161009
180912refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102120161009
180917refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102120161009
180923refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102120161009
180925refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102120161009
180928refgcc -march=nocona -O2 -fomit-frame-pointer2016102120161009
181218refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102120161009
181323refgcc -march=barcelona -O2 -fomit-frame-pointer2016102120161009
182877refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102120161009
182880refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102120161009
182957refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102120161009
183222refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102120161009
184408refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102120161009
184642refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102120161009
184734refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102120161009
184760refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102120161009
728872optimized_nonSSEcc2016102120161009
728944optimized_nonSSEgcc2016102120161009
729201optimized_nonSSEgcc -funroll-loops2016102120161009
828459refcc2016102120161009
831795refgcc2016102120161009
833506refgcc -funroll-loops2016102120161009

Test failure

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
error 111
crypto_aead_decrypt returns nonzero

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments optimized_nonSSE ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments optimized_nonSSE ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE ref

Test failure

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer optimized_nonSSE ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:231:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:333:68: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: c[CRYPTO_NSECBYTES+b+i] = InternalState8[i1] = InternalState8[i1++] ^ m[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:478:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: 3 warnings generated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/pi64cipher128v1/optimized_nonSSE
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.c: encrypt.c:346:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:448:68: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: c[CRYPTO_NSECBYTES+b+i] = InternalState8[i1] = InternalState8[i1++] ^ m[b+i];
encrypt.c: ~~ ^
encrypt.c: encrypt.c:593:42: warning: unsequenced modification and access to 'i1' [-Wunsequenced]
encrypt.c: InternalState8[i1] = InternalState8[i1++] ^ ad[b+i];
encrypt.c: ~~ ^
encrypt.c: 3 warnings generated.

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments optimized_nonSSE
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments optimized_nonSSE