Implementation notes: aarch64, pi3aplus, crypto_hashblocks/sha512

Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240107
Operation: crypto_hashblocks
Primitive: sha512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1701810856 0 021152 840 744inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1706510832 0 021136 840 744refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
170892608 0 012920 840 744wflipgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
171332600 0 011607 832 728wflipgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
182782348 0 013285 768 736wflipclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
183394124 0 014448 840 744compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1835810980 0 019999 832 728refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1837111000 0 020023 832 728inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
192882632 0 010735 816 720wflipgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1974411876 0 022821 768 736inplaceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
1990210888 0 019023 816 720refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1995010884 0 019015 816 720inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1995311904 0 022829 768 736refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
200483560 0 012607 832 728compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
217523532 0 011671 816 720compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
219752636 0 011591 832 728wflipgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
241453964 0 014901 768 736compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
2661711184 0 020167 832 728refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
2670811184 0 020175 832 728inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
277911736 0 012677 768 736compact4clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
288821968 0 012280 840 744compact4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
302783660 0 012647 832 728compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
341401352 0 010375 832 728compact4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
377661208 0 09343 816 720compact4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
413771496 0 010519 832 728compact3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
439142084 0 012392 840 744compact3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
441121716 0 012661 768 736compact3clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
462142228 0 012552 840 744compact2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
465791388 0 010367 832 728compact4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
479711664 0 010711 832 728compact2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
523892216 0 013157 768 736compact2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
667681568 0 09719 816 720compact2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
739151348 0 09487 816 720compact3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
759471700 0 010695 832 728compact2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
796091568 0 010551 832 728compact3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
inner.c: In file included from inner.c:1:
inner.c: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/immintrin.h:28:
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:64:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:143:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:173:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:203:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:230:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:253:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:274:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
inner.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
inner.c: /usr/lib/llvm-7/lib/clang/7.0.1/include/mmintrin.h:301:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
inner.c: return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
inner.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx

Compiler output

Implementation: avx
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
inner.c: inner.c:1:10: fatal error: immintrin.h: No such file or directory
inner.c: #include <immintrin.h>
inner.c: ^~~~~~~~~~~~~
inner.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
inner.S: inner.S:422:5: error: unknown token in expression
inner.S: mov %rsp,%r11
inner.S: ^
inner.S: inner.S:422:5: error: invalid operand
inner.S: mov %rsp,%r11
inner.S: ^
inner.S: inner.S:423:5: error: invalid token in expression
inner.S: and $511,%r11
inner.S: ^
inner.S: inner.S:423:5: error: invalid operand
inner.S: and $511,%r11
inner.S: ^
inner.S: inner.S:424:5: error: invalid token in expression
inner.S: add $416,%r11
inner.S: ^
inner.S: inner.S:424:5: error: invalid operand
inner.S: add $416,%r11
inner.S: ^
inner.S: inner.S:425:5: error: unknown token in expression
inner.S: sub %r11,%rsp
inner.S: ^
inner.S: inner.S:425:5: error: invalid operand
inner.S: sub %r11,%rsp
inner.S: ^
inner.S: inner.S:430:5: error: unknown token in expression
inner.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
inner.S: inner.S: Assembler messages:
inner.S: inner.S:422: Error: operand 1 must be an integer register -- `mov %rsp,%r11'
inner.S: inner.S:423: Error: operand 1 must be an integer or stack pointer register -- `and $511,%r11'
inner.S: inner.S:424: Error: operand 1 must be an integer or stack pointer register -- `add $416,%r11'
inner.S: inner.S:425: Error: operand 1 must be an integer or stack pointer register -- `sub %r11,%rsp'
inner.S: inner.S:430: Error: operand 1 must be an integer register -- `mov %rcx,%r8'
inner.S: inner.S:435: Error: unknown mnemonic `vmovupd' -- `vmovupd 640(%rcx),%ymm0'
inner.S: inner.S:440: Error: unknown mnemonic `vmovupd' -- `vmovupd 0(%rdi),%ymm1'
inner.S: inner.S:445: Error: operand 1 must be an integer register -- `mov %rdi,%rcx'
inner.S: inner.S:450: Error: unknown mnemonic `vmovupd' -- `vmovupd 32(%rdi),%ymm2'
inner.S: inner.S:455: Error: unknown mnemonic `vpshufb' -- `vpshufb %ymm0,%ymm1,%ymm1'
inner.S: inner.S:460: Error: unknown mnemonic `vpshufb' -- `vpshufb %ymm0,%ymm2,%ymm2'
inner.S: inner.S:465: Error: unknown mnemonic `vmovapd' -- `vmovapd %ymm1,0(%rsp)'
inner.S: inner.S:470: Error: unknown mnemonic `movq' -- `movq %r11,320(%rsp)'
inner.S: inner.S:475: Error: unknown mnemonic `vmovapd' -- `vmovapd %ymm2,32(%rsp)'
inner.S: inner.S:480: Error: unknown mnemonic `movq' -- `movq %r13,328(%rsp)'
inner.S: inner.S:485: Error: unknown mnemonic `movq' -- `movq %r12,336(%rsp)'
inner.S: inner.S:490: Error: unknown mnemonic `movq' -- `movq %r14,344(%rsp)'
inner.S: inner.S:495: Error: unknown mnemonic `movq' -- `movq %rbx,352(%rsp)'
inner.S: inner.S:500: Error: unknown mnemonic `movq' -- `movq %r15,360(%rsp)'
inner.S: inner.S:505: Error: unknown mnemonic `movq' -- `movq %rbp,368(%rsp)'
inner.S: inner.S:510: Error: unknown mnemonic `movq' -- `movq %rdx,376(%rsp)'
inner.S: inner.S:515: Error: operand 1 must be an integer register -- `mov %rsi,%rdi'
inner.S: inner.S:520: Error: unknown mnemonic `movq' -- `movq %rcx,384(%rsp)'
inner.S: inner.S:525: Error: unknown mnemonic `movq' -- `movq 0(%rsp),%rsi'
inner.S: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2