]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/go/arrow/math/_lib/uint64_avx2.s
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / go / arrow / math / _lib / uint64_avx2.s
CommitLineData
1d09f67e
TL
1 .text
2 .intel_syntax noprefix
3 .file "_lib/uint64.c"
4 .globl sum_uint64_avx2
5 .p2align 4, 0x90
6 .type sum_uint64_avx2,@function
7sum_uint64_avx2: # @sum_uint64_avx2
8# BB#0:
9 push rbp
10 mov rbp, rsp
11 and rsp, -8
12 test rsi, rsi
13 je .LBB0_1
14# BB#2:
15 cmp rsi, 31
16 jbe .LBB0_3
17# BB#6:
18 mov r9, rsi
19 and r9, -32
20 je .LBB0_3
21# BB#7:
22 lea r8, [r9 - 32]
23 mov eax, r8d
24 shr eax, 5
25 inc eax
26 and rax, 7
27 je .LBB0_8
28# BB#9:
29 neg rax
30 vpxor ymm0, ymm0, ymm0
31 xor ecx, ecx
32 vpxor ymm1, ymm1, ymm1
33 vpxor ymm2, ymm2, ymm2
34 vpxor ymm3, ymm3, ymm3
35 vpxor ymm4, ymm4, ymm4
36 vpxor ymm5, ymm5, ymm5
37 vpxor ymm6, ymm6, ymm6
38 vpxor ymm7, ymm7, ymm7
39 .p2align 4, 0x90
40.LBB0_10: # =>This Inner Loop Header: Depth=1
41 vpaddq ymm0, ymm0, ymmword ptr [rdi + 8*rcx]
42 vpaddq ymm1, ymm1, ymmword ptr [rdi + 8*rcx + 32]
43 vpaddq ymm2, ymm2, ymmword ptr [rdi + 8*rcx + 64]
44 vpaddq ymm3, ymm3, ymmword ptr [rdi + 8*rcx + 96]
45 vpaddq ymm4, ymm4, ymmword ptr [rdi + 8*rcx + 128]
46 vpaddq ymm5, ymm5, ymmword ptr [rdi + 8*rcx + 160]
47 vpaddq ymm6, ymm6, ymmword ptr [rdi + 8*rcx + 192]
48 vpaddq ymm7, ymm7, ymmword ptr [rdi + 8*rcx + 224]
49 add rcx, 32
50 inc rax
51 jne .LBB0_10
52 jmp .LBB0_11
53.LBB0_3:
54 xor r9d, r9d
55 xor eax, eax
56.LBB0_4:
57 lea rcx, [rdi + 8*r9]
58 sub rsi, r9
59 .p2align 4, 0x90
60.LBB0_5: # =>This Inner Loop Header: Depth=1
61 add rax, qword ptr [rcx]
62 add rcx, 8
63 dec rsi
64 jne .LBB0_5
65 jmp .LBB0_15
66.LBB0_1:
67 xor eax, eax
68.LBB0_15:
69 mov qword ptr [rdx], rax
70 mov rsp, rbp
71 pop rbp
72 vzeroupper
73 ret
74.LBB0_8:
75 xor ecx, ecx
76 vpxor ymm0, ymm0, ymm0
77 vpxor ymm1, ymm1, ymm1
78 vpxor ymm2, ymm2, ymm2
79 vpxor ymm3, ymm3, ymm3
80 vpxor ymm4, ymm4, ymm4
81 vpxor ymm5, ymm5, ymm5
82 vpxor ymm6, ymm6, ymm6
83 vpxor ymm7, ymm7, ymm7
84.LBB0_11:
85 cmp r8, 224
86 jb .LBB0_14
87# BB#12:
88 mov rax, r9
89 sub rax, rcx
90 lea rcx, [rdi + 8*rcx + 1792]
91 .p2align 4, 0x90
92.LBB0_13: # =>This Inner Loop Header: Depth=1
93 vpaddq ymm7, ymm7, ymmword ptr [rcx - 1568]
94 vpaddq ymm6, ymm6, ymmword ptr [rcx - 1600]
95 vpaddq ymm5, ymm5, ymmword ptr [rcx - 1632]
96 vpaddq ymm4, ymm4, ymmword ptr [rcx - 1664]
97 vpaddq ymm3, ymm3, ymmword ptr [rcx - 1696]
98 vpaddq ymm2, ymm2, ymmword ptr [rcx - 1728]
99 vpaddq ymm1, ymm1, ymmword ptr [rcx - 1760]
100 vpaddq ymm0, ymm0, ymmword ptr [rcx - 1792]
101 vpaddq ymm0, ymm0, ymmword ptr [rcx - 1536]
102 vpaddq ymm1, ymm1, ymmword ptr [rcx - 1504]
103 vpaddq ymm2, ymm2, ymmword ptr [rcx - 1472]
104 vpaddq ymm3, ymm3, ymmword ptr [rcx - 1440]
105 vpaddq ymm4, ymm4, ymmword ptr [rcx - 1408]
106 vpaddq ymm5, ymm5, ymmword ptr [rcx - 1376]
107 vpaddq ymm6, ymm6, ymmword ptr [rcx - 1344]
108 vpaddq ymm7, ymm7, ymmword ptr [rcx - 1312]
109 vpaddq ymm7, ymm7, ymmword ptr [rcx - 1056]
110 vpaddq ymm6, ymm6, ymmword ptr [rcx - 1088]
111 vpaddq ymm5, ymm5, ymmword ptr [rcx - 1120]
112 vpaddq ymm4, ymm4, ymmword ptr [rcx - 1152]
113 vpaddq ymm3, ymm3, ymmword ptr [rcx - 1184]
114 vpaddq ymm2, ymm2, ymmword ptr [rcx - 1216]
115 vpaddq ymm1, ymm1, ymmword ptr [rcx - 1248]
116 vpaddq ymm0, ymm0, ymmword ptr [rcx - 1280]
117 vpaddq ymm0, ymm0, ymmword ptr [rcx - 1024]
118 vpaddq ymm1, ymm1, ymmword ptr [rcx - 992]
119 vpaddq ymm2, ymm2, ymmword ptr [rcx - 960]
120 vpaddq ymm3, ymm3, ymmword ptr [rcx - 928]
121 vpaddq ymm4, ymm4, ymmword ptr [rcx - 896]
122 vpaddq ymm5, ymm5, ymmword ptr [rcx - 864]
123 vpaddq ymm6, ymm6, ymmword ptr [rcx - 832]
124 vpaddq ymm7, ymm7, ymmword ptr [rcx - 800]
125 vpaddq ymm7, ymm7, ymmword ptr [rcx - 544]
126 vpaddq ymm6, ymm6, ymmword ptr [rcx - 576]
127 vpaddq ymm5, ymm5, ymmword ptr [rcx - 608]
128 vpaddq ymm4, ymm4, ymmword ptr [rcx - 640]
129 vpaddq ymm3, ymm3, ymmword ptr [rcx - 672]
130 vpaddq ymm2, ymm2, ymmword ptr [rcx - 704]
131 vpaddq ymm1, ymm1, ymmword ptr [rcx - 736]
132 vpaddq ymm0, ymm0, ymmword ptr [rcx - 768]
133 vpaddq ymm0, ymm0, ymmword ptr [rcx - 512]
134 vpaddq ymm1, ymm1, ymmword ptr [rcx - 480]
135 vpaddq ymm2, ymm2, ymmword ptr [rcx - 448]
136 vpaddq ymm3, ymm3, ymmword ptr [rcx - 416]
137 vpaddq ymm4, ymm4, ymmword ptr [rcx - 384]
138 vpaddq ymm5, ymm5, ymmword ptr [rcx - 352]
139 vpaddq ymm6, ymm6, ymmword ptr [rcx - 320]
140 vpaddq ymm7, ymm7, ymmword ptr [rcx - 288]
141 vpaddq ymm7, ymm7, ymmword ptr [rcx - 32]
142 vpaddq ymm6, ymm6, ymmword ptr [rcx - 64]
143 vpaddq ymm5, ymm5, ymmword ptr [rcx - 96]
144 vpaddq ymm4, ymm4, ymmword ptr [rcx - 128]
145 vpaddq ymm3, ymm3, ymmword ptr [rcx - 160]
146 vpaddq ymm2, ymm2, ymmword ptr [rcx - 192]
147 vpaddq ymm1, ymm1, ymmword ptr [rcx - 224]
148 vpaddq ymm0, ymm0, ymmword ptr [rcx - 256]
149 vpaddq ymm0, ymm0, ymmword ptr [rcx]
150 vpaddq ymm1, ymm1, ymmword ptr [rcx + 32]
151 vpaddq ymm2, ymm2, ymmword ptr [rcx + 64]
152 vpaddq ymm3, ymm3, ymmword ptr [rcx + 96]
153 vpaddq ymm4, ymm4, ymmword ptr [rcx + 128]
154 vpaddq ymm5, ymm5, ymmword ptr [rcx + 160]
155 vpaddq ymm6, ymm6, ymmword ptr [rcx + 192]
156 vpaddq ymm7, ymm7, ymmword ptr [rcx + 224]
157 add rcx, 2048
158 add rax, -256
159 jne .LBB0_13
160.LBB0_14:
161 vpaddq ymm1, ymm1, ymm5
162 vpaddq ymm3, ymm3, ymm7
163 vpaddq ymm0, ymm0, ymm4
164 vpaddq ymm2, ymm2, ymm6
165 vpaddq ymm0, ymm0, ymm2
166 vpaddq ymm1, ymm1, ymm3
167 vpaddq ymm0, ymm0, ymm1
168 vextracti128 xmm1, ymm0, 1
169 vpaddq ymm0, ymm0, ymm1
170 vpshufd xmm1, xmm0, 78 # xmm1 = xmm0[2,3,0,1]
171 vpaddq ymm0, ymm0, ymm1
172 vmovq rax, xmm0
173 cmp r9, rsi
174 jne .LBB0_4
175 jmp .LBB0_15
176.Lfunc_end0:
177 .size sum_uint64_avx2, .Lfunc_end0-sum_uint64_avx2
178
179
180 .ident "Apple LLVM version 9.0.0 (clang-900.0.39.2)"
181 .section ".note.GNU-stack","",@progbits