github.com/apache/arrow/go/v14@v14.0.2/parquet/internal/utils/_lib/unpack_bool_sse4.s (about)

     1  	.text
     2  	.intel_syntax noprefix
     3  	.file	"unpack_bool.c"
     4  	.globl	bytes_to_bools_sse4             # -- Begin function bytes_to_bools_sse4
     5  	.p2align	4, 0x90
     6  	.type	bytes_to_bools_sse4,@function
     7  bytes_to_bools_sse4:                    # @bytes_to_bools_sse4
     8  # %bb.0:
     9  	push	rbp
    10  	mov	rbp, rsp
    11  	and	rsp, -8
    12  	test	esi, esi
    13  	jle	.LBB0_5
    14  # %bb.1:
    15  	mov	r8d, esi
    16  	shl	r8, 3
    17  	xor	r10d, r10d
    18  	jmp	.LBB0_2
    19  	.p2align	4, 0x90
    20  .LBB0_4:                                #   in Loop: Header=BB0_2 Depth=1
    21  	add	r10, 8
    22  	add	rdi, 1
    23  	cmp	r8, r10
    24  	je	.LBB0_5
    25  .LBB0_2:                                # =>This Inner Loop Header: Depth=1
    26  	cmp	r10d, ecx
    27  	jge	.LBB0_4
    28  # %bb.3:                                #   in Loop: Header=BB0_2 Depth=1
    29  	mov	r9d, r10d
    30  	movzx	eax, byte ptr [rdi]
    31  	and	al, 1
    32  	mov	byte ptr [rdx + r9], al
    33  	mov	rsi, r9
    34  	or	rsi, 1
    35  	cmp	esi, ecx
    36  	jge	.LBB0_4
    37  # %bb.6:                                #   in Loop: Header=BB0_2 Depth=1
    38  	movzx	eax, byte ptr [rdi]
    39  	shr	al
    40  	and	al, 1
    41  	mov	byte ptr [rdx + rsi], al
    42  	mov	rsi, r9
    43  	or	rsi, 2
    44  	cmp	esi, ecx
    45  	jge	.LBB0_4
    46  # %bb.7:                                #   in Loop: Header=BB0_2 Depth=1
    47  	movzx	eax, byte ptr [rdi]
    48  	shr	al, 2
    49  	and	al, 1
    50  	mov	byte ptr [rdx + rsi], al
    51  	mov	rsi, r9
    52  	or	rsi, 3
    53  	cmp	esi, ecx
    54  	jge	.LBB0_4
    55  # %bb.8:                                #   in Loop: Header=BB0_2 Depth=1
    56  	movzx	eax, byte ptr [rdi]
    57  	shr	al, 3
    58  	and	al, 1
    59  	mov	byte ptr [rdx + rsi], al
    60  	mov	rsi, r9
    61  	or	rsi, 4
    62  	cmp	esi, ecx
    63  	jge	.LBB0_4
    64  # %bb.9:                                #   in Loop: Header=BB0_2 Depth=1
    65  	movzx	eax, byte ptr [rdi]
    66  	shr	al, 4
    67  	and	al, 1
    68  	mov	byte ptr [rdx + rsi], al
    69  	mov	rsi, r9
    70  	or	rsi, 5
    71  	cmp	esi, ecx
    72  	jge	.LBB0_4
    73  # %bb.10:                               #   in Loop: Header=BB0_2 Depth=1
    74  	movzx	eax, byte ptr [rdi]
    75  	shr	al, 5
    76  	and	al, 1
    77  	mov	byte ptr [rdx + rsi], al
    78  	mov	rsi, r9
    79  	or	rsi, 6
    80  	cmp	esi, ecx
    81  	jge	.LBB0_4
    82  # %bb.11:                               #   in Loop: Header=BB0_2 Depth=1
    83  	movzx	eax, byte ptr [rdi]
    84  	shr	al, 6
    85  	and	al, 1
    86  	mov	byte ptr [rdx + rsi], al
    87  	or	r9, 7
    88  	cmp	r9d, ecx
    89  	jge	.LBB0_4
    90  # %bb.12:                               #   in Loop: Header=BB0_2 Depth=1
    91  	movzx	eax, byte ptr [rdi]
    92  	shr	al, 7
    93  	mov	byte ptr [rdx + r9], al
    94  	jmp	.LBB0_4
    95  .LBB0_5:
    96  	mov	rsp, rbp
    97  	pop	rbp
    98  	ret
    99  .Lfunc_end0:
   100  	.size	bytes_to_bools_sse4, .Lfunc_end0-bytes_to_bools_sse4
   101                                          # -- End function
   102  	.ident	"Debian clang version 11.1.0-++20210428103820+1fdec59bffc1-1~exp1~20210428204437.162"
   103  	.section	".note.GNU-stack","",@progbits
   104  	.addrsig