Implementation notes: aarch64, pi4b, crypto_hashblocks/sha512

Computer: pi4b
Microarchitecture: aarch64; Cortex-A72 (410fd083)
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20240107
Operation: crypto_hashblocks
Primitive: sha512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1251211520 0 021964 816 736inplacegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
125372672 0 012140 816 728wflipgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
125392668 0 013100 816 736wflipgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1259011476 0 021916 816 736refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
126092388 0 013890 840 728wflipclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
1294611052 0 020532 816 728refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1295611032 0 020524 816 728inplacegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
131033812 0 015354 840 728compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
132684176 0 014644 816 736compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
136232708 0 012027 808 728wflipgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
137723600 0 013100 816 728compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
141783480 0 011948 800 720compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
143932676 0 011100 800 720wflipgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1470310856 0 019316 800 720inplacegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
147763672 0 013035 808 728compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1488410860 0 019308 800 720refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1564411060 0 020419 808 728inplacegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1566111068 0 020411 808 728refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
1601811896 0 023402 840 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
1604211884 0 023410 840 728inplaceclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
176621664 0 013186 840 728compact4clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
191711264 0 09724 800 720compact4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
194711444 0 010948 816 728compact4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
198862056 0 012508 816 736compact4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
215621460 0 014903 808 728compact4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
257981708 0 013242 840 728compact3clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
271032296 0 012764 816 736compact2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
272971600 0 010076 800 720compact2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
273301720 0 011220 816 728compact2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
273962972 0 014498 840 728compact2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122420231222
278261560 0 011052 816 728compact3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
281871392 0 09844 800 720compact3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
284632084 0 012540 816 736compact3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
284661740 0 011099 808 728compact2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222
292411644 0 010979 808 728compact3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122420231222

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: /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
inner.c: #error "This header is only meant to be used on x86 and x64 architecture"
inner.c: ^
inner.c: In file included from inner.c:1:
inner.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:17:
inner.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/x86gprintrin.h:15:
inner.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/hresetintrin.h:42:27: error: invalid input constraint 'a' in asm
inner.c: __asm__ ("hreset $0" :: "a"(__eax));
inner.c: ^
inner.c: In file included from inner.c:1:
inner.c: In file included from /usr/lib/llvm-14/lib/clang/14.0.0/include/immintrin.h:21:
inner.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:14:2: error: "This header is only meant to be used on x86 and x64 architecture"
inner.c: #error "This header is only meant to be used on x86 and x64 architecture"
inner.c: ^
inner.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/mmintrin.h:54: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-14/lib/clang/14.0.0/include/mmintrin.h:133: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-14/lib/clang/14.0.0/include/mmintrin.h:163: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-14/lib/clang/14.0.0/include/mmintrin.h:193:12: error: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size
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: 1 | #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:10: error: unknown token in expression
inner.S: and $511,%r11
inner.S: ^
inner.S: inner.S:423:10: error: invalid operand
inner.S: and $511,%r11
inner.S: ^
inner.S: inner.S:424:10: error: unknown token in expression
inner.S: add $416,%r11
inner.S: ^
inner.S: inner.S:424:10: 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