Implementation notes: aarch64, supercoplxc, crypto_stream/amastrid

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_stream
Primitive: amastrid
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
16832018051 24 235435448 1296 3200refg++_-O3_-fomit-frame-pointer2019090220190816
16944015093 8 231032806 1120 3152refclang++_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090220190816
17320028147 24 235446876 1296 3200refg++_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
17416015053 8 231032686 1120 3152refclang++_-O3_-fomit-frame-pointer_-Qunused-arguments2019090220190816
17424017311 24 231433367 1288 3136refg++_-O2_-fomit-frame-pointer2019090220190816
17712015061 8 231032742 1120 3152refclang++_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090220190816
17720015061 8 231032742 1120 3152refclang++_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090220190816
17720015061 8 231032742 1120 3152refclang++_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090220190816
17840028831 24 231447027 1288 3136refg++_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
20112018115 24 235435488 1296 3200refg++_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090220190816
20760017331 24 231433311 1288 3136refg++_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090220190816
23264011909 24 231426319 1184 3128refg++_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
24408029207 24 231448509 1280 3136refg++_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
24992017407 24 231433493 1280 3136refg++_-fno-schedule-insns_-O_-fomit-frame-pointer2019090220190816
25000017407 24 231433493 1280 3136refg++_-O_-fomit-frame-pointer2019090220190816
26096011725 24 231426087 1184 3128refg++_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090220190816
26112011725 24 231426087 1184 3128refg++_-Os_-fomit-frame-pointer2019090220190816
81720020197 24 232639461 1208 3144refg++2019090220190816

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
Amastrid.cpp: In file included from Amastrid.cpp:3:
Amastrid.cpp: ./Amastrid.h:241:13: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: for(register int i=0; i<len; i++)
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: ./Amastrid.h:250:13: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: for(register int i=0; i<len; i++,pbytes+=4)
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: In file included from Amastrid.cpp:4:
Amastrid.cpp: ./Expansion.h:55:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: register BYTE *p1, *p2;
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: ./Expansion.h:55:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: register BYTE *p1, *p2;
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: ./Expansion.h:56:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: register BYTE temp, v1, v2;
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: ./Expansion.h:56:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: register BYTE temp, v1, v2;
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: ./Expansion.h:56:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: register BYTE temp, v1, v2;
Amastrid.cpp: ^~~~~~~~~
Amastrid.cpp: ./Expansion.h:75:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Amastrid.cpp: register BYTE *p1, *p2;
Amastrid.cpp: ...
Counter.cpp: Counter.cpp:9:5: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Counter.cpp: register int i = 0;
Counter.cpp: ^~~~~~~~~
Counter.cpp: 1 warning generated.
CounterMode.cpp: In file included from CounterMode.cpp:2:
CounterMode.cpp: In file included from ./CounterMode.h:6:
CounterMode.cpp: ./Amastrid.h:241:13: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
CounterMode.cpp: for(register int i=0; i<len; i++)
CounterMode.cpp: ^~~~~~~~~
CounterMode.cpp: ./Amastrid.h:250:13: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
CounterMode.cpp: for(register int i=0; i<len; i++,pbytes+=4)
CounterMode.cpp: ^~~~~~~~~
CounterMode.cpp: In file included from CounterMode.cpp:2:
CounterMode.cpp: ./CounterMode.h:38:14: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
CounterMode.cpp: for (register int i = 0; i < n; i++)
CounterMode.cpp: ^~~~~~~~~
CounterMode.cpp: ./CounterMode.h:46:14: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
CounterMode.cpp: for (register int i = 0; i < n; i++)
CounterMode.cpp: ^~~~~~~~~
CounterMode.cpp: 4 warnings generated.
Expansion.cpp: In file included from Expansion.cpp:3:
Expansion.cpp: ./Expansion.h:55:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE *p1, *p2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:55:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE *p1, *p2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:56:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE temp, v1, v2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:56:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE temp, v1, v2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:56:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE temp, v1, v2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:75:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE *p1, *p2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:75:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE *p1, *p2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ./Expansion.h:76:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
Expansion.cpp: register BYTE temp, v1, v2;
Expansion.cpp: ^~~~~~~~~
Expansion.cpp: ...
stream.cpp: In file included from stream.cpp:3:
stream.cpp: In file included from ./CounterMode.h:6:
stream.cpp: ./Amastrid.h:241:13: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
stream.cpp: for(register int i=0; i<len; i++)
stream.cpp: ^~~~~~~~~
stream.cpp: ./Amastrid.h:250:13: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
stream.cpp: for(register int i=0; i<len; i++,pbytes+=4)
stream.cpp: ^~~~~~~~~
stream.cpp: In file included from stream.cpp:3:
stream.cpp: ./CounterMode.h:38:14: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
stream.cpp: for (register int i = 0; i < n; i++)
stream.cpp: ^~~~~~~~~
stream.cpp: ./CounterMode.h:46:14: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register]
stream.cpp: for (register int i = 0; i < n; i++)
stream.cpp: ^~~~~~~~~
stream.cpp: 4 warnings generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref