Implementation notes: aarch64, pi3aplus, crypto_hashblocks/sha512
Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240425
Operation: crypto_hashblocks
Primitive: sha512
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
17018 | 10856 0 0 | 21000 840 744 | inplace | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
17065 | 10832 0 0 | 20984 840 744 | ref | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
17092 | 2608 0 0 | 12768 840 744 | wflip | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
17134 | 2600 0 0 | 11455 832 728 | wflip | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
18278 | 2348 0 0 | 13133 768 736 | wflip | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
18339 | 4124 0 0 | 14296 840 744 | compact | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
18359 | 10980 0 0 | 19847 832 728 | ref | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
18372 | 11000 0 0 | 19871 832 728 | inplace | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
19285 | 2632 0 0 | 10583 816 720 | wflip | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
19744 | 11876 0 0 | 22669 768 736 | inplace | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
19902 | 10888 0 0 | 18871 816 720 | ref | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
19929 | 11904 0 0 | 22677 768 736 | ref | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
19950 | 10884 0 0 | 18863 816 720 | inplace | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
20047 | 3560 0 0 | 12455 832 728 | compact | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
21753 | 3532 0 0 | 11519 816 720 | compact | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
21976 | 2636 0 0 | 11439 832 728 | wflip | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
24145 | 3964 0 0 | 14749 768 736 | compact | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
26621 | 11184 0 0 | 20015 832 728 | ref | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
26711 | 11184 0 0 | 20023 832 728 | inplace | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
27792 | 1736 0 0 | 12525 768 736 | compact4 | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
28882 | 1968 0 0 | 12128 840 744 | compact4 | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
30278 | 3660 0 0 | 12495 832 728 | compact | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
34131 | 1352 0 0 | 10223 832 728 | compact4 | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
37785 | 1208 0 0 | 9191 816 720 | compact4 | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
41378 | 1496 0 0 | 10367 832 728 | compact3 | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
44059 | 2084 0 0 | 12240 840 744 | compact3 | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
44113 | 1716 0 0 | 12509 768 736 | compact3 | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
46218 | 2228 0 0 | 12400 840 744 | compact2 | gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
46582 | 1388 0 0 | 10215 832 728 | compact4 | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
47977 | 1664 0 0 | 10559 832 728 | compact2 | gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
52389 | 2216 0 0 | 13005 768 736 | compact2 | clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE | 20240426 | 20240425 |
66764 | 1568 0 0 | 9567 816 720 | compact2 | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
73917 | 1348 0 0 | 9335 816 720 | compact3 | gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
75948 | 1700 0 0 | 10543 832 728 | compact2 | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
79642 | 1568 0 0 | 10399 832 728 | compact3 | gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE | 20240426 | 20240425 |
Compiler output
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 (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
avx | clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final)) |
Compiler output
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 (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
avx | gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
avx | gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
avx | gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
avx | gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
Compiler output
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 (implementation,compiler) pairs: 1, namely:
Implementation | Compiler |
avx2 | clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE (4.2.1_Compatible_Clang_7.0.1_(tags/RELEASE_701/final)) |
Compiler output
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 (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
avx2 | gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
avx2 | gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
avx2 | gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |
avx2 | gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE (8.3.0) |