...

Text file src/github.com/bytedance/sonic/internal/native/neon/skip_one_fast_arm64.s

Documentation: github.com/bytedance/sonic/internal/native/neon

     1// +build !noasm !appengine
     2// Code generated by asm2asm, DO NOT EDIT.
     3
     4#include "go_asm.h"
     5#include "funcdata.h"
     6#include "textflag.h"
     7
     8TEXT ·__skip_one_fast_entry__(SB), NOSPLIT, $176
     9	NO_LOCAL_POINTERS
    10	WORD $0x100000a0 // adr x0, .+20
    11	MOVD R0, ret(FP)
    12	RET
    13	  // .p2align 4, 0x00
    14lCPI0_0:
    15	WORD $0x08040201
    16	WORD $0x80402010
    17	WORD $0x08040201
    18	WORD $0x80402010
    19	// // .byte 1
    20// .byte 2
    21// .byte 4
    22// .byte 8
    23// .byte 16
    24// .byte 32
    25// .byte 64
    26// .byte 128
    27// .byte 1
    28// .byte 2
    29// .byte 4
    30// .byte 8
    31// .byte 16
    32// .byte 32
    33// .byte 64
    34// .byte 128
    35
    36lCPI0_1:
    37	WORD $0x09010800
    38	WORD $0x0b030a02
    39	WORD $0x0d050c04
    40	WORD $0x0f070e06
    41	// // .byte 0
    42// .byte 8
    43// .byte 1
    44// .byte 9
    45// .byte 2
    46// .byte 10
    47// .byte 3
    48// .byte 11
    49// .byte 4
    50// .byte 12
    51// .byte 5
    52// .byte 13
    53// .byte 6
    54// .byte 14
    55// .byte 7
    56// .byte 15
    57
    58_skip_one_fast:
    59	WORD $0xd10303ff  // sub	sp, sp, #192
    60	WORD $0xa905effc  // stp	x28, x27, [sp, #88]
    61	WORD $0xa906e7fa  // stp	x26, x25, [sp, #104]
    62	WORD $0xa907dff8  // stp	x24, x23, [sp, #120]
    63	WORD $0xa908d7f6  // stp	x22, x21, [sp, #136]
    64	WORD $0xa909cff4  // stp	x20, x19, [sp, #152]
    65	WORD $0xa90afbfd  // stp	fp, lr, [sp, #168]
    66	WORD $0xa93ffbfd  // stp	fp, lr, [sp, #-8]
    67	WORD $0xd10023fd  // sub	fp, sp, #8
    68	WORD $0xf940002b  // ldr	x11, [x1]
    69	WORD $0xa9402809  // ldp	x9, x10, [x0]
    70	WORD $0xeb0a017f  // cmp	x11, x10
    71	WORD $0x54000142  // b.hs	LBB0_4 $40(%rip)
    72	WORD $0x386b6928  // ldrb	w8, [x9, x11]
    73	WORD $0x7100351f  // cmp	w8, #13
    74	WORD $0x540000e0  // b.eq	LBB0_4 $28(%rip)
    75	WORD $0x7100811f  // cmp	w8, #32
    76	WORD $0x540000a0  // b.eq	LBB0_4 $20(%rip)
    77	WORD $0x51002d0c  // sub	w12, w8, #11
    78	WORD $0xaa0b03e8  // mov	x8, x11
    79	WORD $0x3100099f  // cmn	w12, #2
    80	WORD $0x54000683  // b.lo	LBB0_21 $208(%rip)
    81LBB0_4:
    82	WORD $0x91000568  // add	x8, x11, #1
    83	WORD $0xeb0a011f  // cmp	x8, x10
    84	WORD $0x54000122  // b.hs	LBB0_8 $36(%rip)
    85	WORD $0x3868692c  // ldrb	w12, [x9, x8]
    86	WORD $0x7100359f  // cmp	w12, #13
    87	WORD $0x540000c0  // b.eq	LBB0_8 $24(%rip)
    88	WORD $0x7100819f  // cmp	w12, #32
    89	WORD $0x54000080  // b.eq	LBB0_8 $16(%rip)
    90	WORD $0x51002d8c  // sub	w12, w12, #11
    91	WORD $0x3100099f  // cmn	w12, #2
    92	WORD $0x54000523  // b.lo	LBB0_21 $164(%rip)
    93LBB0_8:
    94	WORD $0x91000968  // add	x8, x11, #2
    95	WORD $0xeb0a011f  // cmp	x8, x10
    96	WORD $0x54000122  // b.hs	LBB0_12 $36(%rip)
    97	WORD $0x3868692c  // ldrb	w12, [x9, x8]
    98	WORD $0x7100359f  // cmp	w12, #13
    99	WORD $0x540000c0  // b.eq	LBB0_12 $24(%rip)
   100	WORD $0x7100819f  // cmp	w12, #32
   101	WORD $0x54000080  // b.eq	LBB0_12 $16(%rip)
   102	WORD $0x51002d8c  // sub	w12, w12, #11
   103	WORD $0x3100099f  // cmn	w12, #2
   104	WORD $0x540003c3  // b.lo	LBB0_21 $120(%rip)
   105LBB0_12:
   106	WORD $0x91000d68  // add	x8, x11, #3
   107	WORD $0xeb0a011f  // cmp	x8, x10
   108	WORD $0x54000122  // b.hs	LBB0_16 $36(%rip)
   109	WORD $0x3868692c  // ldrb	w12, [x9, x8]
   110	WORD $0x7100359f  // cmp	w12, #13
   111	WORD $0x540000c0  // b.eq	LBB0_16 $24(%rip)
   112	WORD $0x7100819f  // cmp	w12, #32
   113	WORD $0x54000080  // b.eq	LBB0_16 $16(%rip)
   114	WORD $0x51002d8c  // sub	w12, w12, #11
   115	WORD $0x3100099f  // cmn	w12, #2
   116	WORD $0x54000263  // b.lo	LBB0_21 $76(%rip)
   117LBB0_16:
   118	WORD $0x91001168  // add	x8, x11, #4
   119	WORD $0xeb0a011f  // cmp	x8, x10
   120	WORD $0x54005ae2  // b.hs	LBB0_115 $2908(%rip)
   121	WORD $0x5280002b  // mov	w11, #1
   122	WORD $0xd284c00c  // mov	x12, #9728
   123	WORD $0xf2c0002c  // movk	x12, #1, lsl #32
   124LBB0_18:
   125	WORD $0x3868692d  // ldrb	w13, [x9, x8]
   126	WORD $0x710081bf  // cmp	w13, #32
   127	WORD $0x9acd216d  // lsl	x13, x11, x13
   128	WORD $0x8a0c01ad  // and	x13, x13, x12
   129	WORD $0xfa4099a4  // ccmp	x13, #0, #4, ls
   130	WORD $0x540000a0  // b.eq	LBB0_20 $20(%rip)
   131	WORD $0x91000508  // add	x8, x8, #1
   132	WORD $0xeb08015f  // cmp	x10, x8
   133	WORD $0x54ffff01  // b.ne	LBB0_18 $-32(%rip)
   134	WORD $0x140002cb  // b	LBB0_116 $2860(%rip)
   135LBB0_20:
   136	WORD $0xeb0a011f  // cmp	x8, x10
   137	WORD $0x54005922  // b.hs	LBB0_116 $2852(%rip)
   138LBB0_21:
   139	WORD $0x91000510  // add	x16, x8, #1
   140	WORD $0xf9000030  // str	x16, [x1]
   141	WORD $0x3868692a  // ldrb	w10, [x9, x8]
   142	WORD $0x7101695f  // cmp	w10, #90
   143	WORD $0x540006ec  // b.gt	LBB0_39 $220(%rip)
   144	WORD $0x7100bd5f  // cmp	w10, #47
   145	WORD $0x54000b4d  // b.le	LBB0_44 $360(%rip)
   146	WORD $0x5100c14a  // sub	w10, w10, #48
   147	WORD $0x7100295f  // cmp	w10, #10
   148	WORD $0x540055a2  // b.hs	LBB0_110 $2740(%rip)
   149LBB0_24:
   150	WORD $0xf940040a  // ldr	x10, [x0, #8]
   151	WORD $0xcb10014a  // sub	x10, x10, x16
   152	WORD $0xf100415f  // cmp	x10, #16
   153	WORD $0x540002c3  // b.lo	LBB0_28 $88(%rip)
   154	WORD $0x4f01e580  // movi.16b	v0, #44
   155	WORD $0x4f06e7e1  // movi.16b	v1, #223
   156	WORD $0x4f02e7a2  // movi.16b	v2, #93
   157Lloh0:
   158	WORD $0x10fff3cb  // adr	x11, lCPI0_0 $-392(%rip)
   159Lloh1:
   160	WORD $0x3dc00163  // ldr	q3, [x11, lCPI0_0@PAGEOFF] $0(%rip)
   161Lloh2:
   162	WORD $0x10fff40b  // adr	x11, lCPI0_1 $-384(%rip)
   163Lloh3:
   164	WORD $0x3dc00164  // ldr	q4, [x11, lCPI0_1@PAGEOFF] $0(%rip)
   165LBB0_26:
   166	WORD $0x3cf06925  // ldr	q5, [x9, x16]
   167	WORD $0x6e208ca6  // cmeq.16b	v6, v5, v0
   168	WORD $0x4e211ca5  // and.16b	v5, v5, v1
   169	WORD $0x6e228ca5  // cmeq.16b	v5, v5, v2
   170	WORD $0x4ea61ca5  // orr.16b	v5, v5, v6
   171	WORD $0x4e231ca5  // and.16b	v5, v5, v3
   172	WORD $0x4e0400a5  // tbl.16b	v5, { v5 }, v4
   173	WORD $0x4e71b8a5  // addv.8h	h5, v5
   174	WORD $0x1e2600ab  // fmov	w11, s5
   175	WORD $0x350002eb  // cbnz	w11, LBB0_36 $92(%rip)
   176	WORD $0xd100414a  // sub	x10, x10, #16
   177	WORD $0x91004210  // add	x16, x16, #16
   178	WORD $0xf1003d5f  // cmp	x10, #15
   179	WORD $0x54fffe68  // b.hi	LBB0_26 $-52(%rip)
   180LBB0_28:
   181	WORD $0x8b10012b  // add	x11, x9, x16
   182	WORD $0xb40001ea  // cbz	x10, LBB0_35 $60(%rip)
   183	WORD $0x8b0a016c  // add	x12, x11, x10
   184	WORD $0xcb09016d  // sub	x13, x11, x9
   185LBB0_30:
   186	WORD $0x3940016e  // ldrb	w14, [x11]
   187	WORD $0x7100b1df  // cmp	w14, #44
   188	WORD $0x540052c0  // b.eq	LBB0_112 $2648(%rip)
   189	WORD $0x7101f5df  // cmp	w14, #125
   190	WORD $0x54005280  // b.eq	LBB0_112 $2640(%rip)
   191	WORD $0x710175df  // cmp	w14, #93
   192	WORD $0x54005240  // b.eq	LBB0_112 $2632(%rip)
   193	WORD $0x9100056b  // add	x11, x11, #1
   194	WORD $0x910005ad  // add	x13, x13, #1
   195	WORD $0xf100054a  // subs	x10, x10, #1
   196	WORD $0x54fffec1  // b.ne	LBB0_30 $-40(%rip)
   197	WORD $0xaa0c03eb  // mov	x11, x12
   198LBB0_35:
   199	WORD $0xcb090169  // sub	x9, x11, x9
   200	WORD $0x14000004  // b	LBB0_37 $16(%rip)
   201LBB0_36:
   202	WORD $0x5ac00169  // rbit	w9, w11
   203	WORD $0x5ac01129  // clz	w9, w9
   204	WORD $0x8b100129  // add	x9, x9, x16
   205LBB0_37:
   206	WORD $0xf9000029  // str	x9, [x1]
   207LBB0_38:
   208	WORD $0xaa0803e0  // mov	x0, x8
   209	WORD $0x1400028f  // b	LBB0_117 $2620(%rip)
   210LBB0_39:
   211	WORD $0x7101b55f  // cmp	w10, #109
   212	WORD $0x5400054d  // b.le	LBB0_47 $168(%rip)
   213	WORD $0x7101b95f  // cmp	w10, #110
   214	WORD $0x54002320  // b.eq	LBB0_74 $1124(%rip)
   215	WORD $0x7101d15f  // cmp	w10, #116
   216	WORD $0x540022e0  // b.eq	LBB0_74 $1116(%rip)
   217	WORD $0x7101ed5f  // cmp	w10, #123
   218	WORD $0x54004e81  // b.ne	LBB0_110 $2512(%rip)
   219	WORD $0xd2800007  // mov	x7, #0
   220	WORD $0xd280000f  // mov	x15, #0
   221	WORD $0xd280000a  // mov	x10, #0
   222	WORD $0xd280000b  // mov	x11, #0
   223	WORD $0xb201e3ec  // mov	x12, #-8608480567731124088
   224	WORD $0xf2e1110c  // movk	x12, #2184, lsl #48
   225	WORD $0xb202e3ed  // mov	x13, #4919131752989213764
   226	WORD $0xf2e0888d  // movk	x13, #1092, lsl #48
   227	WORD $0xb203e3ee  // mov	x14, #2459565876494606882
   228	WORD $0xf2e0444e  // movk	x14, #546, lsl #48
   229	WORD $0xf9400411  // ldr	x17, [x0, #8]
   230	WORD $0xcb100225  // sub	x5, x17, x16
   231	WORD $0x8b100130  // add	x16, x9, x16
   232	WORD $0x910043e9  // add	x9, sp, #16
   233	WORD $0x91008129  // add	x9, x9, #32
   234	WORD $0x4f01e440  // movi.16b	v0, #34
   235Lloh4:
   236	WORD $0x10ffeb91  // adr	x17, lCPI0_0 $-656(%rip)
   237Lloh5:
   238	WORD $0x3dc00221  // ldr	q1, [x17, lCPI0_0@PAGEOFF] $0(%rip)
   239Lloh6:
   240	WORD $0x10ffebd1  // adr	x17, lCPI0_1 $-648(%rip)
   241Lloh7:
   242	WORD $0x3dc00222  // ldr	q2, [x17, lCPI0_1@PAGEOFF] $0(%rip)
   243	WORD $0x4f02e783  // movi.16b	v3, #92
   244	WORD $0xb200e3f1  // mov	x17, #1229782938247303441
   245	WORD $0xb203e3e2  // mov	x2, #2459565876494606882
   246	WORD $0xb202e3e3  // mov	x3, #4919131752989213764
   247	WORD $0xb201e3e4  // mov	x4, #-8608480567731124088
   248	WORD $0x4f03e764  // movi.16b	v4, #123
   249	WORD $0x4f03e7a5  // movi.16b	v5, #125
   250	WORD $0x6f00e406  // movi.2d	v6, #0000000000000000
   251	WORD $0x14000018  // b	LBB0_51 $96(%rip)
   252LBB0_44:
   253	WORD $0x34004d0a  // cbz	w10, LBB0_116 $2464(%rip)
   254	WORD $0x7100895f  // cmp	w10, #34
   255	WORD $0x54001f40  // b.eq	LBB0_75 $1000(%rip)
   256	WORD $0x7100b55f  // cmp	w10, #45
   257	WORD $0x54fff4c0  // b.eq	LBB0_24 $-360(%rip)
   258	WORD $0x14000251  // b	LBB0_110 $2372(%rip)
   259LBB0_47:
   260	WORD $0x71016d5f  // cmp	w10, #91
   261	WORD $0x540027a0  // b.eq	LBB0_84 $1268(%rip)
   262	WORD $0x7101995f  // cmp	w10, #102
   263	WORD $0x540049a1  // b.ne	LBB0_110 $2356(%rip)
   264	WORD $0x91001509  // add	x9, x8, #5
   265	WORD $0xf940040a  // ldr	x10, [x0, #8]
   266	WORD $0xeb0a013f  // cmp	x9, x10
   267	WORD $0x54fff969  // b.ls	LBB0_37 $-212(%rip)
   268	WORD $0x1400025a  // b	LBB0_116 $2408(%rip)
   269LBB0_50:
   270	WORD $0x937ffce7  // asr	x7, x7, #63
   271	WORD $0x9e670267  // fmov	d7, x19
   272	WORD $0x0e2058e7  // cnt.8b	v7, v7
   273	WORD $0x2e3038e7  // uaddlv.8b	h7, v7
   274	WORD $0x1e2600e5  // fmov	w5, s7
   275	WORD $0x8b0a00aa  // add	x10, x5, x10
   276	WORD $0x91010210  // add	x16, x16, #64
   277	WORD $0xaa0603e5  // mov	x5, x6
   278LBB0_51:
   279	WORD $0xf10100a6  // subs	x6, x5, #64
   280	WORD $0x540015cb  // b.lt	LBB0_58 $696(%rip)
   281LBB0_52:
   282	WORD $0xad404612  // ldp	q18, q17, [x16]
   283	WORD $0xad411e10  // ldp	q16, q7, [x16, #32]
   284	WORD $0x6e238e53  // cmeq.16b	v19, v18, v3
   285	WORD $0x4e211e73  // and.16b	v19, v19, v1
   286	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   287	WORD $0x4e71ba73  // addv.8h	h19, v19
   288	WORD $0x1e260273  // fmov	w19, s19
   289	WORD $0x6e238e33  // cmeq.16b	v19, v17, v3
   290	WORD $0x4e211e73  // and.16b	v19, v19, v1
   291	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   292	WORD $0x4e71ba73  // addv.8h	h19, v19
   293	WORD $0x1e260274  // fmov	w20, s19
   294	WORD $0x6e238e13  // cmeq.16b	v19, v16, v3
   295	WORD $0x4e211e73  // and.16b	v19, v19, v1
   296	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   297	WORD $0x4e71ba73  // addv.8h	h19, v19
   298	WORD $0x1e260275  // fmov	w21, s19
   299	WORD $0x6e238cf3  // cmeq.16b	v19, v7, v3
   300	WORD $0x4e211e73  // and.16b	v19, v19, v1
   301	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   302	WORD $0x4e71ba73  // addv.8h	h19, v19
   303	WORD $0x1e260276  // fmov	w22, s19
   304	WORD $0xd3607eb5  // lsl	x21, x21, #32
   305	WORD $0xaa16c2b5  // orr	x21, x21, x22, lsl #48
   306	WORD $0x53103e94  // lsl	w20, w20, #16
   307	WORD $0xaa1402b4  // orr	x20, x21, x20
   308	WORD $0xaa130293  // orr	x19, x20, x19
   309	WORD $0xaa0f0274  // orr	x20, x19, x15
   310	WORD $0xb5000094  // cbnz	x20, LBB0_54 $16(%rip)
   311	WORD $0xd280000f  // mov	x15, #0
   312	WORD $0xd2800013  // mov	x19, #0
   313	WORD $0x1400000a  // b	LBB0_55 $40(%rip)
   314LBB0_54:
   315	WORD $0x8a2f0274  // bic	x20, x19, x15
   316	WORD $0xaa1405f5  // orr	x21, x15, x20, lsl #1
   317	WORD $0x8a35026f  // bic	x15, x19, x21
   318	WORD $0x9201f1ef  // and	x15, x15, #0xaaaaaaaaaaaaaaaa
   319	WORD $0xab1401f3  // adds	x19, x15, x20
   320	WORD $0x1a9f37ef  // cset	w15, hs
   321	WORD $0xd37ffa73  // lsl	x19, x19, #1
   322	WORD $0xd200f273  // eor	x19, x19, #0x5555555555555555
   323	WORD $0x8a150273  // and	x19, x19, x21
   324LBB0_55:
   325	WORD $0x6e208e53  // cmeq.16b	v19, v18, v0
   326	WORD $0x4e211e73  // and.16b	v19, v19, v1
   327	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   328	WORD $0x4e71ba73  // addv.8h	h19, v19
   329	WORD $0x1e260274  // fmov	w20, s19
   330	WORD $0x6e208e33  // cmeq.16b	v19, v17, v0
   331	WORD $0x4e211e73  // and.16b	v19, v19, v1
   332	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   333	WORD $0x4e71ba73  // addv.8h	h19, v19
   334	WORD $0x1e260275  // fmov	w21, s19
   335	WORD $0x6e208e13  // cmeq.16b	v19, v16, v0
   336	WORD $0x4e211e73  // and.16b	v19, v19, v1
   337	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   338	WORD $0x4e71ba73  // addv.8h	h19, v19
   339	WORD $0x1e260276  // fmov	w22, s19
   340	WORD $0x6e208cf3  // cmeq.16b	v19, v7, v0
   341	WORD $0x4e211e73  // and.16b	v19, v19, v1
   342	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   343	WORD $0x4e71ba73  // addv.8h	h19, v19
   344	WORD $0x1e260277  // fmov	w23, s19
   345	WORD $0xd3607ed6  // lsl	x22, x22, #32
   346	WORD $0xaa17c2d6  // orr	x22, x22, x23, lsl #48
   347	WORD $0x53103eb5  // lsl	w21, w21, #16
   348	WORD $0xaa1502d5  // orr	x21, x22, x21
   349	WORD $0xaa1402b4  // orr	x20, x21, x20
   350	WORD $0x8a330293  // bic	x19, x20, x19
   351	WORD $0x9200e274  // and	x20, x19, #0x1111111111111111
   352	WORD $0x9203e275  // and	x21, x19, #0x2222222222222222
   353	WORD $0x9202e276  // and	x22, x19, #0x4444444444444444
   354	WORD $0x9201e273  // and	x19, x19, #0x8888888888888888
   355	WORD $0x9b117e97  // mul	x23, x20, x17
   356	WORD $0x9b0c7eb8  // mul	x24, x21, x12
   357	WORD $0xca1802f7  // eor	x23, x23, x24
   358	WORD $0x9b0d7ed8  // mul	x24, x22, x13
   359	WORD $0x9b0e7e79  // mul	x25, x19, x14
   360	WORD $0xca190318  // eor	x24, x24, x25
   361	WORD $0xca1802f7  // eor	x23, x23, x24
   362	WORD $0x9b027e98  // mul	x24, x20, x2
   363	WORD $0x9b117eb9  // mul	x25, x21, x17
   364	WORD $0xca190318  // eor	x24, x24, x25
   365	WORD $0x9b0c7ed9  // mul	x25, x22, x12
   366	WORD $0x9b0d7e7a  // mul	x26, x19, x13
   367	WORD $0xca1a0339  // eor	x25, x25, x26
   368	WORD $0xca190318  // eor	x24, x24, x25
   369	WORD $0x9b037e99  // mul	x25, x20, x3
   370	WORD $0x9b027eba  // mul	x26, x21, x2
   371	WORD $0xca1a0339  // eor	x25, x25, x26
   372	WORD $0x9b117eda  // mul	x26, x22, x17
   373	WORD $0x9b0c7e7b  // mul	x27, x19, x12
   374	WORD $0xca1b035a  // eor	x26, x26, x27
   375	WORD $0xca1a0339  // eor	x25, x25, x26
   376	WORD $0x9b047e94  // mul	x20, x20, x4
   377	WORD $0x9b037eb5  // mul	x21, x21, x3
   378	WORD $0xca150294  // eor	x20, x20, x21
   379	WORD $0x9b027ed5  // mul	x21, x22, x2
   380	WORD $0x9b117e73  // mul	x19, x19, x17
   381	WORD $0xca1302b3  // eor	x19, x21, x19
   382	WORD $0xca130293  // eor	x19, x20, x19
   383	WORD $0x9200e2f4  // and	x20, x23, #0x1111111111111111
   384	WORD $0x9203e315  // and	x21, x24, #0x2222222222222222
   385	WORD $0x9202e336  // and	x22, x25, #0x4444444444444444
   386	WORD $0x9201e273  // and	x19, x19, #0x8888888888888888
   387	WORD $0xaa150294  // orr	x20, x20, x21
   388	WORD $0xaa1302d3  // orr	x19, x22, x19
   389	WORD $0xaa130293  // orr	x19, x20, x19
   390	WORD $0xca070267  // eor	x7, x19, x7
   391	WORD $0x6e248e53  // cmeq.16b	v19, v18, v4
   392	WORD $0x4e211e73  // and.16b	v19, v19, v1
   393	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   394	WORD $0x4e71ba73  // addv.8h	h19, v19
   395	WORD $0x1e260273  // fmov	w19, s19
   396	WORD $0x6e248e33  // cmeq.16b	v19, v17, v4
   397	WORD $0x4e211e73  // and.16b	v19, v19, v1
   398	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   399	WORD $0x4e71ba73  // addv.8h	h19, v19
   400	WORD $0x1e260274  // fmov	w20, s19
   401	WORD $0x6e248e13  // cmeq.16b	v19, v16, v4
   402	WORD $0x4e211e73  // and.16b	v19, v19, v1
   403	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   404	WORD $0x4e71ba73  // addv.8h	h19, v19
   405	WORD $0x1e260275  // fmov	w21, s19
   406	WORD $0x6e248cf3  // cmeq.16b	v19, v7, v4
   407	WORD $0x4e211e73  // and.16b	v19, v19, v1
   408	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   409	WORD $0x4e71ba73  // addv.8h	h19, v19
   410	WORD $0x1e260276  // fmov	w22, s19
   411	WORD $0xd3607eb5  // lsl	x21, x21, #32
   412	WORD $0xaa16c2b5  // orr	x21, x21, x22, lsl #48
   413	WORD $0x53103e94  // lsl	w20, w20, #16
   414	WORD $0xaa1402b4  // orr	x20, x21, x20
   415	WORD $0xaa130293  // orr	x19, x20, x19
   416	WORD $0x8a270273  // bic	x19, x19, x7
   417	WORD $0x6e258e52  // cmeq.16b	v18, v18, v5
   418	WORD $0x4e211e52  // and.16b	v18, v18, v1
   419	WORD $0x4e020252  // tbl.16b	v18, { v18 }, v2
   420	WORD $0x4e71ba52  // addv.8h	h18, v18
   421	WORD $0x1e260254  // fmov	w20, s18
   422	WORD $0x6e258e31  // cmeq.16b	v17, v17, v5
   423	WORD $0x4e211e31  // and.16b	v17, v17, v1
   424	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   425	WORD $0x4e71ba31  // addv.8h	h17, v17
   426	WORD $0x1e260235  // fmov	w21, s17
   427	WORD $0x6e258e10  // cmeq.16b	v16, v16, v5
   428	WORD $0x4e211e10  // and.16b	v16, v16, v1
   429	WORD $0x4e020210  // tbl.16b	v16, { v16 }, v2
   430	WORD $0x4e71ba10  // addv.8h	h16, v16
   431	WORD $0x1e260216  // fmov	w22, s16
   432	WORD $0x6e258ce7  // cmeq.16b	v7, v7, v5
   433	WORD $0x4e211ce7  // and.16b	v7, v7, v1
   434	WORD $0x4e0200e7  // tbl.16b	v7, { v7 }, v2
   435	WORD $0x4e71b8e7  // addv.8h	h7, v7
   436	WORD $0x1e2600f7  // fmov	w23, s7
   437	WORD $0xd3607ed6  // lsl	x22, x22, #32
   438	WORD $0xaa17c2d6  // orr	x22, x22, x23, lsl #48
   439	WORD $0x53103eb5  // lsl	w21, w21, #16
   440	WORD $0xaa1502d5  // orr	x21, x22, x21
   441	WORD $0xaa1402b4  // orr	x20, x21, x20
   442	WORD $0xea270294  // bics	x20, x20, x7
   443	WORD $0x54ffeae0  // b.eq	LBB0_50 $-676(%rip)
   444LBB0_56:
   445	WORD $0xd1000695  // sub	x21, x20, #1
   446	WORD $0x8a1302b6  // and	x22, x21, x19
   447	WORD $0x9e6702c7  // fmov	d7, x22
   448	WORD $0x0e2058e7  // cnt.8b	v7, v7
   449	WORD $0x2e3038e7  // uaddlv.8b	h7, v7
   450	WORD $0x1e2600f6  // fmov	w22, s7
   451	WORD $0x8b0a02d6  // add	x22, x22, x10
   452	WORD $0xeb0b02df  // cmp	x22, x11
   453	WORD $0x54003109  // b.ls	LBB0_109 $1568(%rip)
   454	WORD $0x9100056b  // add	x11, x11, #1
   455	WORD $0xea1402b4  // ands	x20, x21, x20
   456	WORD $0x54fffea1  // b.ne	LBB0_56 $-44(%rip)
   457	WORD $0x17ffff4a  // b	LBB0_50 $-728(%rip)
   458LBB0_58:
   459	WORD $0xf10000bf  // cmp	x5, #0
   460	WORD $0x540033ed  // b.le	LBB0_114 $1660(%rip)
   461	WORD $0xad019be6  // stp	q6, q6, [sp, #48]
   462	WORD $0xad009be6  // stp	q6, q6, [sp, #16]
   463	WORD $0x92402e13  // and	x19, x16, #0xfff
   464	WORD $0xf13f067f  // cmp	x19, #4033
   465	WORD $0x54ffe9a3  // b.lo	LBB0_52 $-716(%rip)
   466	WORD $0xf10080b4  // subs	x20, x5, #32
   467	WORD $0x540000a3  // b.lo	LBB0_62 $20(%rip)
   468	WORD $0xacc14207  // ldp	q7, q16, [x16], #32
   469	WORD $0xad00c3e7  // stp	q7, q16, [sp, #16]
   470	WORD $0xaa0903f3  // mov	x19, x9
   471	WORD $0x14000003  // b	LBB0_63 $12(%rip)
   472LBB0_62:
   473	WORD $0x910043f3  // add	x19, sp, #16
   474	WORD $0xaa0503f4  // mov	x20, x5
   475LBB0_63:
   476	WORD $0xf1004295  // subs	x21, x20, #16
   477	WORD $0x54000243  // b.lo	LBB0_69 $72(%rip)
   478	WORD $0x3cc10607  // ldr	q7, [x16], #16
   479	WORD $0x3c810667  // str	q7, [x19], #16
   480	WORD $0xaa1503f4  // mov	x20, x21
   481	WORD $0xf10022b5  // subs	x21, x21, #8
   482	WORD $0x540001e2  // b.hs	LBB0_70 $60(%rip)
   483LBB0_65:
   484	WORD $0xf1001295  // subs	x21, x20, #4
   485	WORD $0x54000243  // b.lo	LBB0_71 $72(%rip)
   486LBB0_66:
   487	WORD $0xb8404614  // ldr	w20, [x16], #4
   488	WORD $0xb8004674  // str	w20, [x19], #4
   489	WORD $0xaa1503f4  // mov	x20, x21
   490	WORD $0xf1000ab5  // subs	x21, x21, #2
   491	WORD $0x540001e2  // b.hs	LBB0_72 $60(%rip)
   492LBB0_67:
   493	WORD $0xb4000254  // cbz	x20, LBB0_73 $72(%rip)
   494LBB0_68:
   495	WORD $0x39400210  // ldrb	w16, [x16]
   496	WORD $0x39000270  // strb	w16, [x19]
   497	WORD $0x910043f0  // add	x16, sp, #16
   498	WORD $0x17ffff32  // b	LBB0_52 $-824(%rip)
   499LBB0_69:
   500	WORD $0xf1002295  // subs	x21, x20, #8
   501	WORD $0x54fffe63  // b.lo	LBB0_65 $-52(%rip)
   502LBB0_70:
   503	WORD $0xf8408614  // ldr	x20, [x16], #8
   504	WORD $0xf8008674  // str	x20, [x19], #8
   505	WORD $0xaa1503f4  // mov	x20, x21
   506	WORD $0xf10012b5  // subs	x21, x21, #4
   507	WORD $0x54fffe02  // b.hs	LBB0_66 $-64(%rip)
   508LBB0_71:
   509	WORD $0xf1000a95  // subs	x21, x20, #2
   510	WORD $0x54fffe63  // b.lo	LBB0_67 $-52(%rip)
   511LBB0_72:
   512	WORD $0x78402614  // ldrh	w20, [x16], #2
   513	WORD $0x78002674  // strh	w20, [x19], #2
   514	WORD $0xaa1503f4  // mov	x20, x21
   515	WORD $0xb5fffe15  // cbnz	x21, LBB0_68 $-64(%rip)
   516LBB0_73:
   517	WORD $0x910043f0  // add	x16, sp, #16
   518	WORD $0x17ffff23  // b	LBB0_52 $-884(%rip)
   519LBB0_74:
   520	WORD $0x91001109  // add	x9, x8, #4
   521	WORD $0xf940040a  // ldr	x10, [x0, #8]
   522	WORD $0xeb0a013f  // cmp	x9, x10
   523	WORD $0x54ffdbc9  // b.ls	LBB0_37 $-1160(%rip)
   524	WORD $0x1400016d  // b	LBB0_116 $1460(%rip)
   525LBB0_75:
   526	WORD $0xf940040b  // ldr	x11, [x0, #8]
   527	WORD $0xcb10016a  // sub	x10, x11, x16
   528	WORD $0xf100815f  // cmp	x10, #32
   529	WORD $0x54002c4b  // b.lt	LBB0_113 $1416(%rip)
   530	WORD $0xd280000a  // mov	x10, #0
   531	WORD $0xd280000d  // mov	x13, #0
   532	WORD $0x8b08012c  // add	x12, x9, x8
   533	WORD $0x4f01e440  // movi.16b	v0, #34
   534Lloh8:
   535	WORD $0x10ffc96e  // adr	x14, lCPI0_0 $-1748(%rip)
   536Lloh9:
   537	WORD $0x3dc001c1  // ldr	q1, [x14, lCPI0_0@PAGEOFF] $0(%rip)
   538	WORD $0xcb08016b  // sub	x11, x11, x8
   539Lloh10:
   540	WORD $0x10ffc98e  // adr	x14, lCPI0_1 $-1744(%rip)
   541Lloh11:
   542	WORD $0x3dc001c2  // ldr	q2, [x14, lCPI0_1@PAGEOFF] $0(%rip)
   543	WORD $0x528003ee  // mov	w14, #31
   544	WORD $0x4f02e783  // movi.16b	v3, #92
   545LBB0_77:
   546	WORD $0x8b0a018f  // add	x15, x12, x10
   547	WORD $0x3cc011e4  // ldur	q4, [x15, #1]
   548	WORD $0x3cc111e5  // ldur	q5, [x15, #17]
   549	WORD $0x6e208c86  // cmeq.16b	v6, v4, v0
   550	WORD $0x4e211cc6  // and.16b	v6, v6, v1
   551	WORD $0x4e0200c6  // tbl.16b	v6, { v6 }, v2
   552	WORD $0x4e71b8c6  // addv.8h	h6, v6
   553	WORD $0x1e2600cf  // fmov	w15, s6
   554	WORD $0x6e208ca6  // cmeq.16b	v6, v5, v0
   555	WORD $0x4e211cc6  // and.16b	v6, v6, v1
   556	WORD $0x4e0200c6  // tbl.16b	v6, { v6 }, v2
   557	WORD $0x4e71b8c6  // addv.8h	h6, v6
   558	WORD $0x1e2600d0  // fmov	w16, s6
   559	WORD $0x33103e0f  // bfi	w15, w16, #16, #16
   560	WORD $0x6e238c84  // cmeq.16b	v4, v4, v3
   561	WORD $0x4e211c84  // and.16b	v4, v4, v1
   562	WORD $0x4e020084  // tbl.16b	v4, { v4 }, v2
   563	WORD $0x4e71b884  // addv.8h	h4, v4
   564	WORD $0x1e260090  // fmov	w16, s4
   565	WORD $0x6e238ca4  // cmeq.16b	v4, v5, v3
   566	WORD $0x4e211c84  // and.16b	v4, v4, v1
   567	WORD $0x4e020084  // tbl.16b	v4, { v4 }, v2
   568	WORD $0x4e71b884  // addv.8h	h4, v4
   569	WORD $0x1e260091  // fmov	w17, s4
   570	WORD $0x33103e30  // bfi	w16, w17, #16, #16
   571	WORD $0x7100021f  // cmp	w16, #0
   572	WORD $0xfa4009a0  // ccmp	x13, #0, #0, eq
   573	WORD $0x540001a0  // b.eq	LBB0_79 $52(%rip)
   574	WORD $0x0a2d0211  // bic	w17, w16, w13
   575	WORD $0x2a1105a0  // orr	w0, w13, w17, lsl #1
   576	WORD $0x0a20020d  // bic	w13, w16, w0
   577	WORD $0x1201f1ad  // and	w13, w13, #0xaaaaaaaa
   578	WORD $0x2b1101b0  // adds	w16, w13, w17
   579	WORD $0x1a9f37ed  // cset	w13, hs
   580	WORD $0x531f7a10  // lsl	w16, w16, #1
   581	WORD $0x5200f210  // eor	w16, w16, #0x55555555
   582	WORD $0x0a000210  // and	w16, w16, w0
   583	WORD $0x2a3003f0  // mvn	w16, w16
   584	WORD $0x8a0f020f  // and	x15, x16, x15
   585	WORD $0x14000002  // b	LBB0_80 $8(%rip)
   586LBB0_79:
   587	WORD $0xd280000d  // mov	x13, #0
   588LBB0_80:
   589	WORD $0xb50024af  // cbnz	x15, LBB0_111 $1172(%rip)
   590	WORD $0x9100814a  // add	x10, x10, #32
   591	WORD $0xd10081ce  // sub	x14, x14, #32
   592	WORD $0x8b0e016f  // add	x15, x11, x14
   593	WORD $0xf100fdff  // cmp	x15, #63
   594	WORD $0x54fffa4c  // b.gt	LBB0_77 $-184(%rip)
   595	WORD $0xb50026ed  // cbnz	x13, LBB0_118 $1244(%rip)
   596	WORD $0x8b08012c  // add	x12, x9, x8
   597	WORD $0x8b0a018c  // add	x12, x12, x10
   598	WORD $0x9100058c  // add	x12, x12, #1
   599	WORD $0xaa2a03ea  // mvn	x10, x10
   600	WORD $0x8b0b014a  // add	x10, x10, x11
   601	WORD $0x92800000  // mov	x0, #-1
   602	WORD $0xf100055f  // cmp	x10, #1
   603	WORD $0x5400280a  // b.ge	LBB0_121 $1280(%rip)
   604	WORD $0x14000126  // b	LBB0_117 $1176(%rip)
   605LBB0_84:
   606	WORD $0xd2800007  // mov	x7, #0
   607	WORD $0xd280000f  // mov	x15, #0
   608	WORD $0xd280000a  // mov	x10, #0
   609	WORD $0xd280000b  // mov	x11, #0
   610	WORD $0xb201e3ec  // mov	x12, #-8608480567731124088
   611	WORD $0xf2e1110c  // movk	x12, #2184, lsl #48
   612	WORD $0xb202e3ed  // mov	x13, #4919131752989213764
   613	WORD $0xf2e0888d  // movk	x13, #1092, lsl #48
   614	WORD $0xb203e3ee  // mov	x14, #2459565876494606882
   615	WORD $0xf2e0444e  // movk	x14, #546, lsl #48
   616	WORD $0xf9400411  // ldr	x17, [x0, #8]
   617	WORD $0xcb100225  // sub	x5, x17, x16
   618	WORD $0x8b100130  // add	x16, x9, x16
   619	WORD $0x910043e9  // add	x9, sp, #16
   620	WORD $0x91008129  // add	x9, x9, #32
   621	WORD $0x4f01e440  // movi.16b	v0, #34
   622Lloh12:
   623	WORD $0x10ffbf71  // adr	x17, lCPI0_0 $-2068(%rip)
   624Lloh13:
   625	WORD $0x3dc00221  // ldr	q1, [x17, lCPI0_0@PAGEOFF] $0(%rip)
   626Lloh14:
   627	WORD $0x10ffbfb1  // adr	x17, lCPI0_1 $-2060(%rip)
   628Lloh15:
   629	WORD $0x3dc00222  // ldr	q2, [x17, lCPI0_1@PAGEOFF] $0(%rip)
   630	WORD $0x4f02e783  // movi.16b	v3, #92
   631	WORD $0xb200e3f1  // mov	x17, #1229782938247303441
   632	WORD $0xb203e3e2  // mov	x2, #2459565876494606882
   633	WORD $0xb202e3e3  // mov	x3, #4919131752989213764
   634	WORD $0xb201e3e4  // mov	x4, #-8608480567731124088
   635	WORD $0x4f02e764  // movi.16b	v4, #91
   636	WORD $0x4f02e7a5  // movi.16b	v5, #93
   637	WORD $0x6f00e406  // movi.2d	v6, #0000000000000000
   638	WORD $0x14000009  // b	LBB0_86 $36(%rip)
   639LBB0_85:
   640	WORD $0x937ffce7  // asr	x7, x7, #63
   641	WORD $0x9e670267  // fmov	d7, x19
   642	WORD $0x0e2058e7  // cnt.8b	v7, v7
   643	WORD $0x2e3038e7  // uaddlv.8b	h7, v7
   644	WORD $0x1e2600e5  // fmov	w5, s7
   645	WORD $0x8b0a00aa  // add	x10, x5, x10
   646	WORD $0x91010210  // add	x16, x16, #64
   647	WORD $0xaa0603e5  // mov	x5, x6
   648LBB0_86:
   649	WORD $0xf10100a6  // subs	x6, x5, #64
   650	WORD $0x540015cb  // b.lt	LBB0_93 $696(%rip)
   651LBB0_87:
   652	WORD $0xad404612  // ldp	q18, q17, [x16]
   653	WORD $0xad411e10  // ldp	q16, q7, [x16, #32]
   654	WORD $0x6e238e53  // cmeq.16b	v19, v18, v3
   655	WORD $0x4e211e73  // and.16b	v19, v19, v1
   656	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   657	WORD $0x4e71ba73  // addv.8h	h19, v19
   658	WORD $0x1e260273  // fmov	w19, s19
   659	WORD $0x6e238e33  // cmeq.16b	v19, v17, v3
   660	WORD $0x4e211e73  // and.16b	v19, v19, v1
   661	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   662	WORD $0x4e71ba73  // addv.8h	h19, v19
   663	WORD $0x1e260274  // fmov	w20, s19
   664	WORD $0x6e238e13  // cmeq.16b	v19, v16, v3
   665	WORD $0x4e211e73  // and.16b	v19, v19, v1
   666	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   667	WORD $0x4e71ba73  // addv.8h	h19, v19
   668	WORD $0x1e260275  // fmov	w21, s19
   669	WORD $0x6e238cf3  // cmeq.16b	v19, v7, v3
   670	WORD $0x4e211e73  // and.16b	v19, v19, v1
   671	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   672	WORD $0x4e71ba73  // addv.8h	h19, v19
   673	WORD $0x1e260276  // fmov	w22, s19
   674	WORD $0xd3607eb5  // lsl	x21, x21, #32
   675	WORD $0xaa16c2b5  // orr	x21, x21, x22, lsl #48
   676	WORD $0x53103e94  // lsl	w20, w20, #16
   677	WORD $0xaa1402b4  // orr	x20, x21, x20
   678	WORD $0xaa130293  // orr	x19, x20, x19
   679	WORD $0xaa0f0274  // orr	x20, x19, x15
   680	WORD $0xb5000094  // cbnz	x20, LBB0_89 $16(%rip)
   681	WORD $0xd280000f  // mov	x15, #0
   682	WORD $0xd2800013  // mov	x19, #0
   683	WORD $0x1400000a  // b	LBB0_90 $40(%rip)
   684LBB0_89:
   685	WORD $0x8a2f0274  // bic	x20, x19, x15
   686	WORD $0xaa1405f5  // orr	x21, x15, x20, lsl #1
   687	WORD $0x8a35026f  // bic	x15, x19, x21
   688	WORD $0x9201f1ef  // and	x15, x15, #0xaaaaaaaaaaaaaaaa
   689	WORD $0xab1401f3  // adds	x19, x15, x20
   690	WORD $0x1a9f37ef  // cset	w15, hs
   691	WORD $0xd37ffa73  // lsl	x19, x19, #1
   692	WORD $0xd200f273  // eor	x19, x19, #0x5555555555555555
   693	WORD $0x8a150273  // and	x19, x19, x21
   694LBB0_90:
   695	WORD $0x6e208e53  // cmeq.16b	v19, v18, v0
   696	WORD $0x4e211e73  // and.16b	v19, v19, v1
   697	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   698	WORD $0x4e71ba73  // addv.8h	h19, v19
   699	WORD $0x1e260274  // fmov	w20, s19
   700	WORD $0x6e208e33  // cmeq.16b	v19, v17, v0
   701	WORD $0x4e211e73  // and.16b	v19, v19, v1
   702	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   703	WORD $0x4e71ba73  // addv.8h	h19, v19
   704	WORD $0x1e260275  // fmov	w21, s19
   705	WORD $0x6e208e13  // cmeq.16b	v19, v16, v0
   706	WORD $0x4e211e73  // and.16b	v19, v19, v1
   707	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   708	WORD $0x4e71ba73  // addv.8h	h19, v19
   709	WORD $0x1e260276  // fmov	w22, s19
   710	WORD $0x6e208cf3  // cmeq.16b	v19, v7, v0
   711	WORD $0x4e211e73  // and.16b	v19, v19, v1
   712	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   713	WORD $0x4e71ba73  // addv.8h	h19, v19
   714	WORD $0x1e260277  // fmov	w23, s19
   715	WORD $0xd3607ed6  // lsl	x22, x22, #32
   716	WORD $0xaa17c2d6  // orr	x22, x22, x23, lsl #48
   717	WORD $0x53103eb5  // lsl	w21, w21, #16
   718	WORD $0xaa1502d5  // orr	x21, x22, x21
   719	WORD $0xaa1402b4  // orr	x20, x21, x20
   720	WORD $0x8a330293  // bic	x19, x20, x19
   721	WORD $0x9200e274  // and	x20, x19, #0x1111111111111111
   722	WORD $0x9203e275  // and	x21, x19, #0x2222222222222222
   723	WORD $0x9202e276  // and	x22, x19, #0x4444444444444444
   724	WORD $0x9201e273  // and	x19, x19, #0x8888888888888888
   725	WORD $0x9b117e97  // mul	x23, x20, x17
   726	WORD $0x9b0c7eb8  // mul	x24, x21, x12
   727	WORD $0xca1802f7  // eor	x23, x23, x24
   728	WORD $0x9b0d7ed8  // mul	x24, x22, x13
   729	WORD $0x9b0e7e79  // mul	x25, x19, x14
   730	WORD $0xca190318  // eor	x24, x24, x25
   731	WORD $0xca1802f7  // eor	x23, x23, x24
   732	WORD $0x9b027e98  // mul	x24, x20, x2
   733	WORD $0x9b117eb9  // mul	x25, x21, x17
   734	WORD $0xca190318  // eor	x24, x24, x25
   735	WORD $0x9b0c7ed9  // mul	x25, x22, x12
   736	WORD $0x9b0d7e7a  // mul	x26, x19, x13
   737	WORD $0xca1a0339  // eor	x25, x25, x26
   738	WORD $0xca190318  // eor	x24, x24, x25
   739	WORD $0x9b037e99  // mul	x25, x20, x3
   740	WORD $0x9b027eba  // mul	x26, x21, x2
   741	WORD $0xca1a0339  // eor	x25, x25, x26
   742	WORD $0x9b117eda  // mul	x26, x22, x17
   743	WORD $0x9b0c7e7b  // mul	x27, x19, x12
   744	WORD $0xca1b035a  // eor	x26, x26, x27
   745	WORD $0xca1a0339  // eor	x25, x25, x26
   746	WORD $0x9b047e94  // mul	x20, x20, x4
   747	WORD $0x9b037eb5  // mul	x21, x21, x3
   748	WORD $0xca150294  // eor	x20, x20, x21
   749	WORD $0x9b027ed5  // mul	x21, x22, x2
   750	WORD $0x9b117e73  // mul	x19, x19, x17
   751	WORD $0xca1302b3  // eor	x19, x21, x19
   752	WORD $0xca130293  // eor	x19, x20, x19
   753	WORD $0x9200e2f4  // and	x20, x23, #0x1111111111111111
   754	WORD $0x9203e315  // and	x21, x24, #0x2222222222222222
   755	WORD $0x9202e336  // and	x22, x25, #0x4444444444444444
   756	WORD $0x9201e273  // and	x19, x19, #0x8888888888888888
   757	WORD $0xaa150294  // orr	x20, x20, x21
   758	WORD $0xaa1302d3  // orr	x19, x22, x19
   759	WORD $0xaa130293  // orr	x19, x20, x19
   760	WORD $0xca070267  // eor	x7, x19, x7
   761	WORD $0x6e248e53  // cmeq.16b	v19, v18, v4
   762	WORD $0x4e211e73  // and.16b	v19, v19, v1
   763	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   764	WORD $0x4e71ba73  // addv.8h	h19, v19
   765	WORD $0x1e260273  // fmov	w19, s19
   766	WORD $0x6e248e33  // cmeq.16b	v19, v17, v4
   767	WORD $0x4e211e73  // and.16b	v19, v19, v1
   768	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   769	WORD $0x4e71ba73  // addv.8h	h19, v19
   770	WORD $0x1e260274  // fmov	w20, s19
   771	WORD $0x6e248e13  // cmeq.16b	v19, v16, v4
   772	WORD $0x4e211e73  // and.16b	v19, v19, v1
   773	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   774	WORD $0x4e71ba73  // addv.8h	h19, v19
   775	WORD $0x1e260275  // fmov	w21, s19
   776	WORD $0x6e248cf3  // cmeq.16b	v19, v7, v4
   777	WORD $0x4e211e73  // and.16b	v19, v19, v1
   778	WORD $0x4e020273  // tbl.16b	v19, { v19 }, v2
   779	WORD $0x4e71ba73  // addv.8h	h19, v19
   780	WORD $0x1e260276  // fmov	w22, s19
   781	WORD $0xd3607eb5  // lsl	x21, x21, #32
   782	WORD $0xaa16c2b5  // orr	x21, x21, x22, lsl #48
   783	WORD $0x53103e94  // lsl	w20, w20, #16
   784	WORD $0xaa1402b4  // orr	x20, x21, x20
   785	WORD $0xaa130293  // orr	x19, x20, x19
   786	WORD $0x8a270273  // bic	x19, x19, x7
   787	WORD $0x6e258e52  // cmeq.16b	v18, v18, v5
   788	WORD $0x4e211e52  // and.16b	v18, v18, v1
   789	WORD $0x4e020252  // tbl.16b	v18, { v18 }, v2
   790	WORD $0x4e71ba52  // addv.8h	h18, v18
   791	WORD $0x1e260254  // fmov	w20, s18
   792	WORD $0x6e258e31  // cmeq.16b	v17, v17, v5
   793	WORD $0x4e211e31  // and.16b	v17, v17, v1
   794	WORD $0x4e020231  // tbl.16b	v17, { v17 }, v2
   795	WORD $0x4e71ba31  // addv.8h	h17, v17
   796	WORD $0x1e260235  // fmov	w21, s17
   797	WORD $0x6e258e10  // cmeq.16b	v16, v16, v5
   798	WORD $0x4e211e10  // and.16b	v16, v16, v1
   799	WORD $0x4e020210  // tbl.16b	v16, { v16 }, v2
   800	WORD $0x4e71ba10  // addv.8h	h16, v16
   801	WORD $0x1e260216  // fmov	w22, s16
   802	WORD $0x6e258ce7  // cmeq.16b	v7, v7, v5
   803	WORD $0x4e211ce7  // and.16b	v7, v7, v1
   804	WORD $0x4e0200e7  // tbl.16b	v7, { v7 }, v2
   805	WORD $0x4e71b8e7  // addv.8h	h7, v7
   806	WORD $0x1e2600f7  // fmov	w23, s7
   807	WORD $0xd3607ed6  // lsl	x22, x22, #32
   808	WORD $0xaa17c2d6  // orr	x22, x22, x23, lsl #48
   809	WORD $0x53103eb5  // lsl	w21, w21, #16
   810	WORD $0xaa1502d5  // orr	x21, x22, x21
   811	WORD $0xaa1402b4  // orr	x20, x21, x20
   812	WORD $0xea270294  // bics	x20, x20, x7
   813	WORD $0x54ffeae0  // b.eq	LBB0_85 $-676(%rip)
   814LBB0_91:
   815	WORD $0xd1000695  // sub	x21, x20, #1
   816	WORD $0x8a1302b6  // and	x22, x21, x19
   817	WORD $0x9e6702c7  // fmov	d7, x22
   818	WORD $0x0e2058e7  // cnt.8b	v7, v7
   819	WORD $0x2e3038e7  // uaddlv.8b	h7, v7
   820	WORD $0x1e2600f6  // fmov	w22, s7
   821	WORD $0x8b0a02d6  // add	x22, x22, x10
   822	WORD $0xeb0b02df  // cmp	x22, x11
   823	WORD $0x540006c9  // b.ls	LBB0_109 $216(%rip)
   824	WORD $0x9100056b  // add	x11, x11, #1
   825	WORD $0xea1402b4  // ands	x20, x21, x20
   826	WORD $0x54fffea1  // b.ne	LBB0_91 $-44(%rip)
   827	WORD $0x17ffff4a  // b	LBB0_85 $-728(%rip)
   828LBB0_93:
   829	WORD $0xf10000bf  // cmp	x5, #0
   830	WORD $0x540009ad  // b.le	LBB0_114 $308(%rip)
   831	WORD $0xad019be6  // stp	q6, q6, [sp, #48]
   832	WORD $0xad009be6  // stp	q6, q6, [sp, #16]
   833	WORD $0x92402e13  // and	x19, x16, #0xfff
   834	WORD $0xf13f067f  // cmp	x19, #4033
   835	WORD $0x54ffe9a3  // b.lo	LBB0_87 $-716(%rip)
   836	WORD $0xf10080b4  // subs	x20, x5, #32
   837	WORD $0x540000a3  // b.lo	LBB0_97 $20(%rip)
   838	WORD $0xacc14207  // ldp	q7, q16, [x16], #32
   839	WORD $0xad00c3e7  // stp	q7, q16, [sp, #16]
   840	WORD $0xaa0903f3  // mov	x19, x9
   841	WORD $0x14000003  // b	LBB0_98 $12(%rip)
   842LBB0_97:
   843	WORD $0x910043f3  // add	x19, sp, #16
   844	WORD $0xaa0503f4  // mov	x20, x5
   845LBB0_98:
   846	WORD $0xf1004295  // subs	x21, x20, #16
   847	WORD $0x54000243  // b.lo	LBB0_104 $72(%rip)
   848	WORD $0x3cc10607  // ldr	q7, [x16], #16
   849	WORD $0x3c810667  // str	q7, [x19], #16
   850	WORD $0xaa1503f4  // mov	x20, x21
   851	WORD $0xf10022b5  // subs	x21, x21, #8
   852	WORD $0x540001e2  // b.hs	LBB0_105 $60(%rip)
   853LBB0_100:
   854	WORD $0xf1001295  // subs	x21, x20, #4
   855	WORD $0x54000243  // b.lo	LBB0_106 $72(%rip)
   856LBB0_101:
   857	WORD $0xb8404614  // ldr	w20, [x16], #4
   858	WORD $0xb8004674  // str	w20, [x19], #4
   859	WORD $0xaa1503f4  // mov	x20, x21
   860	WORD $0xf1000ab5  // subs	x21, x21, #2
   861	WORD $0x540001e2  // b.hs	LBB0_107 $60(%rip)
   862LBB0_102:
   863	WORD $0xb4000254  // cbz	x20, LBB0_108 $72(%rip)
   864LBB0_103:
   865	WORD $0x39400210  // ldrb	w16, [x16]
   866	WORD $0x39000270  // strb	w16, [x19]
   867	WORD $0x910043f0  // add	x16, sp, #16
   868	WORD $0x17ffff32  // b	LBB0_87 $-824(%rip)
   869LBB0_104:
   870	WORD $0xf1002295  // subs	x21, x20, #8
   871	WORD $0x54fffe63  // b.lo	LBB0_100 $-52(%rip)
   872LBB0_105:
   873	WORD $0xf8408614  // ldr	x20, [x16], #8
   874	WORD $0xf8008674  // str	x20, [x19], #8
   875	WORD $0xaa1503f4  // mov	x20, x21
   876	WORD $0xf10012b5  // subs	x21, x21, #4
   877	WORD $0x54fffe02  // b.hs	LBB0_101 $-64(%rip)
   878LBB0_106:
   879	WORD $0xf1000a95  // subs	x21, x20, #2
   880	WORD $0x54fffe63  // b.lo	LBB0_102 $-52(%rip)
   881LBB0_107:
   882	WORD $0x78402614  // ldrh	w20, [x16], #2
   883	WORD $0x78002674  // strh	w20, [x19], #2
   884	WORD $0xaa1503f4  // mov	x20, x21
   885	WORD $0xb5fffe15  // cbnz	x21, LBB0_103 $-64(%rip)
   886LBB0_108:
   887	WORD $0x910043f0  // add	x16, sp, #16
   888	WORD $0x17ffff23  // b	LBB0_87 $-884(%rip)
   889LBB0_109:
   890	WORD $0xf9400409  // ldr	x9, [x0, #8]
   891	WORD $0xdac0028a  // rbit	x10, x20
   892	WORD $0xdac0114a  // clz	x10, x10
   893	WORD $0xcb05014a  // sub	x10, x10, x5
   894	WORD $0x8b090149  // add	x9, x10, x9
   895	WORD $0x9100052a  // add	x10, x9, #1
   896	WORD $0xf900002a  // str	x10, [x1]
   897	WORD $0xf940040b  // ldr	x11, [x0, #8]
   898	WORD $0xeb0b015f  // cmp	x10, x11
   899	WORD $0x9a892569  // csinc	x9, x11, x9, hs
   900	WORD $0xf9000029  // str	x9, [x1]
   901	WORD $0xda9f9100  // csinv	x0, x8, xzr, ls
   902	WORD $0x14000014  // b	LBB0_117 $80(%rip)
   903LBB0_110:
   904	WORD $0xf9000028  // str	x8, [x1]
   905	WORD $0x92800020  // mov	x0, #-2
   906	WORD $0x14000011  // b	LBB0_117 $68(%rip)
   907LBB0_111:
   908	WORD $0xdac001e9  // rbit	x9, x15
   909	WORD $0xdac01129  // clz	x9, x9
   910	WORD $0x8b0a010a  // add	x10, x8, x10
   911	WORD $0x8b0a0129  // add	x9, x9, x10
   912	WORD $0x91000929  // add	x9, x9, #2
   913	WORD $0x17fffd7a  // b	LBB0_37 $-2584(%rip)
   914LBB0_112:
   915	WORD $0xf900002d  // str	x13, [x1]
   916	WORD $0x17fffd79  // b	LBB0_38 $-2588(%rip)
   917LBB0_113:
   918	WORD $0x8b10012c  // add	x12, x9, x16
   919	WORD $0x92800000  // mov	x0, #-1
   920	WORD $0xf100055f  // cmp	x10, #1
   921	WORD $0x540003ca  // b.ge	LBB0_121 $120(%rip)
   922	WORD $0x14000004  // b	LBB0_117 $16(%rip)
   923LBB0_114:
   924	WORD $0xf9400408  // ldr	x8, [x0, #8]
   925LBB0_115:
   926	WORD $0xf9000028  // str	x8, [x1]
   927LBB0_116:
   928	WORD $0x92800000  // mov	x0, #-1
   929LBB0_117:
   930	WORD $0xa94afbfd  // ldp	fp, lr, [sp, #168]
   931	WORD $0xa949cff4  // ldp	x20, x19, [sp, #152]
   932	WORD $0xa948d7f6  // ldp	x22, x21, [sp, #136]
   933	WORD $0xa947dff8  // ldp	x24, x23, [sp, #120]
   934	WORD $0xa946e7fa  // ldp	x26, x25, [sp, #104]
   935	WORD $0xa945effc  // ldp	x28, x27, [sp, #88]
   936	WORD $0x910303ff  // add	sp, sp, #192
   937	WORD $0xd65f03c0  // ret
   938LBB0_118:
   939	WORD $0xd100056c  // sub	x12, x11, #1
   940	WORD $0xeb0a019f  // cmp	x12, x10
   941	WORD $0x54fffea0  // b.eq	LBB0_116 $-44(%rip)
   942	WORD $0x8b08012c  // add	x12, x9, x8
   943	WORD $0x8b0a018c  // add	x12, x12, x10
   944	WORD $0x9100098c  // add	x12, x12, #2
   945	WORD $0xcb0a016a  // sub	x10, x11, x10
   946	WORD $0xd100094a  // sub	x10, x10, #2
   947	WORD $0x92800000  // mov	x0, #-1
   948	WORD $0xf100055f  // cmp	x10, #1
   949	WORD $0x540000ea  // b.ge	LBB0_121 $28(%rip)
   950	WORD $0x17ffffed  // b	LBB0_117 $-76(%rip)
   951LBB0_120:
   952	WORD $0x9280002b  // mov	x11, #-2
   953	WORD $0x5280004d  // mov	w13, #2
   954	WORD $0x8b0d018c  // add	x12, x12, x13
   955	WORD $0xab0b014a  // adds	x10, x10, x11
   956	WORD $0x54fffd0d  // b.le	LBB0_117 $-96(%rip)
   957LBB0_121:
   958	WORD $0x3940018b  // ldrb	w11, [x12]
   959	WORD $0x7101717f  // cmp	w11, #92
   960	WORD $0x54ffff20  // b.eq	LBB0_120 $-28(%rip)
   961	WORD $0x7100897f  // cmp	w11, #34
   962	WORD $0x540000e0  // b.eq	LBB0_124 $28(%rip)
   963	WORD $0x9280000b  // mov	x11, #-1
   964	WORD $0x5280002d  // mov	w13, #1
   965	WORD $0x8b0d018c  // add	x12, x12, x13
   966	WORD $0xab0b014a  // adds	x10, x10, x11
   967	WORD $0x54fffeec  // b.gt	LBB0_121 $-36(%rip)
   968	WORD $0x17ffffdd  // b	LBB0_117 $-140(%rip)
   969LBB0_124:
   970	WORD $0xcb090189  // sub	x9, x12, x9
   971	WORD $0x91000529  // add	x9, x9, #1
   972	WORD $0x17fffd49  // b	LBB0_37 $-2780(%rip)
   973	  // .p2align 2, 0x00
   974_MASK_USE_NUMBER:
   975	WORD $0x00000002  // .long 2
   976
   977TEXT ·__skip_one_fast(SB), NOSPLIT, $0-24
   978	NO_LOCAL_POINTERS
   979
   980_entry:
   981	MOVD 16(g), R16
   982	SUB $256, RSP, R17
   983	CMP  R16, R17
   984	BLS  _stack_grow
   985
   986_skip_one_fast:
   987	MOVD s+0(FP), R0
   988	MOVD p+8(FP), R1
   989	MOVD ·_subr__skip_one_fast(SB), R11
   990	WORD $0x1000005e // adr x30, .+8
   991	JMP (R11)
   992	MOVD R0, ret+16(FP)
   993	RET
   994
   995_stack_grow:
   996	MOVD R30, R3
   997	CALL runtime·morestack_noctxt<>(SB)
   998	JMP  _entry

View as plain text