Lines Matching +full:1 +full:- +full:v0

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
21 subs x2, x2, #1
24 mov x13, #-1 // save constants for later
50 cmeq v5.16b, v0.16b, #0
66 tbl v0.16b, {v0.16b}, v4.16b
68 b 1f
72 1:
79 b 1f
86 1:
87 cmeq v2.16b, v0.16b, #0 // NUL byte present?
88 cmeq v4.16b, v0.16b, v4.16b // which bytes match?
132 cmeq v5.16b, v0.16b, #0
151 tbl v0.16b, {v0.16b}, v4.16b
153 b 1f
157 1:
164 b 1f
171 1:
173 cmeq v2.16b, v0.16b, #0 // NUL byte present?
174 cmeq v4.16b, v0.16b, v4.16b // which bytes match?
201 cmeq v0.16b, v0.16b, v2.16b // Mismatch between chunks?
203 shrn v0.8b, v0.8h, #4
223 * v ------1------ v ------2------ v
231 * two strings. As X1 is known not to hold a NUL byte in regions 1
241 cmeq v0.16b, v0.16b, v2.16b // do the chunks match?
244 shrn v0.8b, v0.8h, #4
260 cmeq v0.16b, v0.16b, v2.16b
263 shrn v0.8b, v0.8h, #4
280 cmeq v0.16b, v0.16b, v2.16b // do the chunks match?
283 shrn v0.8b, v0.8h, #4
311 cmeq v0.16b, v0.16b, v2.16b
314 shrn v0.8b, v0.8h, #4
318 ubfiz x4, x2, #2, #4 // (x2 - 16) << 2
342 cmeq v1.16b, v0.16b, v1.16b
389 cmeq v0.16b, v0.16b, v3.16b
391 shrn v0.8b, v0.8h, #4
413 * v ------1------ v ------2------ v
421 * two strings. As X0 is known not to hold a NUL byte in regions 1
431 cmeq v0.16b, v0.16b, v2.16b
434 shrn v0.8b, v0.8h, #4
450 cmeq v0.16b, v0.16b, v2.16b
453 shrn v0.8b, v0.8h, #4
469 cmeq v0.16b, v0.16b, v2.16b
472 shrn v0.8b, v0.8h, #4
499 cmeq v0.16b, v0.16b, v2.16b
502 shrn v0.8b, v0.8h, #4
525 cmeq v1.16b, v0.16b, v1.16b
567 .byte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
568 .fill 16, 1, -1
569 .size shift_data, .-shift_data