File: unpack_bool_sse4.s

package info (click to toggle)
golang-github-apache-arrow-go 18.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 32,200 kB
  • sloc: asm: 477,547; ansic: 5,369; cpp: 759; sh: 585; makefile: 319; python: 190; sed: 5
file content (104 lines) | stat: -rw-r--r-- 2,515 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
	.text
	.intel_syntax noprefix
	.file	"unpack_bool.c"
	.globl	bytes_to_bools_sse4             # -- Begin function bytes_to_bools_sse4
	.p2align	4, 0x90
	.type	bytes_to_bools_sse4,@function
bytes_to_bools_sse4:                    # @bytes_to_bools_sse4
# %bb.0:
	push	rbp
	mov	rbp, rsp
	and	rsp, -8
	test	esi, esi
	jle	.LBB0_5
# %bb.1:
	mov	r8d, esi
	shl	r8, 3
	xor	r10d, r10d
	jmp	.LBB0_2
	.p2align	4, 0x90
.LBB0_4:                                #   in Loop: Header=BB0_2 Depth=1
	add	r10, 8
	add	rdi, 1
	cmp	r8, r10
	je	.LBB0_5
.LBB0_2:                                # =>This Inner Loop Header: Depth=1
	cmp	r10d, ecx
	jge	.LBB0_4
# %bb.3:                                #   in Loop: Header=BB0_2 Depth=1
	mov	r9d, r10d
	movzx	eax, byte ptr [rdi]
	and	al, 1
	mov	byte ptr [rdx + r9], al
	mov	rsi, r9
	or	rsi, 1
	cmp	esi, ecx
	jge	.LBB0_4
# %bb.6:                                #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al
	and	al, 1
	mov	byte ptr [rdx + rsi], al
	mov	rsi, r9
	or	rsi, 2
	cmp	esi, ecx
	jge	.LBB0_4
# %bb.7:                                #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al, 2
	and	al, 1
	mov	byte ptr [rdx + rsi], al
	mov	rsi, r9
	or	rsi, 3
	cmp	esi, ecx
	jge	.LBB0_4
# %bb.8:                                #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al, 3
	and	al, 1
	mov	byte ptr [rdx + rsi], al
	mov	rsi, r9
	or	rsi, 4
	cmp	esi, ecx
	jge	.LBB0_4
# %bb.9:                                #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al, 4
	and	al, 1
	mov	byte ptr [rdx + rsi], al
	mov	rsi, r9
	or	rsi, 5
	cmp	esi, ecx
	jge	.LBB0_4
# %bb.10:                               #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al, 5
	and	al, 1
	mov	byte ptr [rdx + rsi], al
	mov	rsi, r9
	or	rsi, 6
	cmp	esi, ecx
	jge	.LBB0_4
# %bb.11:                               #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al, 6
	and	al, 1
	mov	byte ptr [rdx + rsi], al
	or	r9, 7
	cmp	r9d, ecx
	jge	.LBB0_4
# %bb.12:                               #   in Loop: Header=BB0_2 Depth=1
	movzx	eax, byte ptr [rdi]
	shr	al, 7
	mov	byte ptr [rdx + r9], al
	jmp	.LBB0_4
.LBB0_5:
	mov	rsp, rbp
	pop	rbp
	ret
.Lfunc_end0:
	.size	bytes_to_bools_sse4, .Lfunc_end0-bytes_to_bools_sse4
                                        # -- End function
	.ident	"Debian clang version 11.1.0-++20210428103820+1fdec59bffc1-1~exp1~20210428204437.162"
	.section	".note.GNU-stack","",@progbits
	.addrsig