Lines Matching +full:1 +full:- +full:16

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
21 mov x13, #-1
25 * into unmapped page. If so, we load 16 bytes from the nearest
29 add x3, x0, #16 // end of head
30 add x4, x1, #16
44 cmeq v5.16b, v0.16b, #0
45 cmeq v6.16b, v2.16b, #0
60 tbl v0.16b, {v0.16b}, v4.16b
62 b 1f
66 1:
71 tbl v4.16b, {v2.16b}, v4.16b
73 b 1f
80 1:
82 cmeq v2.16b, v0.16b, #0 // NUL byte present?
83 cmeq v4.16b, v0.16b, v4.16b // which bytes match?
85 orn v2.16b, v2.16b, v4.16b // mismatch or NUL byte?
92 ldr q2, [x8, #16] // load second chunk
93 ldr q3, [x10, #16]
97 ldr q0, [x12, #16]!
101 cmeq v1.16b, v3.16b, #0
102 cmeq v0.16b, v0.16b, v2.16b
103 add x8, x8, #16
111 add x8, x8, #16 // advance aligned pointers
116 * v ------1------ v ------2------ v
124 * two strings. As X1 is known not to hold a NUL byte in regions 1
133 cmeq v1.16b, v1.16b, #0 // end of string?
134 cmeq v0.16b, v0.16b, v2.16b // do the chunks match?
144 add x8, x8, #16
150 add x8, x8, #16
151 cmeq v1.16b, v1.16b, #0
152 cmeq v0.16b, v0.16b, v2.16b
162 sub x8, x8, #16 // roll back second increment
176 sub x8, x8, #16
195 cmeq v1.16b, v0.16b, v1.16b
231 ldr q0, [x12, #16]!
236 cmeq v1.16b, v2.16b, #0
237 cmeq v0.16b, v0.16b, v3.16b
238 add x10, x10, #16
246 add x10, x10, #16
251 * v ------1------ v ------2------ v
259 * two strings. As X0 is known not to hold a NUL byte in regions 1
268 cmeq v1.16b, v1.16b, #0
269 cmeq v0.16b, v0.16b, v2.16b
279 add x10, x10, #16
285 add x10, x10, #16
286 cmeq v1.16b, v1.16b, #0
287 cmeq v0.16b, v0.16b, v2.16b
297 sub x10, x10, #16
312 sub x10, x10, #16
325 cmeq v1.16b, v0.16b, v1.16b
348 .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
349 .fill 16, 1, -1
350 .size shift_data, .-shift_data