Implementation notes: armeabi, novena, crypto_hash/blake3

Computer: novena
Architecture: armeabi
CPU ID: unknown CPU ID
SUPERCOP version: 20220506
Operation: crypto_hash
Primitive: blake3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
204026890 0 014211 412 704T:portablegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
212028684 0 016531 420 704T:portablegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
212028732 0 017843 420 704T:portablegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506
216029652 0 020821 424 704T:portableclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
216029672 0 020989 424 712T:portableclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
216029580 0 019011 420 704T:portableclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
2200118504 0 038317 424 712T:neonclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
220019940 0 029765 424 712T:portableclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
228029636 0 019187 420 704T:portableclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2022060420220506
260018870 0 016631 420 704T:portablegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2022060420220506

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:1:1: error: unknown directive
blake3_avx2_x86-64_unix.S: .intel_syntax noprefix
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:12:14: error: invalid operand for instruction
blake3_avx2_x86-64_unix.S: push r15
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:13:14: error: invalid operand for instruction
blake3_avx2_x86-64_unix.S: push r14
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:14:14: error: invalid operand for instruction
blake3_avx2_x86-64_unix.S: push r13
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:15:14: error: invalid operand for instruction
blake3_avx2_x86-64_unix.S: push r12
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:16:14: error: invalid operand for instruction
blake3_avx2_x86-64_unix.S: push rbx
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:17:14: error: invalid operand for instruction
blake3_avx2_x86-64_unix.S: push rbp
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:18:13: error: operand must be a register in range [r0, r15]
blake3_avx2_x86-64_unix.S: mov rbp, rsp
blake3_avx2_x86-64_unix.S: ^
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:19:13: error: operand must be a register in range [r0, r15]
blake3_avx2_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: ...
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S: Assembler messages:
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:12: Error: expression too complex -- `push r15'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:13: Error: expression too complex -- `push r14'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:14: Error: expression too complex -- `push r13'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:15: Error: expression too complex -- `push r12'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:16: Error: expression too complex -- `push rbx'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:17: Error: expression too complex -- `push rbp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:18: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:19: Error: ARM register expected -- `sub rsp,680'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:20: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:21: Error: ARM register expected -- `neg r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:22: Error: bad instruction `vmovd xmm0,r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:23: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:24: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x280],ymm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:25: Error: bad instruction `vpand ymm1,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:26: Error: bad instruction `vpand ymm2,ymm0,ymmword ptr [ADD1+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:27: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x220],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:28: Error: bad instruction `vmovd xmm2,r8d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:29: Error: bad instruction `vpbroadcastd ymm2,xmm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:30: Error: bad instruction `vpaddd ymm2,ymm2,ymm1'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:31: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x240],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:32: Error: bad instruction `vpxor ymm1,ymm1,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:33: Error: bad instruction `vpxor ymm2,ymm2,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:34: Error: bad instruction `vpcmpgtd ymm2,ymm1,ymm2'
blake3_avx2_x86-64_unix.S: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading between 64 and 96 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S: Assembler messages:
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:12: Error: expression too complex -- `push r15'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:13: Error: expression too complex -- `push r14'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:14: Error: expression too complex -- `push r13'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:15: Error: expression too complex -- `push r12'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:16: Error: expression too complex -- `push rbx'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:17: Error: expression too complex -- `push rbp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:18: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:19: Error: ARM register expected -- `sub rsp,680'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:20: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:21: Error: ARM register expected -- `neg r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:22: Error: bad instruction `vmovd xmm0,r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:23: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:24: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x280],ymm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:25: Error: bad instruction `vpand ymm1,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:26: Error: bad instruction `vpand ymm2,ymm0,ymmword ptr [ADD1+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:27: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x220],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:28: Error: bad instruction `vmovd xmm2,r8d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:29: Error: bad instruction `vpbroadcastd ymm2,xmm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:30: Error: bad instruction `vpaddd ymm2,ymm2,ymm1'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:31: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x240],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:32: Error: bad instruction `vpxor ymm1,ymm1,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:33: Error: bad instruction `vpxor ymm2,ymm2,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:34: Error: bad instruction `vpcmpgtd ymm2,ymm1,ymm2'
blake3_avx2_x86-64_unix.S: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S: Assembler messages:
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:12: Error: expression too complex -- `push r15'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:13: Error: expression too complex -- `push r14'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:14: Error: expression too complex -- `push r13'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:15: Error: expression too complex -- `push r12'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:16: Error: expression too complex -- `push rbx'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:17: Error: expression too complex -- `push rbp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:18: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:19: Error: ARM register expected -- `sub rsp,680'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:20: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:21: Error: ARM register expected -- `neg r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:22: Error: bad instruction `vmovd xmm0,r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:23: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:24: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x280],ymm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:25: Error: bad instruction `vpand ymm1,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:26: Error: bad instruction `vpand ymm2,ymm0,ymmword ptr [ADD1+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:27: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x220],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:28: Error: bad instruction `vmovd xmm2,r8d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:29: Error: bad instruction `vpbroadcastd ymm2,xmm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:30: Error: bad instruction `vpaddd ymm2,ymm2,ymm1'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:31: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x240],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:32: Error: bad instruction `vpxor ymm1,ymm1,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:33: Error: bad instruction `vpxor ymm2,ymm2,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:34: Error: bad instruction `vpcmpgtd ymm2,ymm1,ymm2'
blake3_avx2_x86-64_unix.S: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S: Assembler messages:
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:12: Error: expression too complex -- `push r15'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:13: Error: expression too complex -- `push r14'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:14: Error: expression too complex -- `push r13'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:15: Error: expression too complex -- `push r12'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:16: Error: expression too complex -- `push rbx'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:17: Error: expression too complex -- `push rbp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:18: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:19: Error: ARM register expected -- `sub rsp,680'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:20: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:21: Error: ARM register expected -- `neg r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:22: Error: bad instruction `vmovd xmm0,r9d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:23: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:24: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x280],ymm0'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:25: Error: bad instruction `vpand ymm1,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:26: Error: bad instruction `vpand ymm2,ymm0,ymmword ptr [ADD1+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:27: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x220],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:28: Error: bad instruction `vmovd xmm2,r8d'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:29: Error: bad instruction `vpbroadcastd ymm2,xmm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:30: Error: bad instruction `vpaddd ymm2,ymm2,ymm1'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:31: Error: bad instruction `vmovdqa ymmword ptr [rsp+0x240],ymm2'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:32: Error: bad instruction `vpxor ymm1,ymm1,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:33: Error: bad instruction `vpxor ymm2,ymm2,ymmword ptr [CMP_MSB_MASK+rip]'
blake3_avx2_x86-64_unix.S: blake3_avx2_x86-64_unix.S:34: Error: bad instruction `vpcmpgtd ymm2,ymm1,ymm2'
blake3_avx2_x86-64_unix.S: ...

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

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:1:1: error: unknown directive
blake3_avx512_x86-64_unix.S: .intel_syntax noprefix
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:18:14: error: invalid operand for instruction
blake3_avx512_x86-64_unix.S: push r15
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:19:14: error: invalid operand for instruction
blake3_avx512_x86-64_unix.S: push r14
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:20:14: error: invalid operand for instruction
blake3_avx512_x86-64_unix.S: push r13
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:21:14: error: invalid operand for instruction
blake3_avx512_x86-64_unix.S: push r12
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:22:14: error: invalid operand for instruction
blake3_avx512_x86-64_unix.S: push rbx
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:23:14: error: invalid operand for instruction
blake3_avx512_x86-64_unix.S: push rbp
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:24:13: error: operand must be a register in range [r0, r15]
blake3_avx512_x86-64_unix.S: mov rbp, rsp
blake3_avx512_x86-64_unix.S: ^
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:25:13: error: operand must be a register in range [r0, r15]
blake3_avx512_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx512
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx512
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx512
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx512
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx512

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: ...
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S: Assembler messages:
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:18: Error: expression too complex -- `push r15'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:19: Error: expression too complex -- `push r14'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:20: Error: expression too complex -- `push r13'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:21: Error: expression too complex -- `push r12'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:22: Error: expression too complex -- `push rbx'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:23: Error: expression too complex -- `push rbp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:24: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:25: Error: ARM register expected -- `sub rsp,144'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:26: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:27: Error: bad arguments to instruction -- `neg r9'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:28: Error: bad instruction `kmovw k1,r9d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:29: Error: bad instruction `vmovd xmm0,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:30: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:31: Error: bad instruction `shr r8,32'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:32: Error: bad instruction `vmovd xmm1,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:33: Error: bad instruction `vpbroadcastd ymm1,xmm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:34: Error: bad instruction `vmovdqa ymm4,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:35: Error: bad instruction `vmovdqa ymm5,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:36: Error: bad instruction `vpaddd ymm2,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:37: Error: bad instruction `vpaddd ymm3,ymm0,ymmword ptr [ADD0+32+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:38: Error: bad instruction `vpcmpltud k2,ymm2,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:39: Error: bad instruction `vpcmpltud k3,ymm3,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:40: Error: bad instruction `vpaddd ymm4 {k2},ymm4,dword ptr [ADD1+rip] {1to8}'
blake3_avx512_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx512

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading between 64 and 96 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S: Assembler messages:
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:18: Error: expression too complex -- `push r15'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:19: Error: expression too complex -- `push r14'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:20: Error: expression too complex -- `push r13'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:21: Error: expression too complex -- `push r12'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:22: Error: expression too complex -- `push rbx'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:23: Error: expression too complex -- `push rbp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:24: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:25: Error: ARM register expected -- `sub rsp,144'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:26: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:27: Error: bad arguments to instruction -- `neg r9'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:28: Error: bad instruction `kmovw k1,r9d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:29: Error: bad instruction `vmovd xmm0,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:30: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:31: Error: bad instruction `shr r8,32'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:32: Error: bad instruction `vmovd xmm1,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:33: Error: bad instruction `vpbroadcastd ymm1,xmm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:34: Error: bad instruction `vmovdqa ymm4,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:35: Error: bad instruction `vmovdqa ymm5,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:36: Error: bad instruction `vpaddd ymm2,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:37: Error: bad instruction `vpaddd ymm3,ymm0,ymmword ptr [ADD0+32+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:38: Error: bad instruction `vpcmpltud k2,ymm2,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:39: Error: bad instruction `vpcmpltud k3,ymm3,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:40: Error: bad instruction `vpaddd ymm4 {k2},ymm4,dword ptr [ADD1+rip] {1to8}'
blake3_avx512_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx512

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S: Assembler messages:
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:18: Error: expression too complex -- `push r15'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:19: Error: expression too complex -- `push r14'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:20: Error: expression too complex -- `push r13'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:21: Error: expression too complex -- `push r12'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:22: Error: expression too complex -- `push rbx'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:23: Error: expression too complex -- `push rbp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:24: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:25: Error: ARM register expected -- `sub rsp,144'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:26: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:27: Error: bad arguments to instruction -- `neg r9'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:28: Error: bad instruction `kmovw k1,r9d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:29: Error: bad instruction `vmovd xmm0,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:30: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:31: Error: bad instruction `shr r8,32'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:32: Error: bad instruction `vmovd xmm1,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:33: Error: bad instruction `vpbroadcastd ymm1,xmm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:34: Error: bad instruction `vmovdqa ymm4,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:35: Error: bad instruction `vmovdqa ymm5,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:36: Error: bad instruction `vpaddd ymm2,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:37: Error: bad instruction `vpaddd ymm3,ymm0,ymmword ptr [ADD0+32+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:38: Error: bad instruction `vpcmpltud k2,ymm2,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:39: Error: bad instruction `vpcmpltud k3,ymm3,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:40: Error: bad instruction `vpaddd ymm4 {k2},ymm4,dword ptr [ADD1+rip] {1to8}'
blake3_avx512_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx512

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S: Assembler messages:
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:18: Error: expression too complex -- `push r15'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:19: Error: expression too complex -- `push r14'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:20: Error: expression too complex -- `push r13'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:21: Error: expression too complex -- `push r12'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:22: Error: expression too complex -- `push rbx'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:23: Error: expression too complex -- `push rbp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:24: Error: ARM register expected -- `mov rbp,rsp'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:25: Error: ARM register expected -- `sub rsp,144'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:26: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:27: Error: bad arguments to instruction -- `neg r9'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:28: Error: bad instruction `kmovw k1,r9d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:29: Error: bad instruction `vmovd xmm0,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:30: Error: bad instruction `vpbroadcastd ymm0,xmm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:31: Error: bad instruction `shr r8,32'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:32: Error: bad instruction `vmovd xmm1,r8d'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:33: Error: bad instruction `vpbroadcastd ymm1,xmm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:34: Error: bad instruction `vmovdqa ymm4,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:35: Error: bad instruction `vmovdqa ymm5,ymm1'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:36: Error: bad instruction `vpaddd ymm2,ymm0,ymmword ptr [ADD0+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:37: Error: bad instruction `vpaddd ymm3,ymm0,ymmword ptr [ADD0+32+rip]'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:38: Error: bad instruction `vpcmpltud k2,ymm2,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:39: Error: bad instruction `vpcmpltud k3,ymm3,ymm0'
blake3_avx512_x86-64_unix.S: blake3_avx512_x86-64_unix.S:40: Error: bad instruction `vpaddd ymm4 {k2},ymm4,dword ptr [ADD1+rip] {1to8}'
blake3_avx512_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx512

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake3.c: In file included from blake3.c:12:
blake3.c: ./blake3_static_dispatch.h:17:9: warning: 'MAX_SIMD_DEGREE' macro redefined [-Wmacro-redefined]
blake3.c: #define MAX_SIMD_DEGREE 4
blake3.c: ^
blake3.c: ./blake3_impl.h:53:9: note: previous definition is here
blake3.c: #define MAX_SIMD_DEGREE 1
blake3.c: ^
blake3.c: In file included from blake3.c:12:
blake3.c: ./blake3_static_dispatch.h:18:9: warning: 'MAX_SIMD_DEGREE_OR_2' macro redefined [-Wmacro-redefined]
blake3.c: #define MAX_SIMD_DEGREE_OR_2 4
blake3.c: ^
blake3.c: ./blake3_impl.h:58:9: note: previous definition is here
blake3.c: #define MAX_SIMD_DEGREE_OR_2 (MAX_SIMD_DEGREE > 2 ? MAX_SIMD_DEGREE : 2)
blake3.c: ^
blake3.c: 2 warnings generated.
blake3_neon.c: In file included from blake3_neon.c:3:
blake3_neon.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/arm_neon.h:32:2: error: "NEON support not enabled"
blake3_neon.c: #error "NEON support not enabled"
blake3_neon.c: ^
blake3_neon.c: blake3_neon.c:6:8: error: unknown type name 'uint32x4_t'; did you mean 'uint32_t'?
blake3_neon.c: INLINE uint32x4_t loadu_128(const uint8_t src[16]) {
blake3_neon.c: ^~~~~~~~~~
blake3_neon.c: uint32_t
blake3_neon.c: /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h:26:20: note: 'uint32_t' declared here
blake3_neon.c: typedef __uint32_t uint32_t;
blake3_neon.c: ^
blake3_neon.c: blake3_neon.c:8:3: error: unknown type name 'uint32x4_t'; did you mean 'uint32_t'?
blake3_neon.c: uint32x4_t x;
blake3_neon.c: ^~~~~~~~~~
blake3_neon.c: uint32_t
blake3_neon.c: /usr/include/arm-linux-gnueabihf/bits/stdint-uintn.h:26:20: note: 'uint32_t' declared here
blake3_neon.c: typedef __uint32_t uint32_t;
blake3_neon.c: ^
blake3_neon.c: blake3_neon.c:9:3: warning: 'memcpy' will always overflow; destination buffer has size 4, but size argument is 16 [-Wfortify-source]
blake3_neon.c: memcpy(&x, src, 16);
blake3_neon.c: ^
blake3_neon.c: blake3_neon.c:13:24: error: unknown type name 'uint32x4_t'; did you mean 'uint32_t'?
blake3_neon.c: INLINE void storeu_128(uint32x4_t src, uint8_t dest[16]) {
blake3_neon.c: ^~~~~~~~~~
blake3_neon.c: uint32_t
blake3_neon.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:neon

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake3.c: In file included from blake3.c:12:
blake3.c: ./blake3_static_dispatch.h:17:9: warning: 'MAX_SIMD_DEGREE' macro redefined [-Wmacro-redefined]
blake3.c: #define MAX_SIMD_DEGREE 4
blake3.c: ^
blake3.c: ./blake3_impl.h:53:9: note: previous definition is here
blake3.c: #define MAX_SIMD_DEGREE 1
blake3.c: ^
blake3.c: In file included from blake3.c:12:
blake3.c: ./blake3_static_dispatch.h:18:9: warning: 'MAX_SIMD_DEGREE_OR_2' macro redefined [-Wmacro-redefined]
blake3.c: #define MAX_SIMD_DEGREE_OR_2 4
blake3.c: ^
blake3.c: ./blake3_impl.h:58:9: note: previous definition is here
blake3.c: #define MAX_SIMD_DEGREE_OR_2 (MAX_SIMD_DEGREE > 2 ? MAX_SIMD_DEGREE : 2)
blake3.c: ^
blake3.c: 2 warnings generated.

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

Compiler output

Implementation: T:neon
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In file included from blake3.c:12:
blake3.c: blake3_static_dispatch.h:17: warning: "MAX_SIMD_DEGREE" redefined
blake3.c: 17 | #define MAX_SIMD_DEGREE 4
blake3.c: |
blake3.c: In file included from blake3.c:6:
blake3.c: blake3_impl.h:53: note: this is the location of the previous definition
blake3.c: 53 | #define MAX_SIMD_DEGREE 1
blake3.c: |
blake3.c: In file included from blake3.c:12:
blake3.c: blake3_static_dispatch.h:18: warning: "MAX_SIMD_DEGREE_OR_2" redefined
blake3.c: 18 | #define MAX_SIMD_DEGREE_OR_2 4
blake3.c: |
blake3.c: In file included from blake3.c:6:
blake3.c: blake3_impl.h:58: note: this is the location of the previous definition
blake3.c: 58 | #define MAX_SIMD_DEGREE_OR_2 (MAX_SIMD_DEGREE > 2 ? MAX_SIMD_DEGREE : 2)
blake3.c: |
blake3_neon.c: In file included from blake3_neon.c:3:
blake3_neon.c: blake3_neon.c: In function ‘add_128’:
blake3_neon.c: /usr/lib/gcc/arm-linux-gnueabihf/10/include/arm_neon.h:651:1: error: inlining failed in call to ‘always_inline’ ‘vaddq_u32’: target specific option mismatch
blake3_neon.c: 651 | vaddq_u32 (uint32x4_t __a, uint32x4_t __b)
blake3_neon.c: | ^~~~~~~~~
blake3_neon.c: blake3_neon.c:19:10: note: called from here
blake3_neon.c: 19 | return vaddq_u32(a, b);
blake3_neon.c: | ^~~~~~~~~~~~~~~

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

Compiler output

Implementation: T:portable
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable

Compiler output

Implementation: T:portable
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading between 64 and 96 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable

Compiler output

Implementation: T:portable
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:portable

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:1:1: error: unknown directive
blake3_sse41_x86-64_unix.S: .intel_syntax noprefix
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:16:14: error: invalid operand for instruction
blake3_sse41_x86-64_unix.S: push r15
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:17:14: error: invalid operand for instruction
blake3_sse41_x86-64_unix.S: push r14
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:18:14: error: invalid operand for instruction
blake3_sse41_x86-64_unix.S: push r13
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:19:14: error: invalid operand for instruction
blake3_sse41_x86-64_unix.S: push r12
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:20:14: error: invalid operand for instruction
blake3_sse41_x86-64_unix.S: push rbx
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:21:14: error: invalid operand for instruction
blake3_sse41_x86-64_unix.S: push rbp
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:22:13: error: operand must be a register in range [r0, r15]
blake3_sse41_x86-64_unix.S: mov rbp, rsp
blake3_sse41_x86-64_unix.S: ^
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:23:13: error: operand must be a register in range [r0, r15]
blake3_sse41_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sse41
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sse41
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sse41
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sse41
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sse41

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading 64 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: ...
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S: Assembler messages:
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:16: Error: expression too complex -- `push r15'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:17: Error: expression too complex -- `push r14'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:18: Error: expression too complex -- `push r13'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:19: Error: expression too complex -- `push r12'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:20: Error: expression too complex -- `push rbx'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:21: Error: expression too complex -- `push rbp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:22: Error: ARM register expected -- `mov rbp,rsp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:23: Error: ARM register expected -- `sub rsp,360'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:24: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:25: Error: ARM register expected -- `neg r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:26: Error: bad instruction `movd xmm0,r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:27: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:28: Error: bad instruction `movdqa xmmword ptr [rsp+0x130],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:29: Error: bad instruction `movdqa xmm1,xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:30: Error: bad instruction `pand xmm1,xmmword ptr [ADD0+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:31: Error: bad instruction `pand xmm0,xmmword ptr [ADD1+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:32: Error: bad instruction `movdqa xmmword ptr [rsp+0x150],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:33: Error: bad instruction `movd xmm0,r8d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:34: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:35: Error: bad instruction `paddd xmm0,xmm1'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:36: Error: bad instruction `movdqa xmmword ptr [rsp+0x110],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:37: Error: bad instruction `pxor xmm0,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:38: Error: bad instruction `pxor xmm1,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse41

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3.c: In function ‘compress_subtree_to_parent_node’,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:237:5: warning: ‘memcpy’ reading between 64 and 96 bytes from a region of size 32 [-Wstringop-overflow=]
blake3.c: 237 | memcpy(cv_array, out_array, num_cvs * BLAKE3_OUT_LEN);
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S: Assembler messages:
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:16: Error: expression too complex -- `push r15'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:17: Error: expression too complex -- `push r14'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:18: Error: expression too complex -- `push r13'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:19: Error: expression too complex -- `push r12'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:20: Error: expression too complex -- `push rbx'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:21: Error: expression too complex -- `push rbp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:22: Error: ARM register expected -- `mov rbp,rsp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:23: Error: ARM register expected -- `sub rsp,360'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:24: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:25: Error: ARM register expected -- `neg r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:26: Error: bad instruction `movd xmm0,r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:27: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:28: Error: bad instruction `movdqa xmmword ptr [rsp+0x130],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:29: Error: bad instruction `movdqa xmm1,xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:30: Error: bad instruction `pand xmm1,xmmword ptr [ADD0+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:31: Error: bad instruction `pand xmm0,xmmword ptr [ADD1+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:32: Error: bad instruction `movdqa xmmword ptr [rsp+0x150],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:33: Error: bad instruction `movd xmm0,r8d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:34: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:35: Error: bad instruction `paddd xmm0,xmm1'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:36: Error: bad instruction `movdqa xmmword ptr [rsp+0x110],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:37: Error: bad instruction `pxor xmm0,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:38: Error: bad instruction `pxor xmm1,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse41

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S: Assembler messages:
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:16: Error: expression too complex -- `push r15'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:17: Error: expression too complex -- `push r14'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:18: Error: expression too complex -- `push r13'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:19: Error: expression too complex -- `push r12'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:20: Error: expression too complex -- `push rbx'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:21: Error: expression too complex -- `push rbp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:22: Error: ARM register expected -- `mov rbp,rsp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:23: Error: ARM register expected -- `sub rsp,360'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:24: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:25: Error: ARM register expected -- `neg r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:26: Error: bad instruction `movd xmm0,r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:27: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:28: Error: bad instruction `movdqa xmmword ptr [rsp+0x130],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:29: Error: bad instruction `movdqa xmm1,xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:30: Error: bad instruction `pand xmm1,xmmword ptr [ADD0+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:31: Error: bad instruction `pand xmm0,xmmword ptr [ADD1+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:32: Error: bad instruction `movdqa xmmword ptr [rsp+0x150],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:33: Error: bad instruction `movd xmm0,r8d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:34: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:35: Error: bad instruction `paddd xmm0,xmm1'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:36: Error: bad instruction `movdqa xmmword ptr [rsp+0x110],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:37: Error: bad instruction `pxor xmm0,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:38: Error: bad instruction `pxor xmm1,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse41

Compiler output

Implementation: T:sse41
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
blake3.c: In function ‘compress_parents_parallel’,
blake3.c: inlined from ‘compress_subtree_to_parent_node’ at blake3.c:236:9,
blake3.c: inlined from ‘blake3_default_hash’ at blake3.c:249:3:
blake3.c: blake3.c:125:5: warning: ‘memcpy’ writing 32 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
blake3.c: 125 | memcpy(&out[parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 126 | &child_chaining_values[2 * parents_array_len * BLAKE3_OUT_LEN],
blake3.c: | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blake3.c: 127 | BLAKE3_OUT_LEN);
blake3.c: | ~~~~~~~~~~~~~~~
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S: Assembler messages:
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:1: Error: unknown pseudo-op: `.intel_syntax'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:16: Error: expression too complex -- `push r15'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:17: Error: expression too complex -- `push r14'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:18: Error: expression too complex -- `push r13'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:19: Error: expression too complex -- `push r12'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:20: Error: expression too complex -- `push rbx'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:21: Error: expression too complex -- `push rbp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:22: Error: ARM register expected -- `mov rbp,rsp'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:23: Error: ARM register expected -- `sub rsp,360'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:24: Error: ARM register expected -- `and rsp,0xFFFFFFFFFFFFFFC0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:25: Error: ARM register expected -- `neg r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:26: Error: bad instruction `movd xmm0,r9d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:27: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:28: Error: bad instruction `movdqa xmmword ptr [rsp+0x130],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:29: Error: bad instruction `movdqa xmm1,xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:30: Error: bad instruction `pand xmm1,xmmword ptr [ADD0+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:31: Error: bad instruction `pand xmm0,xmmword ptr [ADD1+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:32: Error: bad instruction `movdqa xmmword ptr [rsp+0x150],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:33: Error: bad instruction `movd xmm0,r8d'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:34: Error: bad instruction `pshufd xmm0,xmm0,0x00'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:35: Error: bad instruction `paddd xmm0,xmm1'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:36: Error: bad instruction `movdqa xmmword ptr [rsp+0x110],xmm0'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:37: Error: bad instruction `pxor xmm0,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: blake3_sse41_x86-64_unix.S:38: Error: bad instruction `pxor xmm1,xmmword ptr [CMP_MSB_MASK+rip]'
blake3_sse41_x86-64_unix.S: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse41