github.com/apache/arrow/go/v14@v14.0.1/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