shithub: furgit

Download patch

ref: 0bb3530892f42739f04d08e603cc7d7b871df660
parent: c9a7e4093e6a50a432aa17bbbcc3892761f02a2c
author: Runxi Yu <me@runxiyu.org>
date: Sun Feb 22 06:52:44 EST 2026

adler32: Use reasonable label names

--- a/internal/adler32/adler32_avx2.s
+++ b/internal/adler32/adler32_avx2.s
@@ -23,10 +23,10 @@
 	MOVQ         buf_len+16(FP), DX
 	MOVQ         buf_cap+24(FP), CX
 	WORD         $0x8548; BYTE $0xf6     // TESTQ SI, SI                         // test	rsi, rsi
-	JE           LBB0_1                  // <--                                  // je	.LBB0_1
+	JE           return_one              // <--                                  // je	.return_one
 	WORD         $0xf889                 // MOVL DI, AX                          // mov	eax, edi
 	WORD         $0x8548; BYTE $0xd2     // TESTQ DX, DX                         // test	rdx, rdx
-	JE           LBB0_2                  // <--                                  // je	.LBB0_2
+	JE           return_current          // <--                                  // je	.return_current
 	NOP                                  // (skipped)                            // push	rbp
 	NOP                                  // (skipped)                            // mov	rbp, rsp
 	NOP                                  // (skipped)                            // and	rsp, -8
@@ -34,18 +34,18 @@
 	WORD         $0xe9c1; BYTE $0x10     // SHRL $0x10, CX                       // shr	ecx, 16
 	WORD         $0xb70f; BYTE $0xc0     // MOVZX AX, AX                         // movzx	eax, ax
 	CMPQ         DX, $0x20               // <--                                  // cmp	rdx, 32
-	JB           LBB0_17                 // <--                                  // jb	.LBB0_17
+	JB           scalar_unrolled16       // <--                                  // jb	.scalar_unrolled16
 	LONG         $0x078071bf; BYTE $0x80 // MOVL $-0x7ff87f8f, DI                // mov	edi, 2147975281
 	LONG         $0xc0eff9c5             // VPXOR X0, X0, X0                     // vpxor	xmm0, xmm0, xmm0
 	VMOVDQA      LCPI0_0<>(SB), Y1       // <--                                  // vmovdqa	ymm1, ymmword ptr [rip + .LCPI0_0]
 	VPBROADCASTW LCPI0_2<>(SB), Y2       // <--                                  // vpbroadcastw	ymm2, word ptr [rip + .LCPI0_2]
-	JMP          LBB0_6                  // <--                                  // jmp	.LBB0_6
+	JMP          vector_outer            // <--                                  // jmp	.vector_outer
 
-LBB0_7:
+vector_tail_init:
 	LONG $0xf46ffdc5 // VMOVDQA Y4, Y6                       // vmovdqa	ymm6, ymm4
 	LONG $0xedefd1c5 // VPXOR X5, X5, X5                     // vpxor	xmm5, xmm5, xmm5
 
-LBB0_14:
+vector_reduce_finalize_chunk:
 	SUBQ  AX, DX                                // <--                                  // sub	rdx, rax
 	LONG  $0xf572ddc5; BYTE $0x05               // ?                                    // vpslld	ymm4, ymm5, 5
 	LONG  $0xdbfeddc5                           // VPADDD Y3, Y4, Y3                    // vpaddd	ymm3, ymm4, ymm3
@@ -74,9 +74,9 @@
 	LONG  $0xf1c06945; WORD $0x00ff; BYTE $0x00 // IMULL $0xfff1, R8, R8                // imul	r8d, r8d, 65521
 	WORD  $0x2944; BYTE $0xc1                   // SUBL R8, CX                          // sub	ecx, r8d
 	CMPQ  DX, $0x1f                             // <--                                  // cmp	rdx, 31
-	JBE   LBB0_15                               // <--                                  // jbe	.LBB0_15
+	JBE   scalar_entry                          // <--                                  // jbe	.scalar_entry
 
-LBB0_6:
+vector_outer:
 	LONG $0xe06ef9c5               // VMOVD AX, X4                         // vmovd	xmm4, eax
 	LONG $0xd96ef9c5               // VMOVD CX, X3                         // vmovd	xmm3, ecx
 	CMPQ DX, $0x15b0               // <--                                  // cmp	rdx, 5552
@@ -84,11 +84,11 @@
 	LONG $0xc2420f4c               // CMOVB DX, R8                         // cmovb	r8, rdx
 	WORD $0x8944; BYTE $0xc0       // MOVL R8, AX                          // mov	eax, r8d
 	LONG $0x001fe025; BYTE $0x00   // ANDL $0x1fe0, AX                     // and	eax, 8160
-	JE   LBB0_7                    // <--                                  // je	.LBB0_7
+	JE   vector_tail_init          // <--                                  // je	.vector_tail_init
 	ADDQ $-0x20, R8                // <--                                  // add	r8, -32
 	LONG $0xedefd1c5               // VPXOR X5, X5, X5                     // vpxor	xmm5, xmm5, xmm5
 	LONG $0x20c0f641               // TESTL $0x20, R8                      // test	r8b, 32
-	JNE  LBB0_9                    // <--                                  // jne	.LBB0_9
+	JNE  vector_block32_check      // <--                                  // jne	.vector_block32_check
 	LONG $0x2e6ffec5               // VMOVDQU 0(SI), Y5                    // vmovdqu	ymm5, ymmword ptr [rsi]
 	ADDQ $0x20, SI                 // <--                                  // add	rsi, 32
 	LEAQ -0x20(AX), CX             // <--                                  // lea	rcx, [rax - 32]
@@ -100,15 +100,15 @@
 	LONG $0xec6ffdc5               // VMOVDQA Y4, Y5                       // vmovdqa	ymm5, ymm4
 	LONG $0xe66ffdc5               // VMOVDQA Y6, Y4                       // vmovdqa	ymm4, ymm6
 	CMPQ R8, $0x20                 // <--                                  // cmp	r8, 32
-	JAE  LBB0_12                   // <--                                  // jae	.LBB0_12
-	JMP  LBB0_14                   // <--                                  // jmp	.LBB0_14
+	JAE  vector_block64_loop                   // <--                                  // jae	.vector_block64_loop
+	JMP  vector_reduce_finalize_chunk          // <--                                  // jmp	.vector_reduce_finalize_chunk
 
-LBB0_9:
+vector_block32_check:
 	MOVQ AX, CX    // <--                                  // mov	rcx, rax
 	CMPQ R8, $0x20 // <--                                  // cmp	r8, 32
-	JB   LBB0_14   // <--                                  // jb	.LBB0_14
+	JB   vector_reduce_finalize_chunk   // <--                                  // jb	.vector_reduce_finalize_chunk
 
-LBB0_12:
+vector_block64_loop:
 	LONG $0x366ffec5             // VMOVDQU 0(SI), Y6                    // vmovdqu	ymm6, ymmword ptr [rsi]
 	LONG $0x7e6ffec5; BYTE $0x20 // VMOVDQU 0x20(SI), Y7                 // vmovdqu	ymm7, ymmword ptr [rsi + 32]
 	LONG $0xc0f64dc5             // VPSADBW Y0, Y6, Y8                   // vpsadbw	ymm8, ymm6, ymm0
@@ -125,24 +125,24 @@
 	LONG $0xf2f5cdc5             // VPMADDWD Y2, Y6, Y6                  // vpmaddwd	ymm6, ymm6, ymm2
 	LONG $0xdbfecdc5             // VPADDD Y3, Y6, Y3                    // vpaddd	ymm3, ymm6, ymm3
 	ADDQ $-0x40, CX              // <--                                  // add	rcx, -64
-	JNE  LBB0_12                 // <--                                  // jne	.LBB0_12
+	JNE  vector_block64_loop     // <--                                  // jne	.vector_block64_loop
 	LONG $0xf46ffdc5             // VMOVDQA Y4, Y6                       // vmovdqa	ymm6, ymm4
-	JMP  LBB0_14                 // <--                                  // jmp	.LBB0_14
+	JMP  vector_reduce_finalize_chunk                 // <--                                  // jmp	.vector_reduce_finalize_chunk
 
-LBB0_1:
+return_one:
 	LONG $0x000001b8; BYTE $0x00 // MOVL $0x1, AX                        // mov	eax, 1
 
-LBB0_2:
+return_current:
 	MOVL AX, ret+32(FP) // <--
 	RET                 // <--                                  // ret
 
-LBB0_15:
+scalar_entry:
 	WORD $0x8548; BYTE $0xd2 // TESTQ DX, DX                         // test	rdx, rdx
-	JE   LBB0_16             // <--                                  // je	.LBB0_16
+	JE   return_final             // <--                                  // je	.return_final
 
-LBB0_17:
+scalar_unrolled16:
 	CMPQ DX, $0x10               // <--                                  // cmp	rdx, 16
-	JB   LBB0_20                 // <--                                  // jb	.LBB0_20
+	JB   scalar_byte_prelude     // <--                                  // jb	.scalar_byte_prelude
 	WORD $0xb60f; BYTE $0x3e     // MOVZX 0(SI), DI                      // movzx	edi, byte ptr [rsi]
 	WORD $0xf801                 // ADDL DI, AX                          // add	eax, edi
 	WORD $0xc101                 // ADDL AX, CX                          // add	ecx, eax
@@ -192,32 +192,32 @@
 	WORD $0x0144; BYTE $0xc0     // ADDL R8, AX                          // add	eax, r8d
 	WORD $0xc101                 // ADDL AX, CX                          // add	ecx, eax
 	ADDQ $-0x10, DX              // <--                                  // add	rdx, -16
-	JE   LBB0_27                 // <--                                  // je	.LBB0_27
+	JE   scalar_finalize                 // <--                                  // je	.scalar_finalize
 	ADDQ $0x10, SI               // <--                                  // add	rsi, 16
 
-LBB0_20:
+scalar_byte_prelude:
 	LEAQ -0x1(DX), DI // <--                                  // lea	rdi, [rdx - 1]
 	MOVQ DX, R9       // <--                                  // mov	r9, rdx
 	ANDQ $0x3, R9     // <--                                  // and	r9, 3
-	JE   LBB0_24      // <--                                  // je	.LBB0_24
+	JE   scalar_dword_prelude      // <--                                  // je	.scalar_dword_prelude
 	XORL R8, R8       // <--                                  // xor	r8d, r8d
 
-LBB0_22:
+scalar_byte_prelude_loop:
 	LONG $0x14b60f46; BYTE $0x06 // MOVZX 0(SI)(R8*1), R10               // movzx	r10d, byte ptr [rsi + r8]
 	WORD $0x0144; BYTE $0xd0     // ADDL R10, AX                         // add	eax, r10d
 	WORD $0xc101                 // ADDL AX, CX                          // add	ecx, eax
 	INCQ R8                      // <--                                  // inc	r8
 	CMPQ R9, R8                  // <--                                  // cmp	r9, r8
-	JNE  LBB0_22                 // <--                                  // jne	.LBB0_22
+	JNE  scalar_byte_prelude_loop// <--                                  // jne	.scalar_byte_prelude_loop
 	ADDQ R8, SI                  // <--                                  // add	rsi, r8
 	SUBQ R8, DX                  // <--                                  // sub	rdx, r8
 
-LBB0_24:
+scalar_dword_prelude:
 	CMPQ DI, $0x3 // <--                                  // cmp	rdi, 3
-	JB   LBB0_27  // <--                                  // jb	.LBB0_27
+	JB   scalar_finalize  // <--                                  // jb	.scalar_finalize
 	XORL DI, DI   // <--                                  // xor	edi, edi
 
-LBB0_26:
+scalar_dword_loop:
 	LONG $0x04b60f44; BYTE $0x3e   // MOVZX 0(SI)(DI*1), R8                // movzx	r8d, byte ptr [rsi + rdi]
 	WORD $0x0141; BYTE $0xc0       // ADDL AX, R8                          // add	r8d, eax
 	WORD $0x0144; BYTE $0xc1       // ADDL R8, CX                          // add	ecx, r8d
@@ -232,9 +232,9 @@
 	WORD $0xc101                   // ADDL AX, CX                          // add	ecx, eax
 	ADDQ $0x4, DI                  // <--                                  // add	rdi, 4
 	CMPQ DX, DI                    // <--                                  // cmp	rdx, rdi
-	JNE  LBB0_26                   // <--                                  // jne	.LBB0_26
+	JNE  scalar_dword_loop         // <--                                  // jne	.scalar_dword_loop
 
-LBB0_27:
+scalar_finalize:
 	LONG  $0x000f908d; WORD $0xffff // LEAL -0xfff1(AX), DX                 // lea	edx, [rax - 65521]
 	CMPL  AX, $0xfff1               // <--                                  // cmp	eax, 65521
 	WORD  $0x420f; BYTE $0xd0       // CMOVB AX, DX                         // cmovb	edx, eax
@@ -253,7 +253,7 @@
 	MOVL  AX, ret+32(FP)            // <--
 	RET                             // <--                                  // ret
 
-LBB0_16:
+return_final:
 	WORD $0xe1c1; BYTE $0x10 // SHLL $0x10, CX                       // shl	ecx, 16
 	WORD $0xc809             // ORL CX, AX                           // or	eax, ecx
 	NOP                      // (skipped)                            // mov	rsp, rbp
--- a/internal/adler32/adler32_neon.s
+++ b/internal/adler32/adler32_neon.s
@@ -22,11 +22,11 @@
 	ANDW $65535, R0, R8     // <--                                  // and	w8, w0, #0xffff
 	LSRW $16, R0, R9        // <--                                  // lsr	w9, w0, #16
 	NOP                     // (skipped)                            // mov	x29, sp
-	BEQ  LBB0_4             // <--                                  // b.eq	.LBB0_4
+	BEQ  vector_entry       // <--                                  // b.eq	.vector_entry
 	ADD  $1, R1, R11        // <--                                  // add	x11, x1, #1
 	MOVD R1, R12            // <--                                  // mov	x12, x1
 
-LBB0_2:
+align_prologue_loop:
 	WORD  $0x3840158d       // MOVBU.P 1(R12), R13                  // ldrb	w13, [x12], #1
 	SUB   $1, R2, R2        // <--                                  // sub	x2, x2, #1
 	TST   $15, R11          // <--                                  // tst	x11, #0xf
@@ -33,7 +33,7 @@
 	ADD   $1, R11, R11      // <--                                  // add	x11, x11, #1
 	ADDW  R13, R8, R8       // <--                                  // add	w8, w8, w13
 	ADDW  R9, R8, R9        // <--                                  // add	w9, w8, w9
-	BNE   LBB0_2            // <--                                  // b.ne	.LBB0_2
+	BNE   align_prologue_loop            // <--                                  // b.ne	.align_prologue_loop
 	MOVW  $32881, R11       // <--                                  // mov	w11, #32881
 	MOVW  $65521, R13       // <--                                  // mov	w13, #65521
 	MOVKW $(32775<<16), R11 // <--                                  // movk	w11, #32775, lsl #16
@@ -48,10 +48,10 @@
 	CSELW HI, R12, R8, R8   // <--                                  // csel	w8, w12, w8, hi
 	MSUBW R13, R9, R11, R9  // <--                                  // msub	w9, w11, w13, w9
 
-LBB0_4:
+vector_entry:
 	AND   $31, R2, R10                        // <--                                  // and	x10, x2, #0x1f
 	CMP   $32, R2                             // <--                                  // cmp	x2, #32
-	BCC   LBB0_9                              // <--                                  // b.lo	.LBB0_9
+	BCC   scalar_entry                        // <--                                  // b.lo	.scalar_entry
 	MOVD  $mult_table<>(SB), R11              // <--                                  // adrp	x11, mult_table
 	ADD   $0, R11, R11                        // <--                                  // add	x11, x11, :lo12:mult_table
 	MOVW  $32881, R14                         // <--                                  // mov	w14, #32881
@@ -66,7 +66,7 @@
 	VEXT  $8, V2.B16, V2.B16, V6.B16          // <--                                  // ext	v6.16b, v2.16b, v2.16b, #8
 	VEXT  $8, V3.B16, V3.B16, V7.B16          // <--                                  // ext	v7.16b, v3.16b, v3.16b, #8
 
-LBB0_6:
+vector_chunk_outer:
 	CMP  $173, R11               // <--                                  // cmp	x11, #173
 	MOVD R1, R2                  // <--                                  // mov	x2, x1
 	CSEL LO, R11, R12, R16       // <--                                  // csel	x16, x11, x12, lo
@@ -82,7 +82,7 @@
 	MOVW R16, R0                 // <--                                  // mov	w0, w16
 	WORD $0x6f00e411             // VMOVI $0, V17.D2                     // movi	v17.2d, #0000000000000000
 
-LBB0_7:
+vector_chunk_inner:
 	WORD  $0xacc15857                   // FLDPQ.P 32(R2), (F23, F22)           // ldp	q23, q22, [x2], #32
 	SUBSW $1, R0, R0                    // <--                                  // subs	w0, w0, #1
 	VADD  V17.S4, V20.S4, V20.S4        // <--                                  // add	v20.4s, v20.4s, v17.4s
@@ -93,7 +93,7 @@
 	WORD  $0x6e361210                   // VUADDW2 V22.B16, V16.H8, V16.H8      // uaddw2	v16.8h, v16.8h, v22.16b
 	WORD  $0x6e206af8                   // VUADALP V23.B16, V24.H8              // uadalp	v24.8h, v23.16b
 	WORD  $0x6e606b11                   // VUADALP V24.H8, V17.S4               // uadalp	v17.4s, v24.8h
-	BNE   LBB0_7                        // <--                                  // b.ne	.LBB0_7
+	BNE   vector_chunk_inner            // <--                                  // b.ne	.vector_chunk_inner
 	VSHL  $5, V20.S4, V20.S4            // <--                                  // shl	v20.4s, v20.4s, #5
 	ADD   R17, R1, R17                  // <--                                  // add	x17, x1, x17
 	SUBS  R16, R11, R11                 // <--                                  // subs	x11, x11, x16
@@ -123,12 +123,12 @@
 	LSR   $47, R2, R2                   // <--                                  // lsr	x2, x2, #47
 	MSUBW R15, R8, R0, R8               // <--                                  // msub	w8, w0, w15, w8
 	MSUBW R15, R9, R2, R9               // <--                                  // msub	w9, w2, w15, w9
-	BNE   LBB0_6                        // <--                                  // b.ne	.LBB0_6
+	BNE   vector_chunk_outer            // <--                                  // b.ne	.vector_chunk_outer
 
-LBB0_9:
-	CBZ  R10, LBB0_15  // <--                                  // cbz	x10, .LBB0_15
+scalar_entry:
+	CBZ  R10, return_final  // <--                                  // cbz	x10, .return_final
 	CMP  $16, R10      // <--                                  // cmp	x10, #16
-	BCC  LBB0_13       // <--                                  // b.lo	.LBB0_13
+	BCC  scalar_byte_loop   // <--                                  // b.lo	.scalar_byte_loop
 	WORD $0x3940002b   // MOVBU (R1), R11                      // ldrb	w11, [x1]
 	SUBS $16, R10, R10 // <--                                  // subs	x10, x10, #16
 	WORD $0x3940042c   // MOVBU 1(R1), R12                     // ldrb	w12, [x1, #1]
@@ -178,17 +178,17 @@
 	ADDW R8, R9, R9    // <--                                  // add	w9, w9, w8
 	ADDW R11, R8, R8   // <--                                  // add	w8, w8, w11
 	ADDW R8, R9, R9    // <--                                  // add	w9, w9, w8
-	BEQ  LBB0_14       // <--                                  // b.eq	.LBB0_14
+	BEQ  scalar_finalize       // <--                                  // b.eq	.scalar_finalize
 	ADD  $16, R1, R1   // <--                                  // add	x1, x1, #16
 
-LBB0_13:
+scalar_byte_loop:
 	WORD $0x3840142b  // MOVBU.P 1(R1), R11                   // ldrb	w11, [x1], #1
 	SUBS $1, R10, R10 // <--                                  // subs	x10, x10, #1
 	ADDW R11, R8, R8  // <--                                  // add	w8, w8, w11
 	ADDW R9, R8, R9   // <--                                  // add	w9, w8, w9
-	BNE  LBB0_13      // <--                                  // b.ne	.LBB0_13
+	BNE  scalar_byte_loop      // <--                                  // b.ne	.scalar_byte_loop
 
-LBB0_14:
+scalar_finalize:
 	MOVW  $32881, R10       // <--                                  // mov	w10, #32881
 	MOVW  $65521, R12       // <--                                  // mov	w12, #65521
 	MOVKW $(32775<<16), R10 // <--                                  // movk	w10, #32775, lsl #16
@@ -201,7 +201,7 @@
 	LSR   $47, R10, R10     // <--                                  // lsr	x10, x10, #47
 	MSUBW R12, R9, R10, R9  // <--                                  // msub	w9, w10, w12, w9
 
-LBB0_15:
+return_final:
 	ORRW R9<<16, R8, R0 // <--                                  // orr	w0, w8, w9, lsl #16
 	NOP                 // (skipped)                            // ldp	x29, x30, [sp], #16
 	MOVW R0, ret+32(FP) // <--
--- a/internal/adler32/adler32_sse3.s
+++ b/internal/adler32/adler32_sse3.s
@@ -28,11 +28,11 @@
 	WORD    $0xd189             // MOVL DX, CX                          // mov	ecx, edx
 	WORD    $0xe183; BYTE $0x1f // ANDL $0x1f, CX                       // and	ecx, 31
 	CMPQ    DX, $0x20           // <--                                  // cmp	rdx, 32
-	JAE     LBB0_2              // <--                                  // jae	.LBB0_2
+	JAE     vector_entry        // <--                                  // jae	.vector_entry
 	WORD    $0x8944; BYTE $0xcf // MOVL R9, DI                          // mov	edi, r9d
-	JMP     LBB0_6              // <--                                  // jmp	.LBB0_6
+	JMP     scalar_entry        // <--                                  // jmp	.scalar_entry
 
-LBB0_2:
+vector_entry:
 	SHRQ $0x5, DX                  // <--                                  // shr	rdx, 5
 	LONG $0xc0ef0f66               // PXOR X0, X0                          // pxor	xmm0, xmm0
 	MOVO LCPI0_0<>(SB), X1         // <--                                  // movdqa	xmm1, xmmword ptr [rip + .LCPI0_0]
@@ -40,7 +40,7 @@
 	MOVO LCPI0_2<>(SB), X3         // <--                                  // movdqa	xmm3, xmmword ptr [rip + .LCPI0_2]
 	LONG $0x8071b841; WORD $0x8007 // MOVL $-0x7ff87f8f, R8                // mov	r8d, 2147975281
 
-LBB0_3:
+vector_chunk_outer:
 	CMPQ DX, $0xad                 // <--                                  // cmp	rdx, 173
 	LONG $0x00adba41; WORD $0x0000 // MOVL $0xad, R10                      // mov	r10d, 173
 	LONG $0xd2420f4c               // CMOVB DX, R10                        // cmovb	r10, rdx
@@ -51,7 +51,7 @@
 	WORD $0x8944; BYTE $0xd0       // MOVL R10, AX                         // mov	eax, r10d
 	LONG $0xf6ef0f66               // PXOR X6, X6                          // pxor	xmm6, xmm6
 
-LBB0_4:
+vector_chunk_loop:
 	LONG  $0x3e6f0ff3                           // MOVDQU 0(SI), X7                     // movdqu	xmm7, xmmword ptr [rsi]
 	LONG  $0x6f0f4466; BYTE $0xc7               // MOVDQA X7, X8                        // movdqa	xmm8, xmm7
 	LONG  $0x04380f66; BYTE $0xf9               // PMADDUBSW X1, X7                     // pmaddubsw	xmm7, xmm1
@@ -69,7 +69,7 @@
 	LONG  $0xe7fe0f66                           // PADDD X7, X4                         // paddd	xmm4, xmm7
 	ADDQ  $0x20, SI                             // <--                                  // add	rsi, 32
 	WORD  $0xc8ff                               // DECL AX                              // dec	eax
-	JNE   LBB0_4                                // <--                                  // jne	.LBB0_4
+	JNE   vector_chunk_loop                     // <--                                  // jne	.vector_chunk_loop
 	LONG  $0xf5720f66; BYTE $0x05               // PSLLD $0x5, X5                       // pslld	xmm5, 5
 	LONG  $0xe5fe0f66                           // PADDD X5, X4                         // paddd	xmm4, xmm5
 	LONG  $0xee700f66; BYTE $0xb1               // PSHUFD $0xb1, X6, X5                 // pshufd	xmm5, xmm6, 177
@@ -95,13 +95,13 @@
 	WORD  $0x2944; BYTE $0xc8                   // SUBL R9, AX                          // sub	eax, r9d
 	WORD  $0x8941; BYTE $0xf9                   // MOVL DI, R9                          // mov	r9d, edi
 	SUBQ  R10, DX                               // <--                                  // sub	rdx, r10
-	JNE   LBB0_3                                // <--                                  // jne	.LBB0_3
+	JNE   vector_chunk_outer                    // <--                                  // jne	.vector_chunk_outer
 
-LBB0_6:
+scalar_entry:
 	WORD $0x8548; BYTE $0xc9     // TESTQ CX, CX                         // test	rcx, rcx
-	JE   LBB0_18                 // <--                                  // je	.LBB0_18
+	JE   return_final                 // <--                                  // je	.return_final
 	CMPL CX, $0x10               // <--                                  // cmp	ecx, 16
-	JB   LBB0_10                 // <--                                  // jb	.LBB0_10
+	JB   scalar_byte_prelude                 // <--                                  // jb	.scalar_byte_prelude
 	WORD $0xb60f; BYTE $0x16     // MOVZX 0(SI), DX                      // movzx	edx, byte ptr [rsi]
 	WORD $0xd701                 // ADDL DX, DI                          // add	edi, edx
 	WORD $0xf801                 // ADDL DI, AX                          // add	eax, edi
@@ -151,32 +151,32 @@
 	WORD $0x0144; BYTE $0xc7     // ADDL R8, DI                          // add	edi, r8d
 	WORD $0xf801                 // ADDL DI, AX                          // add	eax, edi
 	ADDQ $-0x10, CX              // <--                                  // add	rcx, -16
-	JE   LBB0_17                 // <--                                  // je	.LBB0_17
+	JE   scalar_finalize         // <--                                  // je	.scalar_finalize
 	ADDQ $0x10, SI               // <--                                  // add	rsi, 16
 
-LBB0_10:
+scalar_byte_prelude:
 	LEAQ -0x1(CX), DX // <--                                  // lea	rdx, [rcx - 1]
 	MOVQ CX, R9       // <--                                  // mov	r9, rcx
 	ANDQ $0x3, R9     // <--                                  // and	r9, 3
-	JE   LBB0_14      // <--                                  // je	.LBB0_14
+	JE   scalar_dword_prelude      // <--                                  // je	.scalar_dword_prelude
 	XORL R8, R8       // <--                                  // xor	r8d, r8d
 
-LBB0_12:
+scalar_byte_prelude_loop:
 	LONG $0x14b60f46; BYTE $0x06 // MOVZX 0(SI)(R8*1), R10               // movzx	r10d, byte ptr [rsi + r8]
 	WORD $0x0144; BYTE $0xd7     // ADDL R10, DI                         // add	edi, r10d
 	WORD $0xf801                 // ADDL DI, AX                          // add	eax, edi
 	INCQ R8                      // <--                                  // inc	r8
 	CMPQ R9, R8                  // <--                                  // cmp	r9, r8
-	JNE  LBB0_12                 // <--                                  // jne	.LBB0_12
+	JNE  scalar_byte_prelude_loop// <--                                  // jne	.scalar_byte_prelude_loop
 	ADDQ R8, SI                  // <--                                  // add	rsi, r8
 	SUBQ R8, CX                  // <--                                  // sub	rcx, r8
 
-LBB0_14:
+scalar_dword_prelude:
 	CMPQ DX, $0x3 // <--                                  // cmp	rdx, 3
-	JB   LBB0_17  // <--                                  // jb	.LBB0_17
+	JB   scalar_finalize  // <--                                  // jb	.scalar_finalize
 	XORL DX, DX   // <--                                  // xor	edx, edx
 
-LBB0_16:
+scalar_dword_loop:
 	LONG $0x04b60f44; BYTE $0x16   // MOVZX 0(SI)(DX*1), R8                // movzx	r8d, byte ptr [rsi + rdx]
 	WORD $0x0141; BYTE $0xf8       // ADDL DI, R8                          // add	r8d, edi
 	WORD $0x0144; BYTE $0xc0       // ADDL R8, AX                          // add	eax, r8d
@@ -191,9 +191,9 @@
 	WORD $0xf801                   // ADDL DI, AX                          // add	eax, edi
 	ADDQ $0x4, DX                  // <--                                  // add	rdx, 4
 	CMPQ CX, DX                    // <--                                  // cmp	rcx, rdx
-	JNE  LBB0_16                   // <--                                  // jne	.LBB0_16
+	JNE  scalar_dword_loop         // <--                                  // jne	.scalar_dword_loop
 
-LBB0_17:
+scalar_finalize:
 	LONG  $0x000f8f8d; WORD $0xffff // LEAL -0xfff1(DI), CX                 // lea	ecx, [rdi - 65521]
 	CMPL  DI, $0xfff1               // <--                                  // cmp	edi, 65521
 	WORD  $0x420f; BYTE $0xcf       // CMOVB DI, CX                         // cmovb	ecx, edi
@@ -205,7 +205,7 @@
 	WORD  $0xd029                   // SUBL DX, AX                          // sub	eax, edx
 	WORD  $0xcf89                   // MOVL CX, DI                          // mov	edi, ecx
 
-LBB0_18:
+return_final:
 	WORD $0xe0c1; BYTE $0x10 // SHLL $0x10, AX                       // shl	eax, 16
 	WORD $0xf809             // ORL DI, AX                           // or	eax, edi
 	NOP                      // (skipped)                            // mov	rsp, rbp
--