Lines Matching +full:- +full:16
2 * strchr - find a character in a string
4 * Copyright (c) 2014-2022, Arm Limited.
5 * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
10 * ARMv8-a, AArch64
41 For each 32-byte hunk we calculate a 64-bit syndrome value, with
43 and little-endian systems). For each tuple, bit 0 is set iff
58 movk wtmp2, 0xc030, lsl 16
59 dup vrepchr.16b, chrin
60 bic src, srcin, #31 /* Work with aligned 32-byte hunks. */
66 /* Input string is not 32-byte aligned. Rather than forcing
70 ld1 {vdata1.16b, vdata2.16b}, [src], #32
72 cmeq vhas_nul1.16b, vdata1.16b, #0
73 cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b
74 cmeq vhas_nul2.16b, vdata2.16b, #0
75 cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b
76 bif vhas_nul1.16b, vhas_chr1.16b, vrepmask_0.16b
77 bif vhas_nul2.16b, vhas_chr2.16b, vrepmask_0.16b
78 and vend1.16b, vhas_nul1.16b, vrepmask_c.16b
79 and vend2.16b, vhas_nul2.16b, vrepmask_c.16b
81 addp vend1.16b, vend1.16b, vend2.16b // 256->128
83 addp vend1.16b, vend1.16b, vend2.16b // 128->64
92 ld1 {vdata1.16b, vdata2.16b}, [src], #32
93 cmeq vhas_chr1.16b, vdata1.16b, vrepchr.16b
94 cmeq vhas_chr2.16b, vdata2.16b, vrepchr.16b
95 cmhs vhas_nul1.16b, vhas_chr1.16b, vdata1.16b
96 cmhs vhas_nul2.16b, vhas_chr2.16b, vdata2.16b
97 orr vend1.16b, vhas_nul1.16b, vhas_nul2.16b
98 umaxp vend1.16b, vend1.16b, vend1.16b
104 bif vhas_nul1.16b, vhas_chr1.16b, vrepmask_0.16b
105 bif vhas_nul2.16b, vhas_chr2.16b, vrepmask_0.16b
106 and vend1.16b, vhas_nul1.16b, vrepmask_c.16b
107 and vend2.16b, vhas_nul2.16b, vrepmask_c.16b
108 addp vend1.16b, vend1.16b, vend2.16b // 256->128
109 addp vend1.16b, vend1.16b, vend2.16b // 128->64
114 /* Re-bias source. */