File: unpack_bool_neon.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 (89 lines) | stat: -rw-r--r-- 2,422 bytes parent folder | download
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
	.text
	.file	"unpack_bool.c"
	.globl	bytes_to_bools_neon     // -- Begin function bytes_to_bools_neon
	.p2align	2
	.type	bytes_to_bools_neon,@function
bytes_to_bools_neon:                    // @bytes_to_bools_neon
// %bb.0:
	stp	x29, x30, [sp, #-16]!   // 16-byte Folded Spill
	cmp	w1, #1                  // =1
	mov	x29, sp
	b.lt	.LBB0_12
// %bb.1:
	mov	w9, w1
	mov	x8, xzr
	lsl	x9, x9, #3
	mov	w10, #5
	b	.LBB0_3
.LBB0_2:                                //   in Loop: Header=BB0_3 Depth=1
	add	x8, x8, #8              // =8
	cmp	x9, x8
	add	x0, x0, #1              // =1
	b.eq	.LBB0_12
.LBB0_3:                                // =>This Inner Loop Header: Depth=1
	cmp	w8, w3
	b.ge	.LBB0_2
// %bb.4:                               //   in Loop: Header=BB0_3 Depth=1
	ldrb	w12, [x0]
	and	x11, x8, #0xffffffff
	orr	x13, x11, #0x1
	cmp	w13, w3
	and	w12, w12, #0x1
	strb	w12, [x2, x11]
	b.ge	.LBB0_2
// %bb.5:                               //   in Loop: Header=BB0_3 Depth=1
	ldrb	w14, [x0]
	orr	x12, x11, #0x2
	cmp	w12, w3
	ubfx	w14, w14, #1, #1
	strb	w14, [x2, x13]
	b.ge	.LBB0_2
// %bb.6:                               //   in Loop: Header=BB0_3 Depth=1
	ldrb	w14, [x0]
	orr	x13, x11, #0x3
	cmp	w13, w3
	ubfx	w14, w14, #2, #1
	strb	w14, [x2, x12]
	b.ge	.LBB0_2
// %bb.7:                               //   in Loop: Header=BB0_3 Depth=1
	ldrb	w14, [x0]
	orr	x12, x11, #0x4
	cmp	w12, w3
	ubfx	w14, w14, #3, #1
	strb	w14, [x2, x13]
	b.ge	.LBB0_2
// %bb.8:                               //   in Loop: Header=BB0_3 Depth=1
	ldrb	w14, [x0]
	orr	x13, x11, x10
	cmp	w13, w3
	ubfx	w14, w14, #4, #1
	strb	w14, [x2, x12]
	b.ge	.LBB0_2
// %bb.9:                               //   in Loop: Header=BB0_3 Depth=1
	ldrb	w14, [x0]
	orr	x12, x11, #0x6
	cmp	w12, w3
	ubfx	w14, w14, #5, #1
	strb	w14, [x2, x13]
	b.ge	.LBB0_2
// %bb.10:                              //   in Loop: Header=BB0_3 Depth=1
	ldrb	w13, [x0]
	orr	x11, x11, #0x7
	cmp	w11, w3
	ubfx	w13, w13, #6, #1
	strb	w13, [x2, x12]
	b.ge	.LBB0_2
// %bb.11:                              //   in Loop: Header=BB0_3 Depth=1
	ldrb	w12, [x0]
	lsr	w12, w12, #7
	strb	w12, [x2, x11]
	b	.LBB0_2
.LBB0_12:
	ldp	x29, x30, [sp], #16     // 16-byte Folded Reload
	ret
.Lfunc_end0:
	.size	bytes_to_bools_neon, .Lfunc_end0-bytes_to_bools_neon
                                        // -- End function
	.ident	"clang version 10.0.0-4ubuntu1 "
	.section	".note.GNU-stack","",@progbits
	.addrsig