]> git.proxmox.com Git - ceph.git/blob - ceph/src/arrow/go/arrow/memory/memory_avx2_amd64.s
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / go / arrow / memory / memory_avx2_amd64.s
1 //+build !noasm !appengine
2 // AUTO-GENERATED BY C2GOASM -- DO NOT EDIT
3
4 TEXT ยท_memset_avx2(SB), $0-24
5
6 MOVQ buf+0(FP), DI
7 MOVQ len+8(FP), SI
8 MOVQ c+16(FP), DX
9
10 LONG $0x371c8d4c // lea r11, [rdi + rsi]
11 WORD $0x3949; BYTE $0xfb // cmp r11, rdi
12 JBE LBB0_13
13 LONG $0x80fe8148; WORD $0x0000; BYTE $0x00 // cmp rsi, 128
14 JB LBB0_12
15 WORD $0x8949; BYTE $0xf0 // mov r8, rsi
16 LONG $0x80e08349 // and r8, -128
17 WORD $0x8949; BYTE $0xf2 // mov r10, rsi
18 LONG $0x80e28349 // and r10, -128
19 JE LBB0_12
20 LONG $0xc26ef9c5 // vmovd xmm0, edx
21 LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0
22 LONG $0x804a8d4d // lea r9, [r10 - 128]
23 WORD $0x8944; BYTE $0xc8 // mov eax, r9d
24 WORD $0xe8c1; BYTE $0x07 // shr eax, 7
25 WORD $0xc0ff // inc eax
26 LONG $0x03e08348 // and rax, 3
27 JE LBB0_4
28 WORD $0xf748; BYTE $0xd8 // neg rax
29 WORD $0xc931 // xor ecx, ecx
30
31 LBB0_6:
32 LONG $0x047ffec5; BYTE $0x0f // vmovdqu yword [rdi + rcx], ymm0
33 LONG $0x447ffec5; WORD $0x200f // vmovdqu yword [rdi + rcx + 32], ymm0
34 LONG $0x447ffec5; WORD $0x400f // vmovdqu yword [rdi + rcx + 64], ymm0
35 LONG $0x447ffec5; WORD $0x600f // vmovdqu yword [rdi + rcx + 96], ymm0
36 LONG $0x80e98348 // sub rcx, -128
37 WORD $0xff48; BYTE $0xc0 // inc rax
38 JNE LBB0_6
39 JMP LBB0_7
40
41 LBB0_4:
42 WORD $0xc931 // xor ecx, ecx
43
44 LBB0_7:
45 LONG $0x80f98149; WORD $0x0001; BYTE $0x00 // cmp r9, 384
46 JB LBB0_10
47 WORD $0x894c; BYTE $0xd0 // mov rax, r10
48 WORD $0x2948; BYTE $0xc8 // sub rax, rcx
49 QUAD $0x000001e00f8c8d48 // lea rcx, [rdi + rcx + 480]
50
51 LBB0_9:
52 QUAD $0xfffffe20817ffec5 // vmovdqu yword [rcx - 480], ymm0
53 QUAD $0xfffffe40817ffec5 // vmovdqu yword [rcx - 448], ymm0
54 QUAD $0xfffffe60817ffec5 // vmovdqu yword [rcx - 416], ymm0
55 QUAD $0xfffffe80817ffec5 // vmovdqu yword [rcx - 384], ymm0
56 QUAD $0xfffffea0817ffec5 // vmovdqu yword [rcx - 352], ymm0
57 QUAD $0xfffffec0817ffec5 // vmovdqu yword [rcx - 320], ymm0
58 QUAD $0xfffffee0817ffec5 // vmovdqu yword [rcx - 288], ymm0
59 QUAD $0xffffff00817ffec5 // vmovdqu yword [rcx - 256], ymm0
60 QUAD $0xffffff20817ffec5 // vmovdqu yword [rcx - 224], ymm0
61 QUAD $0xffffff40817ffec5 // vmovdqu yword [rcx - 192], ymm0
62 QUAD $0xffffff60817ffec5 // vmovdqu yword [rcx - 160], ymm0
63 LONG $0x417ffec5; BYTE $0x80 // vmovdqu yword [rcx - 128], ymm0
64 LONG $0x417ffec5; BYTE $0xa0 // vmovdqu yword [rcx - 96], ymm0
65 LONG $0x417ffec5; BYTE $0xc0 // vmovdqu yword [rcx - 64], ymm0
66 LONG $0x417ffec5; BYTE $0xe0 // vmovdqu yword [rcx - 32], ymm0
67 LONG $0x017ffec5 // vmovdqu yword [rcx], ymm0
68 LONG $0x00c18148; WORD $0x0002; BYTE $0x00 // add rcx, 512
69 LONG $0xfe000548; WORD $0xffff // add rax, -512
70 JNE LBB0_9
71
72 LBB0_10:
73 WORD $0x3949; BYTE $0xf2 // cmp r10, rsi
74 JE LBB0_13
75 WORD $0x014c; BYTE $0xc7 // add rdi, r8
76
77 LBB0_12:
78 WORD $0x1788 // mov byte [rdi], dl
79 WORD $0xff48; BYTE $0xc7 // inc rdi
80 WORD $0x3949; BYTE $0xfb // cmp r11, rdi
81 JNE LBB0_12
82
83 LBB0_13:
84 VZEROUPPER
85 RET