1 /**
2 * @file
3 *
4 * @author jeffrey.daily@gmail.com
5 *
6 * Copyright (c) 2015 Battelle Memorial Institute.
7 */
8 #include "config.h"
9
10 #include <stdint.h>
11 #include <stdlib.h>
12
13 #include "parasail.h"
14 #include "parasail/cpuid.h"
15
16 /* forward declare the dispatcher functions */
17 parasail_function_t parasail_sg_qx_scan_64_dispatcher;
18 parasail_function_t parasail_sg_qx_scan_32_dispatcher;
19 parasail_function_t parasail_sg_qx_scan_16_dispatcher;
20 parasail_function_t parasail_sg_qx_scan_8_dispatcher;
21 parasail_function_t parasail_sg_qx_striped_64_dispatcher;
22 parasail_function_t parasail_sg_qx_striped_32_dispatcher;
23 parasail_function_t parasail_sg_qx_striped_16_dispatcher;
24 parasail_function_t parasail_sg_qx_striped_8_dispatcher;
25 parasail_function_t parasail_sg_qx_diag_64_dispatcher;
26 parasail_function_t parasail_sg_qx_diag_32_dispatcher;
27 parasail_function_t parasail_sg_qx_diag_16_dispatcher;
28 parasail_function_t parasail_sg_qx_diag_8_dispatcher;
29 parasail_function_t parasail_sg_qx_stats_scan_64_dispatcher;
30 parasail_function_t parasail_sg_qx_stats_scan_32_dispatcher;
31 parasail_function_t parasail_sg_qx_stats_scan_16_dispatcher;
32 parasail_function_t parasail_sg_qx_stats_scan_8_dispatcher;
33 parasail_function_t parasail_sg_qx_stats_striped_64_dispatcher;
34 parasail_function_t parasail_sg_qx_stats_striped_32_dispatcher;
35 parasail_function_t parasail_sg_qx_stats_striped_16_dispatcher;
36 parasail_function_t parasail_sg_qx_stats_striped_8_dispatcher;
37 parasail_function_t parasail_sg_qx_stats_diag_64_dispatcher;
38 parasail_function_t parasail_sg_qx_stats_diag_32_dispatcher;
39 parasail_function_t parasail_sg_qx_stats_diag_16_dispatcher;
40 parasail_function_t parasail_sg_qx_stats_diag_8_dispatcher;
41 parasail_function_t parasail_sg_qx_table_scan_64_dispatcher;
42 parasail_function_t parasail_sg_qx_table_scan_32_dispatcher;
43 parasail_function_t parasail_sg_qx_table_scan_16_dispatcher;
44 parasail_function_t parasail_sg_qx_table_scan_8_dispatcher;
45 parasail_function_t parasail_sg_qx_table_striped_64_dispatcher;
46 parasail_function_t parasail_sg_qx_table_striped_32_dispatcher;
47 parasail_function_t parasail_sg_qx_table_striped_16_dispatcher;
48 parasail_function_t parasail_sg_qx_table_striped_8_dispatcher;
49 parasail_function_t parasail_sg_qx_table_diag_64_dispatcher;
50 parasail_function_t parasail_sg_qx_table_diag_32_dispatcher;
51 parasail_function_t parasail_sg_qx_table_diag_16_dispatcher;
52 parasail_function_t parasail_sg_qx_table_diag_8_dispatcher;
53 parasail_function_t parasail_sg_qx_stats_table_scan_64_dispatcher;
54 parasail_function_t parasail_sg_qx_stats_table_scan_32_dispatcher;
55 parasail_function_t parasail_sg_qx_stats_table_scan_16_dispatcher;
56 parasail_function_t parasail_sg_qx_stats_table_scan_8_dispatcher;
57 parasail_function_t parasail_sg_qx_stats_table_striped_64_dispatcher;
58 parasail_function_t parasail_sg_qx_stats_table_striped_32_dispatcher;
59 parasail_function_t parasail_sg_qx_stats_table_striped_16_dispatcher;
60 parasail_function_t parasail_sg_qx_stats_table_striped_8_dispatcher;
61 parasail_function_t parasail_sg_qx_stats_table_diag_64_dispatcher;
62 parasail_function_t parasail_sg_qx_stats_table_diag_32_dispatcher;
63 parasail_function_t parasail_sg_qx_stats_table_diag_16_dispatcher;
64 parasail_function_t parasail_sg_qx_stats_table_diag_8_dispatcher;
65 parasail_function_t parasail_sg_qx_rowcol_scan_64_dispatcher;
66 parasail_function_t parasail_sg_qx_rowcol_scan_32_dispatcher;
67 parasail_function_t parasail_sg_qx_rowcol_scan_16_dispatcher;
68 parasail_function_t parasail_sg_qx_rowcol_scan_8_dispatcher;
69 parasail_function_t parasail_sg_qx_rowcol_striped_64_dispatcher;
70 parasail_function_t parasail_sg_qx_rowcol_striped_32_dispatcher;
71 parasail_function_t parasail_sg_qx_rowcol_striped_16_dispatcher;
72 parasail_function_t parasail_sg_qx_rowcol_striped_8_dispatcher;
73 parasail_function_t parasail_sg_qx_rowcol_diag_64_dispatcher;
74 parasail_function_t parasail_sg_qx_rowcol_diag_32_dispatcher;
75 parasail_function_t parasail_sg_qx_rowcol_diag_16_dispatcher;
76 parasail_function_t parasail_sg_qx_rowcol_diag_8_dispatcher;
77 parasail_function_t parasail_sg_qx_stats_rowcol_scan_64_dispatcher;
78 parasail_function_t parasail_sg_qx_stats_rowcol_scan_32_dispatcher;
79 parasail_function_t parasail_sg_qx_stats_rowcol_scan_16_dispatcher;
80 parasail_function_t parasail_sg_qx_stats_rowcol_scan_8_dispatcher;
81 parasail_function_t parasail_sg_qx_stats_rowcol_striped_64_dispatcher;
82 parasail_function_t parasail_sg_qx_stats_rowcol_striped_32_dispatcher;
83 parasail_function_t parasail_sg_qx_stats_rowcol_striped_16_dispatcher;
84 parasail_function_t parasail_sg_qx_stats_rowcol_striped_8_dispatcher;
85 parasail_function_t parasail_sg_qx_stats_rowcol_diag_64_dispatcher;
86 parasail_function_t parasail_sg_qx_stats_rowcol_diag_32_dispatcher;
87 parasail_function_t parasail_sg_qx_stats_rowcol_diag_16_dispatcher;
88 parasail_function_t parasail_sg_qx_stats_rowcol_diag_8_dispatcher;
89 parasail_function_t parasail_sg_qx_trace_scan_64_dispatcher;
90 parasail_function_t parasail_sg_qx_trace_scan_32_dispatcher;
91 parasail_function_t parasail_sg_qx_trace_scan_16_dispatcher;
92 parasail_function_t parasail_sg_qx_trace_scan_8_dispatcher;
93 parasail_function_t parasail_sg_qx_trace_striped_64_dispatcher;
94 parasail_function_t parasail_sg_qx_trace_striped_32_dispatcher;
95 parasail_function_t parasail_sg_qx_trace_striped_16_dispatcher;
96 parasail_function_t parasail_sg_qx_trace_striped_8_dispatcher;
97 parasail_function_t parasail_sg_qx_trace_diag_64_dispatcher;
98 parasail_function_t parasail_sg_qx_trace_diag_32_dispatcher;
99 parasail_function_t parasail_sg_qx_trace_diag_16_dispatcher;
100 parasail_function_t parasail_sg_qx_trace_diag_8_dispatcher;
101 parasail_pfunction_t parasail_sg_qx_scan_profile_64_dispatcher;
102 parasail_pfunction_t parasail_sg_qx_scan_profile_32_dispatcher;
103 parasail_pfunction_t parasail_sg_qx_scan_profile_16_dispatcher;
104 parasail_pfunction_t parasail_sg_qx_scan_profile_8_dispatcher;
105 parasail_pfunction_t parasail_sg_qx_striped_profile_64_dispatcher;
106 parasail_pfunction_t parasail_sg_qx_striped_profile_32_dispatcher;
107 parasail_pfunction_t parasail_sg_qx_striped_profile_16_dispatcher;
108 parasail_pfunction_t parasail_sg_qx_striped_profile_8_dispatcher;
109 parasail_pfunction_t parasail_sg_qx_stats_scan_profile_64_dispatcher;
110 parasail_pfunction_t parasail_sg_qx_stats_scan_profile_32_dispatcher;
111 parasail_pfunction_t parasail_sg_qx_stats_scan_profile_16_dispatcher;
112 parasail_pfunction_t parasail_sg_qx_stats_scan_profile_8_dispatcher;
113 parasail_pfunction_t parasail_sg_qx_stats_striped_profile_64_dispatcher;
114 parasail_pfunction_t parasail_sg_qx_stats_striped_profile_32_dispatcher;
115 parasail_pfunction_t parasail_sg_qx_stats_striped_profile_16_dispatcher;
116 parasail_pfunction_t parasail_sg_qx_stats_striped_profile_8_dispatcher;
117 parasail_pfunction_t parasail_sg_qx_table_scan_profile_64_dispatcher;
118 parasail_pfunction_t parasail_sg_qx_table_scan_profile_32_dispatcher;
119 parasail_pfunction_t parasail_sg_qx_table_scan_profile_16_dispatcher;
120 parasail_pfunction_t parasail_sg_qx_table_scan_profile_8_dispatcher;
121 parasail_pfunction_t parasail_sg_qx_table_striped_profile_64_dispatcher;
122 parasail_pfunction_t parasail_sg_qx_table_striped_profile_32_dispatcher;
123 parasail_pfunction_t parasail_sg_qx_table_striped_profile_16_dispatcher;
124 parasail_pfunction_t parasail_sg_qx_table_striped_profile_8_dispatcher;
125 parasail_pfunction_t parasail_sg_qx_stats_table_scan_profile_64_dispatcher;
126 parasail_pfunction_t parasail_sg_qx_stats_table_scan_profile_32_dispatcher;
127 parasail_pfunction_t parasail_sg_qx_stats_table_scan_profile_16_dispatcher;
128 parasail_pfunction_t parasail_sg_qx_stats_table_scan_profile_8_dispatcher;
129 parasail_pfunction_t parasail_sg_qx_stats_table_striped_profile_64_dispatcher;
130 parasail_pfunction_t parasail_sg_qx_stats_table_striped_profile_32_dispatcher;
131 parasail_pfunction_t parasail_sg_qx_stats_table_striped_profile_16_dispatcher;
132 parasail_pfunction_t parasail_sg_qx_stats_table_striped_profile_8_dispatcher;
133 parasail_pfunction_t parasail_sg_qx_rowcol_scan_profile_64_dispatcher;
134 parasail_pfunction_t parasail_sg_qx_rowcol_scan_profile_32_dispatcher;
135 parasail_pfunction_t parasail_sg_qx_rowcol_scan_profile_16_dispatcher;
136 parasail_pfunction_t parasail_sg_qx_rowcol_scan_profile_8_dispatcher;
137 parasail_pfunction_t parasail_sg_qx_rowcol_striped_profile_64_dispatcher;
138 parasail_pfunction_t parasail_sg_qx_rowcol_striped_profile_32_dispatcher;
139 parasail_pfunction_t parasail_sg_qx_rowcol_striped_profile_16_dispatcher;
140 parasail_pfunction_t parasail_sg_qx_rowcol_striped_profile_8_dispatcher;
141 parasail_pfunction_t parasail_sg_qx_stats_rowcol_scan_profile_64_dispatcher;
142 parasail_pfunction_t parasail_sg_qx_stats_rowcol_scan_profile_32_dispatcher;
143 parasail_pfunction_t parasail_sg_qx_stats_rowcol_scan_profile_16_dispatcher;
144 parasail_pfunction_t parasail_sg_qx_stats_rowcol_scan_profile_8_dispatcher;
145 parasail_pfunction_t parasail_sg_qx_stats_rowcol_striped_profile_64_dispatcher;
146 parasail_pfunction_t parasail_sg_qx_stats_rowcol_striped_profile_32_dispatcher;
147 parasail_pfunction_t parasail_sg_qx_stats_rowcol_striped_profile_16_dispatcher;
148 parasail_pfunction_t parasail_sg_qx_stats_rowcol_striped_profile_8_dispatcher;
149 parasail_pfunction_t parasail_sg_qx_trace_scan_profile_64_dispatcher;
150 parasail_pfunction_t parasail_sg_qx_trace_scan_profile_32_dispatcher;
151 parasail_pfunction_t parasail_sg_qx_trace_scan_profile_16_dispatcher;
152 parasail_pfunction_t parasail_sg_qx_trace_scan_profile_8_dispatcher;
153 parasail_pfunction_t parasail_sg_qx_trace_striped_profile_64_dispatcher;
154 parasail_pfunction_t parasail_sg_qx_trace_striped_profile_32_dispatcher;
155 parasail_pfunction_t parasail_sg_qx_trace_striped_profile_16_dispatcher;
156 parasail_pfunction_t parasail_sg_qx_trace_striped_profile_8_dispatcher;
157
158 /* declare and initialize the pointer to the dispatcher function */
159 #if 0
160 parasail_function_t * parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan_64_dispatcher;
161 parasail_function_t * parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan_32_dispatcher;
162 parasail_function_t * parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan_16_dispatcher;
163 parasail_function_t * parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan_8_dispatcher;
164 parasail_function_t * parasail_sg_qx_striped_64_pointer = parasail_sg_qx_striped_64_dispatcher;
165 parasail_function_t * parasail_sg_qx_striped_32_pointer = parasail_sg_qx_striped_32_dispatcher;
166 parasail_function_t * parasail_sg_qx_striped_16_pointer = parasail_sg_qx_striped_16_dispatcher;
167 parasail_function_t * parasail_sg_qx_striped_8_pointer = parasail_sg_qx_striped_8_dispatcher;
168 parasail_function_t * parasail_sg_qx_diag_64_pointer = parasail_sg_qx_diag_64_dispatcher;
169 parasail_function_t * parasail_sg_qx_diag_32_pointer = parasail_sg_qx_diag_32_dispatcher;
170 parasail_function_t * parasail_sg_qx_diag_16_pointer = parasail_sg_qx_diag_16_dispatcher;
171 parasail_function_t * parasail_sg_qx_diag_8_pointer = parasail_sg_qx_diag_8_dispatcher;
172 parasail_function_t * parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_stats_scan_64_dispatcher;
173 parasail_function_t * parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_stats_scan_32_dispatcher;
174 parasail_function_t * parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_stats_scan_16_dispatcher;
175 parasail_function_t * parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_stats_scan_8_dispatcher;
176 parasail_function_t * parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx_stats_striped_64_dispatcher;
177 parasail_function_t * parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx_stats_striped_32_dispatcher;
178 parasail_function_t * parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx_stats_striped_16_dispatcher;
179 parasail_function_t * parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx_stats_striped_8_dispatcher;
180 parasail_function_t * parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx_stats_diag_64_dispatcher;
181 parasail_function_t * parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx_stats_diag_32_dispatcher;
182 parasail_function_t * parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx_stats_diag_16_dispatcher;
183 parasail_function_t * parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx_stats_diag_8_dispatcher;
184 parasail_function_t * parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_table_scan_64_dispatcher;
185 parasail_function_t * parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_table_scan_32_dispatcher;
186 parasail_function_t * parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_table_scan_16_dispatcher;
187 parasail_function_t * parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_table_scan_8_dispatcher;
188 parasail_function_t * parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx_table_striped_64_dispatcher;
189 parasail_function_t * parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx_table_striped_32_dispatcher;
190 parasail_function_t * parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx_table_striped_16_dispatcher;
191 parasail_function_t * parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx_table_striped_8_dispatcher;
192 parasail_function_t * parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx_table_diag_64_dispatcher;
193 parasail_function_t * parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx_table_diag_32_dispatcher;
194 parasail_function_t * parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx_table_diag_16_dispatcher;
195 parasail_function_t * parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx_table_diag_8_dispatcher;
196 parasail_function_t * parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_stats_table_scan_64_dispatcher;
197 parasail_function_t * parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_stats_table_scan_32_dispatcher;
198 parasail_function_t * parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_stats_table_scan_16_dispatcher;
199 parasail_function_t * parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_stats_table_scan_8_dispatcher;
200 parasail_function_t * parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx_stats_table_striped_64_dispatcher;
201 parasail_function_t * parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx_stats_table_striped_32_dispatcher;
202 parasail_function_t * parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx_stats_table_striped_16_dispatcher;
203 parasail_function_t * parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx_stats_table_striped_8_dispatcher;
204 parasail_function_t * parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx_stats_table_diag_64_dispatcher;
205 parasail_function_t * parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx_stats_table_diag_32_dispatcher;
206 parasail_function_t * parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx_stats_table_diag_16_dispatcher;
207 parasail_function_t * parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx_stats_table_diag_8_dispatcher;
208 parasail_function_t * parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_rowcol_scan_64_dispatcher;
209 parasail_function_t * parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_rowcol_scan_32_dispatcher;
210 parasail_function_t * parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_rowcol_scan_16_dispatcher;
211 parasail_function_t * parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_rowcol_scan_8_dispatcher;
212 parasail_function_t * parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx_rowcol_striped_64_dispatcher;
213 parasail_function_t * parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx_rowcol_striped_32_dispatcher;
214 parasail_function_t * parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx_rowcol_striped_16_dispatcher;
215 parasail_function_t * parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx_rowcol_striped_8_dispatcher;
216 parasail_function_t * parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx_rowcol_diag_64_dispatcher;
217 parasail_function_t * parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx_rowcol_diag_32_dispatcher;
218 parasail_function_t * parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx_rowcol_diag_16_dispatcher;
219 parasail_function_t * parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx_rowcol_diag_8_dispatcher;
220 parasail_function_t * parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_stats_rowcol_scan_64_dispatcher;
221 parasail_function_t * parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_stats_rowcol_scan_32_dispatcher;
222 parasail_function_t * parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_stats_rowcol_scan_16_dispatcher;
223 parasail_function_t * parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_stats_rowcol_scan_8_dispatcher;
224 parasail_function_t * parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx_stats_rowcol_striped_64_dispatcher;
225 parasail_function_t * parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx_stats_rowcol_striped_32_dispatcher;
226 parasail_function_t * parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx_stats_rowcol_striped_16_dispatcher;
227 parasail_function_t * parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx_stats_rowcol_striped_8_dispatcher;
228 parasail_function_t * parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx_stats_rowcol_diag_64_dispatcher;
229 parasail_function_t * parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx_stats_rowcol_diag_32_dispatcher;
230 parasail_function_t * parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx_stats_rowcol_diag_16_dispatcher;
231 parasail_function_t * parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx_stats_rowcol_diag_8_dispatcher;
232 parasail_function_t * parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_trace_scan_64_dispatcher;
233 parasail_function_t * parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_trace_scan_32_dispatcher;
234 parasail_function_t * parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_trace_scan_16_dispatcher;
235 parasail_function_t * parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_trace_scan_8_dispatcher;
236 parasail_function_t * parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx_trace_striped_64_dispatcher;
237 #endif
238 parasail_function_t * parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx_trace_striped_32_dispatcher;
239 parasail_function_t * parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx_trace_striped_16_dispatcher;
240 #if 0
241 parasail_function_t * parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx_trace_striped_8_dispatcher;
242 parasail_function_t * parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx_trace_diag_64_dispatcher;
243 parasail_function_t * parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx_trace_diag_32_dispatcher;
244 parasail_function_t * parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx_trace_diag_16_dispatcher;
245 parasail_function_t * parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx_trace_diag_8_dispatcher;
246 parasail_pfunction_t * parasail_sg_qx_scan_profile_64_pointer = parasail_sg_qx_scan_profile_64_dispatcher;
247 parasail_pfunction_t * parasail_sg_qx_scan_profile_32_pointer = parasail_sg_qx_scan_profile_32_dispatcher;
248 parasail_pfunction_t * parasail_sg_qx_scan_profile_16_pointer = parasail_sg_qx_scan_profile_16_dispatcher;
249 parasail_pfunction_t * parasail_sg_qx_scan_profile_8_pointer = parasail_sg_qx_scan_profile_8_dispatcher;
250 parasail_pfunction_t * parasail_sg_qx_striped_profile_64_pointer = parasail_sg_qx_striped_profile_64_dispatcher;
251 parasail_pfunction_t * parasail_sg_qx_striped_profile_32_pointer = parasail_sg_qx_striped_profile_32_dispatcher;
252 parasail_pfunction_t * parasail_sg_qx_striped_profile_16_pointer = parasail_sg_qx_striped_profile_16_dispatcher;
253 parasail_pfunction_t * parasail_sg_qx_striped_profile_8_pointer = parasail_sg_qx_striped_profile_8_dispatcher;
254 parasail_pfunction_t * parasail_sg_qx_stats_scan_profile_64_pointer = parasail_sg_qx_stats_scan_profile_64_dispatcher;
255 parasail_pfunction_t * parasail_sg_qx_stats_scan_profile_32_pointer = parasail_sg_qx_stats_scan_profile_32_dispatcher;
256 parasail_pfunction_t * parasail_sg_qx_stats_scan_profile_16_pointer = parasail_sg_qx_stats_scan_profile_16_dispatcher;
257 parasail_pfunction_t * parasail_sg_qx_stats_scan_profile_8_pointer = parasail_sg_qx_stats_scan_profile_8_dispatcher;
258 parasail_pfunction_t * parasail_sg_qx_stats_striped_profile_64_pointer = parasail_sg_qx_stats_striped_profile_64_dispatcher;
259 parasail_pfunction_t * parasail_sg_qx_stats_striped_profile_32_pointer = parasail_sg_qx_stats_striped_profile_32_dispatcher;
260 parasail_pfunction_t * parasail_sg_qx_stats_striped_profile_16_pointer = parasail_sg_qx_stats_striped_profile_16_dispatcher;
261 parasail_pfunction_t * parasail_sg_qx_stats_striped_profile_8_pointer = parasail_sg_qx_stats_striped_profile_8_dispatcher;
262 parasail_pfunction_t * parasail_sg_qx_table_scan_profile_64_pointer = parasail_sg_qx_table_scan_profile_64_dispatcher;
263 parasail_pfunction_t * parasail_sg_qx_table_scan_profile_32_pointer = parasail_sg_qx_table_scan_profile_32_dispatcher;
264 parasail_pfunction_t * parasail_sg_qx_table_scan_profile_16_pointer = parasail_sg_qx_table_scan_profile_16_dispatcher;
265 parasail_pfunction_t * parasail_sg_qx_table_scan_profile_8_pointer = parasail_sg_qx_table_scan_profile_8_dispatcher;
266 parasail_pfunction_t * parasail_sg_qx_table_striped_profile_64_pointer = parasail_sg_qx_table_striped_profile_64_dispatcher;
267 parasail_pfunction_t * parasail_sg_qx_table_striped_profile_32_pointer = parasail_sg_qx_table_striped_profile_32_dispatcher;
268 parasail_pfunction_t * parasail_sg_qx_table_striped_profile_16_pointer = parasail_sg_qx_table_striped_profile_16_dispatcher;
269 parasail_pfunction_t * parasail_sg_qx_table_striped_profile_8_pointer = parasail_sg_qx_table_striped_profile_8_dispatcher;
270 parasail_pfunction_t * parasail_sg_qx_stats_table_scan_profile_64_pointer = parasail_sg_qx_stats_table_scan_profile_64_dispatcher;
271 parasail_pfunction_t * parasail_sg_qx_stats_table_scan_profile_32_pointer = parasail_sg_qx_stats_table_scan_profile_32_dispatcher;
272 parasail_pfunction_t * parasail_sg_qx_stats_table_scan_profile_16_pointer = parasail_sg_qx_stats_table_scan_profile_16_dispatcher;
273 parasail_pfunction_t * parasail_sg_qx_stats_table_scan_profile_8_pointer = parasail_sg_qx_stats_table_scan_profile_8_dispatcher;
274 parasail_pfunction_t * parasail_sg_qx_stats_table_striped_profile_64_pointer = parasail_sg_qx_stats_table_striped_profile_64_dispatcher;
275 parasail_pfunction_t * parasail_sg_qx_stats_table_striped_profile_32_pointer = parasail_sg_qx_stats_table_striped_profile_32_dispatcher;
276 parasail_pfunction_t * parasail_sg_qx_stats_table_striped_profile_16_pointer = parasail_sg_qx_stats_table_striped_profile_16_dispatcher;
277 parasail_pfunction_t * parasail_sg_qx_stats_table_striped_profile_8_pointer = parasail_sg_qx_stats_table_striped_profile_8_dispatcher;
278 parasail_pfunction_t * parasail_sg_qx_rowcol_scan_profile_64_pointer = parasail_sg_qx_rowcol_scan_profile_64_dispatcher;
279 parasail_pfunction_t * parasail_sg_qx_rowcol_scan_profile_32_pointer = parasail_sg_qx_rowcol_scan_profile_32_dispatcher;
280 parasail_pfunction_t * parasail_sg_qx_rowcol_scan_profile_16_pointer = parasail_sg_qx_rowcol_scan_profile_16_dispatcher;
281 parasail_pfunction_t * parasail_sg_qx_rowcol_scan_profile_8_pointer = parasail_sg_qx_rowcol_scan_profile_8_dispatcher;
282 parasail_pfunction_t * parasail_sg_qx_rowcol_striped_profile_64_pointer = parasail_sg_qx_rowcol_striped_profile_64_dispatcher;
283 parasail_pfunction_t * parasail_sg_qx_rowcol_striped_profile_32_pointer = parasail_sg_qx_rowcol_striped_profile_32_dispatcher;
284 parasail_pfunction_t * parasail_sg_qx_rowcol_striped_profile_16_pointer = parasail_sg_qx_rowcol_striped_profile_16_dispatcher;
285 parasail_pfunction_t * parasail_sg_qx_rowcol_striped_profile_8_pointer = parasail_sg_qx_rowcol_striped_profile_8_dispatcher;
286 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = parasail_sg_qx_stats_rowcol_scan_profile_64_dispatcher;
287 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = parasail_sg_qx_stats_rowcol_scan_profile_32_dispatcher;
288 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = parasail_sg_qx_stats_rowcol_scan_profile_16_dispatcher;
289 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = parasail_sg_qx_stats_rowcol_scan_profile_8_dispatcher;
290 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = parasail_sg_qx_stats_rowcol_striped_profile_64_dispatcher;
291 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = parasail_sg_qx_stats_rowcol_striped_profile_32_dispatcher;
292 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = parasail_sg_qx_stats_rowcol_striped_profile_16_dispatcher;
293 parasail_pfunction_t * parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = parasail_sg_qx_stats_rowcol_striped_profile_8_dispatcher;
294 parasail_pfunction_t * parasail_sg_qx_trace_scan_profile_64_pointer = parasail_sg_qx_trace_scan_profile_64_dispatcher;
295 parasail_pfunction_t * parasail_sg_qx_trace_scan_profile_32_pointer = parasail_sg_qx_trace_scan_profile_32_dispatcher;
296 parasail_pfunction_t * parasail_sg_qx_trace_scan_profile_16_pointer = parasail_sg_qx_trace_scan_profile_16_dispatcher;
297 parasail_pfunction_t * parasail_sg_qx_trace_scan_profile_8_pointer = parasail_sg_qx_trace_scan_profile_8_dispatcher;
298 parasail_pfunction_t * parasail_sg_qx_trace_striped_profile_64_pointer = parasail_sg_qx_trace_striped_profile_64_dispatcher;
299 parasail_pfunction_t * parasail_sg_qx_trace_striped_profile_32_pointer = parasail_sg_qx_trace_striped_profile_32_dispatcher;
300 parasail_pfunction_t * parasail_sg_qx_trace_striped_profile_16_pointer = parasail_sg_qx_trace_striped_profile_16_dispatcher;
301 parasail_pfunction_t * parasail_sg_qx_trace_striped_profile_8_pointer = parasail_sg_qx_trace_striped_profile_8_dispatcher;
302 #endif
303
304 /* dispatcher function implementations */
305
306 #if 0
307 parasail_result_t* parasail_sg_qx_scan_64_dispatcher(
308 const char * const restrict s1, const int s1Len,
309 const char * const restrict s2, const int s2Len,
310 const int open, const int gap,
311 const parasail_matrix_t *matrix)
312 {
313 #if HAVE_AVX2
314 if (parasail_can_use_avx2()) {
315 parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan_avx2_256_64;
316 }
317 else
318 #endif
319 #if HAVE_SSE41
320 if (parasail_can_use_sse41()) {
321 parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan_sse41_128_64;
322 }
323 else
324 #endif
325 #if HAVE_SSE2
326 if (parasail_can_use_sse2()) {
327 parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan_sse2_128_64;
328 }
329 else
330 #endif
331 #if HAVE_ALTIVEC
332 if (parasail_can_use_altivec()) {
333 parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan_altivec_128_64;
334 }
335 else
336 #endif
337 #if HAVE_NEON
338 if (parasail_can_use_neon()) {
339 parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan_neon_128_64;
340 }
341 else
342 #endif
343 {
344 parasail_sg_qx_scan_64_pointer = parasail_sg_qx_scan;
345 }
346 return parasail_sg_qx_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
347 }
348
349 parasail_result_t* parasail_sg_qx_scan_32_dispatcher(
350 const char * const restrict s1, const int s1Len,
351 const char * const restrict s2, const int s2Len,
352 const int open, const int gap,
353 const parasail_matrix_t *matrix)
354 {
355 #if HAVE_AVX2
356 if (parasail_can_use_avx2()) {
357 parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan_avx2_256_32;
358 }
359 else
360 #endif
361 #if HAVE_SSE41
362 if (parasail_can_use_sse41()) {
363 parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan_sse41_128_32;
364 }
365 else
366 #endif
367 #if HAVE_SSE2
368 if (parasail_can_use_sse2()) {
369 parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan_sse2_128_32;
370 }
371 else
372 #endif
373 #if HAVE_ALTIVEC
374 if (parasail_can_use_altivec()) {
375 parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan_altivec_128_32;
376 }
377 else
378 #endif
379 #if HAVE_NEON
380 if (parasail_can_use_neon()) {
381 parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan_neon_128_32;
382 }
383 else
384 #endif
385 {
386 parasail_sg_qx_scan_32_pointer = parasail_sg_qx_scan;
387 }
388 return parasail_sg_qx_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
389 }
390
391 parasail_result_t* parasail_sg_qx_scan_16_dispatcher(
392 const char * const restrict s1, const int s1Len,
393 const char * const restrict s2, const int s2Len,
394 const int open, const int gap,
395 const parasail_matrix_t *matrix)
396 {
397 #if HAVE_AVX2
398 if (parasail_can_use_avx2()) {
399 parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan_avx2_256_16;
400 }
401 else
402 #endif
403 #if HAVE_SSE41
404 if (parasail_can_use_sse41()) {
405 parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan_sse41_128_16;
406 }
407 else
408 #endif
409 #if HAVE_SSE2
410 if (parasail_can_use_sse2()) {
411 parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan_sse2_128_16;
412 }
413 else
414 #endif
415 #if HAVE_ALTIVEC
416 if (parasail_can_use_altivec()) {
417 parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan_altivec_128_16;
418 }
419 else
420 #endif
421 #if HAVE_NEON
422 if (parasail_can_use_neon()) {
423 parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan_neon_128_16;
424 }
425 else
426 #endif
427 {
428 parasail_sg_qx_scan_16_pointer = parasail_sg_qx_scan;
429 }
430 return parasail_sg_qx_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
431 }
432
433 parasail_result_t* parasail_sg_qx_scan_8_dispatcher(
434 const char * const restrict s1, const int s1Len,
435 const char * const restrict s2, const int s2Len,
436 const int open, const int gap,
437 const parasail_matrix_t *matrix)
438 {
439 #if HAVE_AVX2
440 if (parasail_can_use_avx2()) {
441 parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan_avx2_256_8;
442 }
443 else
444 #endif
445 #if HAVE_SSE41
446 if (parasail_can_use_sse41()) {
447 parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan_sse41_128_8;
448 }
449 else
450 #endif
451 #if HAVE_SSE2
452 if (parasail_can_use_sse2()) {
453 parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan_sse2_128_8;
454 }
455 else
456 #endif
457 #if HAVE_ALTIVEC
458 if (parasail_can_use_altivec()) {
459 parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan_altivec_128_8;
460 }
461 else
462 #endif
463 #if HAVE_NEON
464 if (parasail_can_use_neon()) {
465 parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan_neon_128_8;
466 }
467 else
468 #endif
469 {
470 parasail_sg_qx_scan_8_pointer = parasail_sg_qx_scan;
471 }
472 return parasail_sg_qx_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
473 }
474
475 parasail_result_t* parasail_sg_qx_striped_64_dispatcher(
476 const char * const restrict s1, const int s1Len,
477 const char * const restrict s2, const int s2Len,
478 const int open, const int gap,
479 const parasail_matrix_t *matrix)
480 {
481 #if HAVE_AVX2
482 if (parasail_can_use_avx2()) {
483 parasail_sg_qx_striped_64_pointer = parasail_sg_qx_striped_avx2_256_64;
484 }
485 else
486 #endif
487 #if HAVE_SSE41
488 if (parasail_can_use_sse41()) {
489 parasail_sg_qx_striped_64_pointer = parasail_sg_qx_striped_sse41_128_64;
490 }
491 else
492 #endif
493 #if HAVE_SSE2
494 if (parasail_can_use_sse2()) {
495 parasail_sg_qx_striped_64_pointer = parasail_sg_qx_striped_sse2_128_64;
496 }
497 else
498 #endif
499 #if HAVE_ALTIVEC
500 if (parasail_can_use_altivec()) {
501 parasail_sg_qx_striped_64_pointer = parasail_sg_qx_striped_altivec_128_64;
502 }
503 else
504 #endif
505 #if HAVE_NEON
506 if (parasail_can_use_neon()) {
507 parasail_sg_qx_striped_64_pointer = parasail_sg_qx_striped_neon_128_64;
508 }
509 else
510 #endif
511 {
512 parasail_sg_qx_striped_64_pointer = parasail_sg_qx;
513 }
514 return parasail_sg_qx_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
515 }
516
517 parasail_result_t* parasail_sg_qx_striped_32_dispatcher(
518 const char * const restrict s1, const int s1Len,
519 const char * const restrict s2, const int s2Len,
520 const int open, const int gap,
521 const parasail_matrix_t *matrix)
522 {
523 #if HAVE_AVX2
524 if (parasail_can_use_avx2()) {
525 parasail_sg_qx_striped_32_pointer = parasail_sg_qx_striped_avx2_256_32;
526 }
527 else
528 #endif
529 #if HAVE_SSE41
530 if (parasail_can_use_sse41()) {
531 parasail_sg_qx_striped_32_pointer = parasail_sg_qx_striped_sse41_128_32;
532 }
533 else
534 #endif
535 #if HAVE_SSE2
536 if (parasail_can_use_sse2()) {
537 parasail_sg_qx_striped_32_pointer = parasail_sg_qx_striped_sse2_128_32;
538 }
539 else
540 #endif
541 #if HAVE_ALTIVEC
542 if (parasail_can_use_altivec()) {
543 parasail_sg_qx_striped_32_pointer = parasail_sg_qx_striped_altivec_128_32;
544 }
545 else
546 #endif
547 #if HAVE_NEON
548 if (parasail_can_use_neon()) {
549 parasail_sg_qx_striped_32_pointer = parasail_sg_qx_striped_neon_128_32;
550 }
551 else
552 #endif
553 {
554 parasail_sg_qx_striped_32_pointer = parasail_sg_qx;
555 }
556 return parasail_sg_qx_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
557 }
558
559 parasail_result_t* parasail_sg_qx_striped_16_dispatcher(
560 const char * const restrict s1, const int s1Len,
561 const char * const restrict s2, const int s2Len,
562 const int open, const int gap,
563 const parasail_matrix_t *matrix)
564 {
565 #if HAVE_AVX2
566 if (parasail_can_use_avx2()) {
567 parasail_sg_qx_striped_16_pointer = parasail_sg_qx_striped_avx2_256_16;
568 }
569 else
570 #endif
571 #if HAVE_SSE41
572 if (parasail_can_use_sse41()) {
573 parasail_sg_qx_striped_16_pointer = parasail_sg_qx_striped_sse41_128_16;
574 }
575 else
576 #endif
577 #if HAVE_SSE2
578 if (parasail_can_use_sse2()) {
579 parasail_sg_qx_striped_16_pointer = parasail_sg_qx_striped_sse2_128_16;
580 }
581 else
582 #endif
583 #if HAVE_ALTIVEC
584 if (parasail_can_use_altivec()) {
585 parasail_sg_qx_striped_16_pointer = parasail_sg_qx_striped_altivec_128_16;
586 }
587 else
588 #endif
589 #if HAVE_NEON
590 if (parasail_can_use_neon()) {
591 parasail_sg_qx_striped_16_pointer = parasail_sg_qx_striped_neon_128_16;
592 }
593 else
594 #endif
595 {
596 parasail_sg_qx_striped_16_pointer = parasail_sg_qx;
597 }
598 return parasail_sg_qx_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
599 }
600
601 parasail_result_t* parasail_sg_qx_striped_8_dispatcher(
602 const char * const restrict s1, const int s1Len,
603 const char * const restrict s2, const int s2Len,
604 const int open, const int gap,
605 const parasail_matrix_t *matrix)
606 {
607 #if HAVE_AVX2
608 if (parasail_can_use_avx2()) {
609 parasail_sg_qx_striped_8_pointer = parasail_sg_qx_striped_avx2_256_8;
610 }
611 else
612 #endif
613 #if HAVE_SSE41
614 if (parasail_can_use_sse41()) {
615 parasail_sg_qx_striped_8_pointer = parasail_sg_qx_striped_sse41_128_8;
616 }
617 else
618 #endif
619 #if HAVE_SSE2
620 if (parasail_can_use_sse2()) {
621 parasail_sg_qx_striped_8_pointer = parasail_sg_qx_striped_sse2_128_8;
622 }
623 else
624 #endif
625 #if HAVE_ALTIVEC
626 if (parasail_can_use_altivec()) {
627 parasail_sg_qx_striped_8_pointer = parasail_sg_qx_striped_altivec_128_8;
628 }
629 else
630 #endif
631 #if HAVE_NEON
632 if (parasail_can_use_neon()) {
633 parasail_sg_qx_striped_8_pointer = parasail_sg_qx_striped_neon_128_8;
634 }
635 else
636 #endif
637 {
638 parasail_sg_qx_striped_8_pointer = parasail_sg_qx;
639 }
640 return parasail_sg_qx_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
641 }
642
643 parasail_result_t* parasail_sg_qx_diag_64_dispatcher(
644 const char * const restrict s1, const int s1Len,
645 const char * const restrict s2, const int s2Len,
646 const int open, const int gap,
647 const parasail_matrix_t *matrix)
648 {
649 #if HAVE_AVX2
650 if (parasail_can_use_avx2()) {
651 parasail_sg_qx_diag_64_pointer = parasail_sg_qx_diag_avx2_256_64;
652 }
653 else
654 #endif
655 #if HAVE_SSE41
656 if (parasail_can_use_sse41()) {
657 parasail_sg_qx_diag_64_pointer = parasail_sg_qx_diag_sse41_128_64;
658 }
659 else
660 #endif
661 #if HAVE_SSE2
662 if (parasail_can_use_sse2()) {
663 parasail_sg_qx_diag_64_pointer = parasail_sg_qx_diag_sse2_128_64;
664 }
665 else
666 #endif
667 #if HAVE_ALTIVEC
668 if (parasail_can_use_altivec()) {
669 parasail_sg_qx_diag_64_pointer = parasail_sg_qx_diag_altivec_128_64;
670 }
671 else
672 #endif
673 #if HAVE_NEON
674 if (parasail_can_use_neon()) {
675 parasail_sg_qx_diag_64_pointer = parasail_sg_qx_diag_neon_128_64;
676 }
677 else
678 #endif
679 {
680 parasail_sg_qx_diag_64_pointer = parasail_sg_qx;
681 }
682 return parasail_sg_qx_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
683 }
684
685 parasail_result_t* parasail_sg_qx_diag_32_dispatcher(
686 const char * const restrict s1, const int s1Len,
687 const char * const restrict s2, const int s2Len,
688 const int open, const int gap,
689 const parasail_matrix_t *matrix)
690 {
691 #if HAVE_AVX2
692 if (parasail_can_use_avx2()) {
693 parasail_sg_qx_diag_32_pointer = parasail_sg_qx_diag_avx2_256_32;
694 }
695 else
696 #endif
697 #if HAVE_SSE41
698 if (parasail_can_use_sse41()) {
699 parasail_sg_qx_diag_32_pointer = parasail_sg_qx_diag_sse41_128_32;
700 }
701 else
702 #endif
703 #if HAVE_SSE2
704 if (parasail_can_use_sse2()) {
705 parasail_sg_qx_diag_32_pointer = parasail_sg_qx_diag_sse2_128_32;
706 }
707 else
708 #endif
709 #if HAVE_ALTIVEC
710 if (parasail_can_use_altivec()) {
711 parasail_sg_qx_diag_32_pointer = parasail_sg_qx_diag_altivec_128_32;
712 }
713 else
714 #endif
715 #if HAVE_NEON
716 if (parasail_can_use_neon()) {
717 parasail_sg_qx_diag_32_pointer = parasail_sg_qx_diag_neon_128_32;
718 }
719 else
720 #endif
721 {
722 parasail_sg_qx_diag_32_pointer = parasail_sg_qx;
723 }
724 return parasail_sg_qx_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
725 }
726
727 parasail_result_t* parasail_sg_qx_diag_16_dispatcher(
728 const char * const restrict s1, const int s1Len,
729 const char * const restrict s2, const int s2Len,
730 const int open, const int gap,
731 const parasail_matrix_t *matrix)
732 {
733 #if HAVE_AVX2
734 if (parasail_can_use_avx2()) {
735 parasail_sg_qx_diag_16_pointer = parasail_sg_qx_diag_avx2_256_16;
736 }
737 else
738 #endif
739 #if HAVE_SSE41
740 if (parasail_can_use_sse41()) {
741 parasail_sg_qx_diag_16_pointer = parasail_sg_qx_diag_sse41_128_16;
742 }
743 else
744 #endif
745 #if HAVE_SSE2
746 if (parasail_can_use_sse2()) {
747 parasail_sg_qx_diag_16_pointer = parasail_sg_qx_diag_sse2_128_16;
748 }
749 else
750 #endif
751 #if HAVE_ALTIVEC
752 if (parasail_can_use_altivec()) {
753 parasail_sg_qx_diag_16_pointer = parasail_sg_qx_diag_altivec_128_16;
754 }
755 else
756 #endif
757 #if HAVE_NEON
758 if (parasail_can_use_neon()) {
759 parasail_sg_qx_diag_16_pointer = parasail_sg_qx_diag_neon_128_16;
760 }
761 else
762 #endif
763 {
764 parasail_sg_qx_diag_16_pointer = parasail_sg_qx;
765 }
766 return parasail_sg_qx_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
767 }
768
769 parasail_result_t* parasail_sg_qx_diag_8_dispatcher(
770 const char * const restrict s1, const int s1Len,
771 const char * const restrict s2, const int s2Len,
772 const int open, const int gap,
773 const parasail_matrix_t *matrix)
774 {
775 #if HAVE_AVX2
776 if (parasail_can_use_avx2()) {
777 parasail_sg_qx_diag_8_pointer = parasail_sg_qx_diag_avx2_256_8;
778 }
779 else
780 #endif
781 #if HAVE_SSE41
782 if (parasail_can_use_sse41()) {
783 parasail_sg_qx_diag_8_pointer = parasail_sg_qx_diag_sse41_128_8;
784 }
785 else
786 #endif
787 #if HAVE_SSE2
788 if (parasail_can_use_sse2()) {
789 parasail_sg_qx_diag_8_pointer = parasail_sg_qx_diag_sse2_128_8;
790 }
791 else
792 #endif
793 #if HAVE_ALTIVEC
794 if (parasail_can_use_altivec()) {
795 parasail_sg_qx_diag_8_pointer = parasail_sg_qx_diag_altivec_128_8;
796 }
797 else
798 #endif
799 #if HAVE_NEON
800 if (parasail_can_use_neon()) {
801 parasail_sg_qx_diag_8_pointer = parasail_sg_qx_diag_neon_128_8;
802 }
803 else
804 #endif
805 {
806 parasail_sg_qx_diag_8_pointer = parasail_sg_qx;
807 }
808 return parasail_sg_qx_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
809 }
810
811 parasail_result_t* parasail_sg_qx_stats_scan_64_dispatcher(
812 const char * const restrict s1, const int s1Len,
813 const char * const restrict s2, const int s2Len,
814 const int open, const int gap,
815 const parasail_matrix_t *matrix)
816 {
817 #if HAVE_AVX2
818 if (parasail_can_use_avx2()) {
819 parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_stats_scan_avx2_256_64;
820 }
821 else
822 #endif
823 #if HAVE_SSE41
824 if (parasail_can_use_sse41()) {
825 parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_stats_scan_sse41_128_64;
826 }
827 else
828 #endif
829 #if HAVE_SSE2
830 if (parasail_can_use_sse2()) {
831 parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_stats_scan_sse2_128_64;
832 }
833 else
834 #endif
835 #if HAVE_ALTIVEC
836 if (parasail_can_use_altivec()) {
837 parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_stats_scan_altivec_128_64;
838 }
839 else
840 #endif
841 #if HAVE_NEON
842 if (parasail_can_use_neon()) {
843 parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_stats_scan_neon_128_64;
844 }
845 else
846 #endif
847 {
848 parasail_sg_qx_stats_scan_64_pointer = parasail_sg_qx_scan;
849 }
850 return parasail_sg_qx_stats_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
851 }
852
853 parasail_result_t* parasail_sg_qx_stats_scan_32_dispatcher(
854 const char * const restrict s1, const int s1Len,
855 const char * const restrict s2, const int s2Len,
856 const int open, const int gap,
857 const parasail_matrix_t *matrix)
858 {
859 #if HAVE_AVX2
860 if (parasail_can_use_avx2()) {
861 parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_stats_scan_avx2_256_32;
862 }
863 else
864 #endif
865 #if HAVE_SSE41
866 if (parasail_can_use_sse41()) {
867 parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_stats_scan_sse41_128_32;
868 }
869 else
870 #endif
871 #if HAVE_SSE2
872 if (parasail_can_use_sse2()) {
873 parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_stats_scan_sse2_128_32;
874 }
875 else
876 #endif
877 #if HAVE_ALTIVEC
878 if (parasail_can_use_altivec()) {
879 parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_stats_scan_altivec_128_32;
880 }
881 else
882 #endif
883 #if HAVE_NEON
884 if (parasail_can_use_neon()) {
885 parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_stats_scan_neon_128_32;
886 }
887 else
888 #endif
889 {
890 parasail_sg_qx_stats_scan_32_pointer = parasail_sg_qx_scan;
891 }
892 return parasail_sg_qx_stats_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
893 }
894
895 parasail_result_t* parasail_sg_qx_stats_scan_16_dispatcher(
896 const char * const restrict s1, const int s1Len,
897 const char * const restrict s2, const int s2Len,
898 const int open, const int gap,
899 const parasail_matrix_t *matrix)
900 {
901 #if HAVE_AVX2
902 if (parasail_can_use_avx2()) {
903 parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_stats_scan_avx2_256_16;
904 }
905 else
906 #endif
907 #if HAVE_SSE41
908 if (parasail_can_use_sse41()) {
909 parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_stats_scan_sse41_128_16;
910 }
911 else
912 #endif
913 #if HAVE_SSE2
914 if (parasail_can_use_sse2()) {
915 parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_stats_scan_sse2_128_16;
916 }
917 else
918 #endif
919 #if HAVE_ALTIVEC
920 if (parasail_can_use_altivec()) {
921 parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_stats_scan_altivec_128_16;
922 }
923 else
924 #endif
925 #if HAVE_NEON
926 if (parasail_can_use_neon()) {
927 parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_stats_scan_neon_128_16;
928 }
929 else
930 #endif
931 {
932 parasail_sg_qx_stats_scan_16_pointer = parasail_sg_qx_scan;
933 }
934 return parasail_sg_qx_stats_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
935 }
936
937 parasail_result_t* parasail_sg_qx_stats_scan_8_dispatcher(
938 const char * const restrict s1, const int s1Len,
939 const char * const restrict s2, const int s2Len,
940 const int open, const int gap,
941 const parasail_matrix_t *matrix)
942 {
943 #if HAVE_AVX2
944 if (parasail_can_use_avx2()) {
945 parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_stats_scan_avx2_256_8;
946 }
947 else
948 #endif
949 #if HAVE_SSE41
950 if (parasail_can_use_sse41()) {
951 parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_stats_scan_sse41_128_8;
952 }
953 else
954 #endif
955 #if HAVE_SSE2
956 if (parasail_can_use_sse2()) {
957 parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_stats_scan_sse2_128_8;
958 }
959 else
960 #endif
961 #if HAVE_ALTIVEC
962 if (parasail_can_use_altivec()) {
963 parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_stats_scan_altivec_128_8;
964 }
965 else
966 #endif
967 #if HAVE_NEON
968 if (parasail_can_use_neon()) {
969 parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_stats_scan_neon_128_8;
970 }
971 else
972 #endif
973 {
974 parasail_sg_qx_stats_scan_8_pointer = parasail_sg_qx_scan;
975 }
976 return parasail_sg_qx_stats_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
977 }
978
979 parasail_result_t* parasail_sg_qx_stats_striped_64_dispatcher(
980 const char * const restrict s1, const int s1Len,
981 const char * const restrict s2, const int s2Len,
982 const int open, const int gap,
983 const parasail_matrix_t *matrix)
984 {
985 #if HAVE_AVX2
986 if (parasail_can_use_avx2()) {
987 parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx_stats_striped_avx2_256_64;
988 }
989 else
990 #endif
991 #if HAVE_SSE41
992 if (parasail_can_use_sse41()) {
993 parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx_stats_striped_sse41_128_64;
994 }
995 else
996 #endif
997 #if HAVE_SSE2
998 if (parasail_can_use_sse2()) {
999 parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx_stats_striped_sse2_128_64;
1000 }
1001 else
1002 #endif
1003 #if HAVE_ALTIVEC
1004 if (parasail_can_use_altivec()) {
1005 parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx_stats_striped_altivec_128_64;
1006 }
1007 else
1008 #endif
1009 #if HAVE_NEON
1010 if (parasail_can_use_neon()) {
1011 parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx_stats_striped_neon_128_64;
1012 }
1013 else
1014 #endif
1015 {
1016 parasail_sg_qx_stats_striped_64_pointer = parasail_sg_qx;
1017 }
1018 return parasail_sg_qx_stats_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1019 }
1020
1021 parasail_result_t* parasail_sg_qx_stats_striped_32_dispatcher(
1022 const char * const restrict s1, const int s1Len,
1023 const char * const restrict s2, const int s2Len,
1024 const int open, const int gap,
1025 const parasail_matrix_t *matrix)
1026 {
1027 #if HAVE_AVX2
1028 if (parasail_can_use_avx2()) {
1029 parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx_stats_striped_avx2_256_32;
1030 }
1031 else
1032 #endif
1033 #if HAVE_SSE41
1034 if (parasail_can_use_sse41()) {
1035 parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx_stats_striped_sse41_128_32;
1036 }
1037 else
1038 #endif
1039 #if HAVE_SSE2
1040 if (parasail_can_use_sse2()) {
1041 parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx_stats_striped_sse2_128_32;
1042 }
1043 else
1044 #endif
1045 #if HAVE_ALTIVEC
1046 if (parasail_can_use_altivec()) {
1047 parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx_stats_striped_altivec_128_32;
1048 }
1049 else
1050 #endif
1051 #if HAVE_NEON
1052 if (parasail_can_use_neon()) {
1053 parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx_stats_striped_neon_128_32;
1054 }
1055 else
1056 #endif
1057 {
1058 parasail_sg_qx_stats_striped_32_pointer = parasail_sg_qx;
1059 }
1060 return parasail_sg_qx_stats_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1061 }
1062
1063 parasail_result_t* parasail_sg_qx_stats_striped_16_dispatcher(
1064 const char * const restrict s1, const int s1Len,
1065 const char * const restrict s2, const int s2Len,
1066 const int open, const int gap,
1067 const parasail_matrix_t *matrix)
1068 {
1069 #if HAVE_AVX2
1070 if (parasail_can_use_avx2()) {
1071 parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx_stats_striped_avx2_256_16;
1072 }
1073 else
1074 #endif
1075 #if HAVE_SSE41
1076 if (parasail_can_use_sse41()) {
1077 parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx_stats_striped_sse41_128_16;
1078 }
1079 else
1080 #endif
1081 #if HAVE_SSE2
1082 if (parasail_can_use_sse2()) {
1083 parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx_stats_striped_sse2_128_16;
1084 }
1085 else
1086 #endif
1087 #if HAVE_ALTIVEC
1088 if (parasail_can_use_altivec()) {
1089 parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx_stats_striped_altivec_128_16;
1090 }
1091 else
1092 #endif
1093 #if HAVE_NEON
1094 if (parasail_can_use_neon()) {
1095 parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx_stats_striped_neon_128_16;
1096 }
1097 else
1098 #endif
1099 {
1100 parasail_sg_qx_stats_striped_16_pointer = parasail_sg_qx;
1101 }
1102 return parasail_sg_qx_stats_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1103 }
1104
1105 parasail_result_t* parasail_sg_qx_stats_striped_8_dispatcher(
1106 const char * const restrict s1, const int s1Len,
1107 const char * const restrict s2, const int s2Len,
1108 const int open, const int gap,
1109 const parasail_matrix_t *matrix)
1110 {
1111 #if HAVE_AVX2
1112 if (parasail_can_use_avx2()) {
1113 parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx_stats_striped_avx2_256_8;
1114 }
1115 else
1116 #endif
1117 #if HAVE_SSE41
1118 if (parasail_can_use_sse41()) {
1119 parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx_stats_striped_sse41_128_8;
1120 }
1121 else
1122 #endif
1123 #if HAVE_SSE2
1124 if (parasail_can_use_sse2()) {
1125 parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx_stats_striped_sse2_128_8;
1126 }
1127 else
1128 #endif
1129 #if HAVE_ALTIVEC
1130 if (parasail_can_use_altivec()) {
1131 parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx_stats_striped_altivec_128_8;
1132 }
1133 else
1134 #endif
1135 #if HAVE_NEON
1136 if (parasail_can_use_neon()) {
1137 parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx_stats_striped_neon_128_8;
1138 }
1139 else
1140 #endif
1141 {
1142 parasail_sg_qx_stats_striped_8_pointer = parasail_sg_qx;
1143 }
1144 return parasail_sg_qx_stats_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1145 }
1146
1147 parasail_result_t* parasail_sg_qx_stats_diag_64_dispatcher(
1148 const char * const restrict s1, const int s1Len,
1149 const char * const restrict s2, const int s2Len,
1150 const int open, const int gap,
1151 const parasail_matrix_t *matrix)
1152 {
1153 #if HAVE_AVX2
1154 if (parasail_can_use_avx2()) {
1155 parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx_stats_diag_avx2_256_64;
1156 }
1157 else
1158 #endif
1159 #if HAVE_SSE41
1160 if (parasail_can_use_sse41()) {
1161 parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx_stats_diag_sse41_128_64;
1162 }
1163 else
1164 #endif
1165 #if HAVE_SSE2
1166 if (parasail_can_use_sse2()) {
1167 parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx_stats_diag_sse2_128_64;
1168 }
1169 else
1170 #endif
1171 #if HAVE_ALTIVEC
1172 if (parasail_can_use_altivec()) {
1173 parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx_stats_diag_altivec_128_64;
1174 }
1175 else
1176 #endif
1177 #if HAVE_NEON
1178 if (parasail_can_use_neon()) {
1179 parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx_stats_diag_neon_128_64;
1180 }
1181 else
1182 #endif
1183 {
1184 parasail_sg_qx_stats_diag_64_pointer = parasail_sg_qx;
1185 }
1186 return parasail_sg_qx_stats_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1187 }
1188
1189 parasail_result_t* parasail_sg_qx_stats_diag_32_dispatcher(
1190 const char * const restrict s1, const int s1Len,
1191 const char * const restrict s2, const int s2Len,
1192 const int open, const int gap,
1193 const parasail_matrix_t *matrix)
1194 {
1195 #if HAVE_AVX2
1196 if (parasail_can_use_avx2()) {
1197 parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx_stats_diag_avx2_256_32;
1198 }
1199 else
1200 #endif
1201 #if HAVE_SSE41
1202 if (parasail_can_use_sse41()) {
1203 parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx_stats_diag_sse41_128_32;
1204 }
1205 else
1206 #endif
1207 #if HAVE_SSE2
1208 if (parasail_can_use_sse2()) {
1209 parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx_stats_diag_sse2_128_32;
1210 }
1211 else
1212 #endif
1213 #if HAVE_ALTIVEC
1214 if (parasail_can_use_altivec()) {
1215 parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx_stats_diag_altivec_128_32;
1216 }
1217 else
1218 #endif
1219 #if HAVE_NEON
1220 if (parasail_can_use_neon()) {
1221 parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx_stats_diag_neon_128_32;
1222 }
1223 else
1224 #endif
1225 {
1226 parasail_sg_qx_stats_diag_32_pointer = parasail_sg_qx;
1227 }
1228 return parasail_sg_qx_stats_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1229 }
1230
1231 parasail_result_t* parasail_sg_qx_stats_diag_16_dispatcher(
1232 const char * const restrict s1, const int s1Len,
1233 const char * const restrict s2, const int s2Len,
1234 const int open, const int gap,
1235 const parasail_matrix_t *matrix)
1236 {
1237 #if HAVE_AVX2
1238 if (parasail_can_use_avx2()) {
1239 parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx_stats_diag_avx2_256_16;
1240 }
1241 else
1242 #endif
1243 #if HAVE_SSE41
1244 if (parasail_can_use_sse41()) {
1245 parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx_stats_diag_sse41_128_16;
1246 }
1247 else
1248 #endif
1249 #if HAVE_SSE2
1250 if (parasail_can_use_sse2()) {
1251 parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx_stats_diag_sse2_128_16;
1252 }
1253 else
1254 #endif
1255 #if HAVE_ALTIVEC
1256 if (parasail_can_use_altivec()) {
1257 parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx_stats_diag_altivec_128_16;
1258 }
1259 else
1260 #endif
1261 #if HAVE_NEON
1262 if (parasail_can_use_neon()) {
1263 parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx_stats_diag_neon_128_16;
1264 }
1265 else
1266 #endif
1267 {
1268 parasail_sg_qx_stats_diag_16_pointer = parasail_sg_qx;
1269 }
1270 return parasail_sg_qx_stats_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1271 }
1272
1273 parasail_result_t* parasail_sg_qx_stats_diag_8_dispatcher(
1274 const char * const restrict s1, const int s1Len,
1275 const char * const restrict s2, const int s2Len,
1276 const int open, const int gap,
1277 const parasail_matrix_t *matrix)
1278 {
1279 #if HAVE_AVX2
1280 if (parasail_can_use_avx2()) {
1281 parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx_stats_diag_avx2_256_8;
1282 }
1283 else
1284 #endif
1285 #if HAVE_SSE41
1286 if (parasail_can_use_sse41()) {
1287 parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx_stats_diag_sse41_128_8;
1288 }
1289 else
1290 #endif
1291 #if HAVE_SSE2
1292 if (parasail_can_use_sse2()) {
1293 parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx_stats_diag_sse2_128_8;
1294 }
1295 else
1296 #endif
1297 #if HAVE_ALTIVEC
1298 if (parasail_can_use_altivec()) {
1299 parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx_stats_diag_altivec_128_8;
1300 }
1301 else
1302 #endif
1303 #if HAVE_NEON
1304 if (parasail_can_use_neon()) {
1305 parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx_stats_diag_neon_128_8;
1306 }
1307 else
1308 #endif
1309 {
1310 parasail_sg_qx_stats_diag_8_pointer = parasail_sg_qx;
1311 }
1312 return parasail_sg_qx_stats_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1313 }
1314
1315 parasail_result_t* parasail_sg_qx_table_scan_64_dispatcher(
1316 const char * const restrict s1, const int s1Len,
1317 const char * const restrict s2, const int s2Len,
1318 const int open, const int gap,
1319 const parasail_matrix_t *matrix)
1320 {
1321 #if HAVE_AVX2
1322 if (parasail_can_use_avx2()) {
1323 parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_table_scan_avx2_256_64;
1324 }
1325 else
1326 #endif
1327 #if HAVE_SSE41
1328 if (parasail_can_use_sse41()) {
1329 parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_table_scan_sse41_128_64;
1330 }
1331 else
1332 #endif
1333 #if HAVE_SSE2
1334 if (parasail_can_use_sse2()) {
1335 parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_table_scan_sse2_128_64;
1336 }
1337 else
1338 #endif
1339 #if HAVE_ALTIVEC
1340 if (parasail_can_use_altivec()) {
1341 parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_table_scan_altivec_128_64;
1342 }
1343 else
1344 #endif
1345 #if HAVE_NEON
1346 if (parasail_can_use_neon()) {
1347 parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_table_scan_neon_128_64;
1348 }
1349 else
1350 #endif
1351 {
1352 parasail_sg_qx_table_scan_64_pointer = parasail_sg_qx_scan;
1353 }
1354 return parasail_sg_qx_table_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1355 }
1356
1357 parasail_result_t* parasail_sg_qx_table_scan_32_dispatcher(
1358 const char * const restrict s1, const int s1Len,
1359 const char * const restrict s2, const int s2Len,
1360 const int open, const int gap,
1361 const parasail_matrix_t *matrix)
1362 {
1363 #if HAVE_AVX2
1364 if (parasail_can_use_avx2()) {
1365 parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_table_scan_avx2_256_32;
1366 }
1367 else
1368 #endif
1369 #if HAVE_SSE41
1370 if (parasail_can_use_sse41()) {
1371 parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_table_scan_sse41_128_32;
1372 }
1373 else
1374 #endif
1375 #if HAVE_SSE2
1376 if (parasail_can_use_sse2()) {
1377 parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_table_scan_sse2_128_32;
1378 }
1379 else
1380 #endif
1381 #if HAVE_ALTIVEC
1382 if (parasail_can_use_altivec()) {
1383 parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_table_scan_altivec_128_32;
1384 }
1385 else
1386 #endif
1387 #if HAVE_NEON
1388 if (parasail_can_use_neon()) {
1389 parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_table_scan_neon_128_32;
1390 }
1391 else
1392 #endif
1393 {
1394 parasail_sg_qx_table_scan_32_pointer = parasail_sg_qx_scan;
1395 }
1396 return parasail_sg_qx_table_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1397 }
1398
1399 parasail_result_t* parasail_sg_qx_table_scan_16_dispatcher(
1400 const char * const restrict s1, const int s1Len,
1401 const char * const restrict s2, const int s2Len,
1402 const int open, const int gap,
1403 const parasail_matrix_t *matrix)
1404 {
1405 #if HAVE_AVX2
1406 if (parasail_can_use_avx2()) {
1407 parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_table_scan_avx2_256_16;
1408 }
1409 else
1410 #endif
1411 #if HAVE_SSE41
1412 if (parasail_can_use_sse41()) {
1413 parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_table_scan_sse41_128_16;
1414 }
1415 else
1416 #endif
1417 #if HAVE_SSE2
1418 if (parasail_can_use_sse2()) {
1419 parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_table_scan_sse2_128_16;
1420 }
1421 else
1422 #endif
1423 #if HAVE_ALTIVEC
1424 if (parasail_can_use_altivec()) {
1425 parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_table_scan_altivec_128_16;
1426 }
1427 else
1428 #endif
1429 #if HAVE_NEON
1430 if (parasail_can_use_neon()) {
1431 parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_table_scan_neon_128_16;
1432 }
1433 else
1434 #endif
1435 {
1436 parasail_sg_qx_table_scan_16_pointer = parasail_sg_qx_scan;
1437 }
1438 return parasail_sg_qx_table_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1439 }
1440
1441 parasail_result_t* parasail_sg_qx_table_scan_8_dispatcher(
1442 const char * const restrict s1, const int s1Len,
1443 const char * const restrict s2, const int s2Len,
1444 const int open, const int gap,
1445 const parasail_matrix_t *matrix)
1446 {
1447 #if HAVE_AVX2
1448 if (parasail_can_use_avx2()) {
1449 parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_table_scan_avx2_256_8;
1450 }
1451 else
1452 #endif
1453 #if HAVE_SSE41
1454 if (parasail_can_use_sse41()) {
1455 parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_table_scan_sse41_128_8;
1456 }
1457 else
1458 #endif
1459 #if HAVE_SSE2
1460 if (parasail_can_use_sse2()) {
1461 parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_table_scan_sse2_128_8;
1462 }
1463 else
1464 #endif
1465 #if HAVE_ALTIVEC
1466 if (parasail_can_use_altivec()) {
1467 parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_table_scan_altivec_128_8;
1468 }
1469 else
1470 #endif
1471 #if HAVE_NEON
1472 if (parasail_can_use_neon()) {
1473 parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_table_scan_neon_128_8;
1474 }
1475 else
1476 #endif
1477 {
1478 parasail_sg_qx_table_scan_8_pointer = parasail_sg_qx_scan;
1479 }
1480 return parasail_sg_qx_table_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1481 }
1482
1483 parasail_result_t* parasail_sg_qx_table_striped_64_dispatcher(
1484 const char * const restrict s1, const int s1Len,
1485 const char * const restrict s2, const int s2Len,
1486 const int open, const int gap,
1487 const parasail_matrix_t *matrix)
1488 {
1489 #if HAVE_AVX2
1490 if (parasail_can_use_avx2()) {
1491 parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx_table_striped_avx2_256_64;
1492 }
1493 else
1494 #endif
1495 #if HAVE_SSE41
1496 if (parasail_can_use_sse41()) {
1497 parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx_table_striped_sse41_128_64;
1498 }
1499 else
1500 #endif
1501 #if HAVE_SSE2
1502 if (parasail_can_use_sse2()) {
1503 parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx_table_striped_sse2_128_64;
1504 }
1505 else
1506 #endif
1507 #if HAVE_ALTIVEC
1508 if (parasail_can_use_altivec()) {
1509 parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx_table_striped_altivec_128_64;
1510 }
1511 else
1512 #endif
1513 #if HAVE_NEON
1514 if (parasail_can_use_neon()) {
1515 parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx_table_striped_neon_128_64;
1516 }
1517 else
1518 #endif
1519 {
1520 parasail_sg_qx_table_striped_64_pointer = parasail_sg_qx;
1521 }
1522 return parasail_sg_qx_table_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1523 }
1524
1525 parasail_result_t* parasail_sg_qx_table_striped_32_dispatcher(
1526 const char * const restrict s1, const int s1Len,
1527 const char * const restrict s2, const int s2Len,
1528 const int open, const int gap,
1529 const parasail_matrix_t *matrix)
1530 {
1531 #if HAVE_AVX2
1532 if (parasail_can_use_avx2()) {
1533 parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx_table_striped_avx2_256_32;
1534 }
1535 else
1536 #endif
1537 #if HAVE_SSE41
1538 if (parasail_can_use_sse41()) {
1539 parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx_table_striped_sse41_128_32;
1540 }
1541 else
1542 #endif
1543 #if HAVE_SSE2
1544 if (parasail_can_use_sse2()) {
1545 parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx_table_striped_sse2_128_32;
1546 }
1547 else
1548 #endif
1549 #if HAVE_ALTIVEC
1550 if (parasail_can_use_altivec()) {
1551 parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx_table_striped_altivec_128_32;
1552 }
1553 else
1554 #endif
1555 #if HAVE_NEON
1556 if (parasail_can_use_neon()) {
1557 parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx_table_striped_neon_128_32;
1558 }
1559 else
1560 #endif
1561 {
1562 parasail_sg_qx_table_striped_32_pointer = parasail_sg_qx;
1563 }
1564 return parasail_sg_qx_table_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1565 }
1566
1567 parasail_result_t* parasail_sg_qx_table_striped_16_dispatcher(
1568 const char * const restrict s1, const int s1Len,
1569 const char * const restrict s2, const int s2Len,
1570 const int open, const int gap,
1571 const parasail_matrix_t *matrix)
1572 {
1573 #if HAVE_AVX2
1574 if (parasail_can_use_avx2()) {
1575 parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx_table_striped_avx2_256_16;
1576 }
1577 else
1578 #endif
1579 #if HAVE_SSE41
1580 if (parasail_can_use_sse41()) {
1581 parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx_table_striped_sse41_128_16;
1582 }
1583 else
1584 #endif
1585 #if HAVE_SSE2
1586 if (parasail_can_use_sse2()) {
1587 parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx_table_striped_sse2_128_16;
1588 }
1589 else
1590 #endif
1591 #if HAVE_ALTIVEC
1592 if (parasail_can_use_altivec()) {
1593 parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx_table_striped_altivec_128_16;
1594 }
1595 else
1596 #endif
1597 #if HAVE_NEON
1598 if (parasail_can_use_neon()) {
1599 parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx_table_striped_neon_128_16;
1600 }
1601 else
1602 #endif
1603 {
1604 parasail_sg_qx_table_striped_16_pointer = parasail_sg_qx;
1605 }
1606 return parasail_sg_qx_table_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1607 }
1608
1609 parasail_result_t* parasail_sg_qx_table_striped_8_dispatcher(
1610 const char * const restrict s1, const int s1Len,
1611 const char * const restrict s2, const int s2Len,
1612 const int open, const int gap,
1613 const parasail_matrix_t *matrix)
1614 {
1615 #if HAVE_AVX2
1616 if (parasail_can_use_avx2()) {
1617 parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx_table_striped_avx2_256_8;
1618 }
1619 else
1620 #endif
1621 #if HAVE_SSE41
1622 if (parasail_can_use_sse41()) {
1623 parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx_table_striped_sse41_128_8;
1624 }
1625 else
1626 #endif
1627 #if HAVE_SSE2
1628 if (parasail_can_use_sse2()) {
1629 parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx_table_striped_sse2_128_8;
1630 }
1631 else
1632 #endif
1633 #if HAVE_ALTIVEC
1634 if (parasail_can_use_altivec()) {
1635 parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx_table_striped_altivec_128_8;
1636 }
1637 else
1638 #endif
1639 #if HAVE_NEON
1640 if (parasail_can_use_neon()) {
1641 parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx_table_striped_neon_128_8;
1642 }
1643 else
1644 #endif
1645 {
1646 parasail_sg_qx_table_striped_8_pointer = parasail_sg_qx;
1647 }
1648 return parasail_sg_qx_table_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1649 }
1650
1651 parasail_result_t* parasail_sg_qx_table_diag_64_dispatcher(
1652 const char * const restrict s1, const int s1Len,
1653 const char * const restrict s2, const int s2Len,
1654 const int open, const int gap,
1655 const parasail_matrix_t *matrix)
1656 {
1657 #if HAVE_AVX2
1658 if (parasail_can_use_avx2()) {
1659 parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx_table_diag_avx2_256_64;
1660 }
1661 else
1662 #endif
1663 #if HAVE_SSE41
1664 if (parasail_can_use_sse41()) {
1665 parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx_table_diag_sse41_128_64;
1666 }
1667 else
1668 #endif
1669 #if HAVE_SSE2
1670 if (parasail_can_use_sse2()) {
1671 parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx_table_diag_sse2_128_64;
1672 }
1673 else
1674 #endif
1675 #if HAVE_ALTIVEC
1676 if (parasail_can_use_altivec()) {
1677 parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx_table_diag_altivec_128_64;
1678 }
1679 else
1680 #endif
1681 #if HAVE_NEON
1682 if (parasail_can_use_neon()) {
1683 parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx_table_diag_neon_128_64;
1684 }
1685 else
1686 #endif
1687 {
1688 parasail_sg_qx_table_diag_64_pointer = parasail_sg_qx;
1689 }
1690 return parasail_sg_qx_table_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1691 }
1692
1693 parasail_result_t* parasail_sg_qx_table_diag_32_dispatcher(
1694 const char * const restrict s1, const int s1Len,
1695 const char * const restrict s2, const int s2Len,
1696 const int open, const int gap,
1697 const parasail_matrix_t *matrix)
1698 {
1699 #if HAVE_AVX2
1700 if (parasail_can_use_avx2()) {
1701 parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx_table_diag_avx2_256_32;
1702 }
1703 else
1704 #endif
1705 #if HAVE_SSE41
1706 if (parasail_can_use_sse41()) {
1707 parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx_table_diag_sse41_128_32;
1708 }
1709 else
1710 #endif
1711 #if HAVE_SSE2
1712 if (parasail_can_use_sse2()) {
1713 parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx_table_diag_sse2_128_32;
1714 }
1715 else
1716 #endif
1717 #if HAVE_ALTIVEC
1718 if (parasail_can_use_altivec()) {
1719 parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx_table_diag_altivec_128_32;
1720 }
1721 else
1722 #endif
1723 #if HAVE_NEON
1724 if (parasail_can_use_neon()) {
1725 parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx_table_diag_neon_128_32;
1726 }
1727 else
1728 #endif
1729 {
1730 parasail_sg_qx_table_diag_32_pointer = parasail_sg_qx;
1731 }
1732 return parasail_sg_qx_table_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1733 }
1734
1735 parasail_result_t* parasail_sg_qx_table_diag_16_dispatcher(
1736 const char * const restrict s1, const int s1Len,
1737 const char * const restrict s2, const int s2Len,
1738 const int open, const int gap,
1739 const parasail_matrix_t *matrix)
1740 {
1741 #if HAVE_AVX2
1742 if (parasail_can_use_avx2()) {
1743 parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx_table_diag_avx2_256_16;
1744 }
1745 else
1746 #endif
1747 #if HAVE_SSE41
1748 if (parasail_can_use_sse41()) {
1749 parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx_table_diag_sse41_128_16;
1750 }
1751 else
1752 #endif
1753 #if HAVE_SSE2
1754 if (parasail_can_use_sse2()) {
1755 parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx_table_diag_sse2_128_16;
1756 }
1757 else
1758 #endif
1759 #if HAVE_ALTIVEC
1760 if (parasail_can_use_altivec()) {
1761 parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx_table_diag_altivec_128_16;
1762 }
1763 else
1764 #endif
1765 #if HAVE_NEON
1766 if (parasail_can_use_neon()) {
1767 parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx_table_diag_neon_128_16;
1768 }
1769 else
1770 #endif
1771 {
1772 parasail_sg_qx_table_diag_16_pointer = parasail_sg_qx;
1773 }
1774 return parasail_sg_qx_table_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1775 }
1776
1777 parasail_result_t* parasail_sg_qx_table_diag_8_dispatcher(
1778 const char * const restrict s1, const int s1Len,
1779 const char * const restrict s2, const int s2Len,
1780 const int open, const int gap,
1781 const parasail_matrix_t *matrix)
1782 {
1783 #if HAVE_AVX2
1784 if (parasail_can_use_avx2()) {
1785 parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx_table_diag_avx2_256_8;
1786 }
1787 else
1788 #endif
1789 #if HAVE_SSE41
1790 if (parasail_can_use_sse41()) {
1791 parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx_table_diag_sse41_128_8;
1792 }
1793 else
1794 #endif
1795 #if HAVE_SSE2
1796 if (parasail_can_use_sse2()) {
1797 parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx_table_diag_sse2_128_8;
1798 }
1799 else
1800 #endif
1801 #if HAVE_ALTIVEC
1802 if (parasail_can_use_altivec()) {
1803 parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx_table_diag_altivec_128_8;
1804 }
1805 else
1806 #endif
1807 #if HAVE_NEON
1808 if (parasail_can_use_neon()) {
1809 parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx_table_diag_neon_128_8;
1810 }
1811 else
1812 #endif
1813 {
1814 parasail_sg_qx_table_diag_8_pointer = parasail_sg_qx;
1815 }
1816 return parasail_sg_qx_table_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1817 }
1818
1819 parasail_result_t* parasail_sg_qx_stats_table_scan_64_dispatcher(
1820 const char * const restrict s1, const int s1Len,
1821 const char * const restrict s2, const int s2Len,
1822 const int open, const int gap,
1823 const parasail_matrix_t *matrix)
1824 {
1825 #if HAVE_AVX2
1826 if (parasail_can_use_avx2()) {
1827 parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_stats_table_scan_avx2_256_64;
1828 }
1829 else
1830 #endif
1831 #if HAVE_SSE41
1832 if (parasail_can_use_sse41()) {
1833 parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_stats_table_scan_sse41_128_64;
1834 }
1835 else
1836 #endif
1837 #if HAVE_SSE2
1838 if (parasail_can_use_sse2()) {
1839 parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_stats_table_scan_sse2_128_64;
1840 }
1841 else
1842 #endif
1843 #if HAVE_ALTIVEC
1844 if (parasail_can_use_altivec()) {
1845 parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_stats_table_scan_altivec_128_64;
1846 }
1847 else
1848 #endif
1849 #if HAVE_NEON
1850 if (parasail_can_use_neon()) {
1851 parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_stats_table_scan_neon_128_64;
1852 }
1853 else
1854 #endif
1855 {
1856 parasail_sg_qx_stats_table_scan_64_pointer = parasail_sg_qx_scan;
1857 }
1858 return parasail_sg_qx_stats_table_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1859 }
1860
1861 parasail_result_t* parasail_sg_qx_stats_table_scan_32_dispatcher(
1862 const char * const restrict s1, const int s1Len,
1863 const char * const restrict s2, const int s2Len,
1864 const int open, const int gap,
1865 const parasail_matrix_t *matrix)
1866 {
1867 #if HAVE_AVX2
1868 if (parasail_can_use_avx2()) {
1869 parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_stats_table_scan_avx2_256_32;
1870 }
1871 else
1872 #endif
1873 #if HAVE_SSE41
1874 if (parasail_can_use_sse41()) {
1875 parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_stats_table_scan_sse41_128_32;
1876 }
1877 else
1878 #endif
1879 #if HAVE_SSE2
1880 if (parasail_can_use_sse2()) {
1881 parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_stats_table_scan_sse2_128_32;
1882 }
1883 else
1884 #endif
1885 #if HAVE_ALTIVEC
1886 if (parasail_can_use_altivec()) {
1887 parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_stats_table_scan_altivec_128_32;
1888 }
1889 else
1890 #endif
1891 #if HAVE_NEON
1892 if (parasail_can_use_neon()) {
1893 parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_stats_table_scan_neon_128_32;
1894 }
1895 else
1896 #endif
1897 {
1898 parasail_sg_qx_stats_table_scan_32_pointer = parasail_sg_qx_scan;
1899 }
1900 return parasail_sg_qx_stats_table_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1901 }
1902
1903 parasail_result_t* parasail_sg_qx_stats_table_scan_16_dispatcher(
1904 const char * const restrict s1, const int s1Len,
1905 const char * const restrict s2, const int s2Len,
1906 const int open, const int gap,
1907 const parasail_matrix_t *matrix)
1908 {
1909 #if HAVE_AVX2
1910 if (parasail_can_use_avx2()) {
1911 parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_stats_table_scan_avx2_256_16;
1912 }
1913 else
1914 #endif
1915 #if HAVE_SSE41
1916 if (parasail_can_use_sse41()) {
1917 parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_stats_table_scan_sse41_128_16;
1918 }
1919 else
1920 #endif
1921 #if HAVE_SSE2
1922 if (parasail_can_use_sse2()) {
1923 parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_stats_table_scan_sse2_128_16;
1924 }
1925 else
1926 #endif
1927 #if HAVE_ALTIVEC
1928 if (parasail_can_use_altivec()) {
1929 parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_stats_table_scan_altivec_128_16;
1930 }
1931 else
1932 #endif
1933 #if HAVE_NEON
1934 if (parasail_can_use_neon()) {
1935 parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_stats_table_scan_neon_128_16;
1936 }
1937 else
1938 #endif
1939 {
1940 parasail_sg_qx_stats_table_scan_16_pointer = parasail_sg_qx_scan;
1941 }
1942 return parasail_sg_qx_stats_table_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1943 }
1944
1945 parasail_result_t* parasail_sg_qx_stats_table_scan_8_dispatcher(
1946 const char * const restrict s1, const int s1Len,
1947 const char * const restrict s2, const int s2Len,
1948 const int open, const int gap,
1949 const parasail_matrix_t *matrix)
1950 {
1951 #if HAVE_AVX2
1952 if (parasail_can_use_avx2()) {
1953 parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_stats_table_scan_avx2_256_8;
1954 }
1955 else
1956 #endif
1957 #if HAVE_SSE41
1958 if (parasail_can_use_sse41()) {
1959 parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_stats_table_scan_sse41_128_8;
1960 }
1961 else
1962 #endif
1963 #if HAVE_SSE2
1964 if (parasail_can_use_sse2()) {
1965 parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_stats_table_scan_sse2_128_8;
1966 }
1967 else
1968 #endif
1969 #if HAVE_ALTIVEC
1970 if (parasail_can_use_altivec()) {
1971 parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_stats_table_scan_altivec_128_8;
1972 }
1973 else
1974 #endif
1975 #if HAVE_NEON
1976 if (parasail_can_use_neon()) {
1977 parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_stats_table_scan_neon_128_8;
1978 }
1979 else
1980 #endif
1981 {
1982 parasail_sg_qx_stats_table_scan_8_pointer = parasail_sg_qx_scan;
1983 }
1984 return parasail_sg_qx_stats_table_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
1985 }
1986
1987 parasail_result_t* parasail_sg_qx_stats_table_striped_64_dispatcher(
1988 const char * const restrict s1, const int s1Len,
1989 const char * const restrict s2, const int s2Len,
1990 const int open, const int gap,
1991 const parasail_matrix_t *matrix)
1992 {
1993 #if HAVE_AVX2
1994 if (parasail_can_use_avx2()) {
1995 parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx_stats_table_striped_avx2_256_64;
1996 }
1997 else
1998 #endif
1999 #if HAVE_SSE41
2000 if (parasail_can_use_sse41()) {
2001 parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx_stats_table_striped_sse41_128_64;
2002 }
2003 else
2004 #endif
2005 #if HAVE_SSE2
2006 if (parasail_can_use_sse2()) {
2007 parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx_stats_table_striped_sse2_128_64;
2008 }
2009 else
2010 #endif
2011 #if HAVE_ALTIVEC
2012 if (parasail_can_use_altivec()) {
2013 parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx_stats_table_striped_altivec_128_64;
2014 }
2015 else
2016 #endif
2017 #if HAVE_NEON
2018 if (parasail_can_use_neon()) {
2019 parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx_stats_table_striped_neon_128_64;
2020 }
2021 else
2022 #endif
2023 {
2024 parasail_sg_qx_stats_table_striped_64_pointer = parasail_sg_qx;
2025 }
2026 return parasail_sg_qx_stats_table_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2027 }
2028
2029 parasail_result_t* parasail_sg_qx_stats_table_striped_32_dispatcher(
2030 const char * const restrict s1, const int s1Len,
2031 const char * const restrict s2, const int s2Len,
2032 const int open, const int gap,
2033 const parasail_matrix_t *matrix)
2034 {
2035 #if HAVE_AVX2
2036 if (parasail_can_use_avx2()) {
2037 parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx_stats_table_striped_avx2_256_32;
2038 }
2039 else
2040 #endif
2041 #if HAVE_SSE41
2042 if (parasail_can_use_sse41()) {
2043 parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx_stats_table_striped_sse41_128_32;
2044 }
2045 else
2046 #endif
2047 #if HAVE_SSE2
2048 if (parasail_can_use_sse2()) {
2049 parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx_stats_table_striped_sse2_128_32;
2050 }
2051 else
2052 #endif
2053 #if HAVE_ALTIVEC
2054 if (parasail_can_use_altivec()) {
2055 parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx_stats_table_striped_altivec_128_32;
2056 }
2057 else
2058 #endif
2059 #if HAVE_NEON
2060 if (parasail_can_use_neon()) {
2061 parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx_stats_table_striped_neon_128_32;
2062 }
2063 else
2064 #endif
2065 {
2066 parasail_sg_qx_stats_table_striped_32_pointer = parasail_sg_qx;
2067 }
2068 return parasail_sg_qx_stats_table_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2069 }
2070
2071 parasail_result_t* parasail_sg_qx_stats_table_striped_16_dispatcher(
2072 const char * const restrict s1, const int s1Len,
2073 const char * const restrict s2, const int s2Len,
2074 const int open, const int gap,
2075 const parasail_matrix_t *matrix)
2076 {
2077 #if HAVE_AVX2
2078 if (parasail_can_use_avx2()) {
2079 parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx_stats_table_striped_avx2_256_16;
2080 }
2081 else
2082 #endif
2083 #if HAVE_SSE41
2084 if (parasail_can_use_sse41()) {
2085 parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx_stats_table_striped_sse41_128_16;
2086 }
2087 else
2088 #endif
2089 #if HAVE_SSE2
2090 if (parasail_can_use_sse2()) {
2091 parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx_stats_table_striped_sse2_128_16;
2092 }
2093 else
2094 #endif
2095 #if HAVE_ALTIVEC
2096 if (parasail_can_use_altivec()) {
2097 parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx_stats_table_striped_altivec_128_16;
2098 }
2099 else
2100 #endif
2101 #if HAVE_NEON
2102 if (parasail_can_use_neon()) {
2103 parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx_stats_table_striped_neon_128_16;
2104 }
2105 else
2106 #endif
2107 {
2108 parasail_sg_qx_stats_table_striped_16_pointer = parasail_sg_qx;
2109 }
2110 return parasail_sg_qx_stats_table_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2111 }
2112
2113 parasail_result_t* parasail_sg_qx_stats_table_striped_8_dispatcher(
2114 const char * const restrict s1, const int s1Len,
2115 const char * const restrict s2, const int s2Len,
2116 const int open, const int gap,
2117 const parasail_matrix_t *matrix)
2118 {
2119 #if HAVE_AVX2
2120 if (parasail_can_use_avx2()) {
2121 parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx_stats_table_striped_avx2_256_8;
2122 }
2123 else
2124 #endif
2125 #if HAVE_SSE41
2126 if (parasail_can_use_sse41()) {
2127 parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx_stats_table_striped_sse41_128_8;
2128 }
2129 else
2130 #endif
2131 #if HAVE_SSE2
2132 if (parasail_can_use_sse2()) {
2133 parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx_stats_table_striped_sse2_128_8;
2134 }
2135 else
2136 #endif
2137 #if HAVE_ALTIVEC
2138 if (parasail_can_use_altivec()) {
2139 parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx_stats_table_striped_altivec_128_8;
2140 }
2141 else
2142 #endif
2143 #if HAVE_NEON
2144 if (parasail_can_use_neon()) {
2145 parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx_stats_table_striped_neon_128_8;
2146 }
2147 else
2148 #endif
2149 {
2150 parasail_sg_qx_stats_table_striped_8_pointer = parasail_sg_qx;
2151 }
2152 return parasail_sg_qx_stats_table_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2153 }
2154
2155 parasail_result_t* parasail_sg_qx_stats_table_diag_64_dispatcher(
2156 const char * const restrict s1, const int s1Len,
2157 const char * const restrict s2, const int s2Len,
2158 const int open, const int gap,
2159 const parasail_matrix_t *matrix)
2160 {
2161 #if HAVE_AVX2
2162 if (parasail_can_use_avx2()) {
2163 parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx_stats_table_diag_avx2_256_64;
2164 }
2165 else
2166 #endif
2167 #if HAVE_SSE41
2168 if (parasail_can_use_sse41()) {
2169 parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx_stats_table_diag_sse41_128_64;
2170 }
2171 else
2172 #endif
2173 #if HAVE_SSE2
2174 if (parasail_can_use_sse2()) {
2175 parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx_stats_table_diag_sse2_128_64;
2176 }
2177 else
2178 #endif
2179 #if HAVE_ALTIVEC
2180 if (parasail_can_use_altivec()) {
2181 parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx_stats_table_diag_altivec_128_64;
2182 }
2183 else
2184 #endif
2185 #if HAVE_NEON
2186 if (parasail_can_use_neon()) {
2187 parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx_stats_table_diag_neon_128_64;
2188 }
2189 else
2190 #endif
2191 {
2192 parasail_sg_qx_stats_table_diag_64_pointer = parasail_sg_qx;
2193 }
2194 return parasail_sg_qx_stats_table_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2195 }
2196
2197 parasail_result_t* parasail_sg_qx_stats_table_diag_32_dispatcher(
2198 const char * const restrict s1, const int s1Len,
2199 const char * const restrict s2, const int s2Len,
2200 const int open, const int gap,
2201 const parasail_matrix_t *matrix)
2202 {
2203 #if HAVE_AVX2
2204 if (parasail_can_use_avx2()) {
2205 parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx_stats_table_diag_avx2_256_32;
2206 }
2207 else
2208 #endif
2209 #if HAVE_SSE41
2210 if (parasail_can_use_sse41()) {
2211 parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx_stats_table_diag_sse41_128_32;
2212 }
2213 else
2214 #endif
2215 #if HAVE_SSE2
2216 if (parasail_can_use_sse2()) {
2217 parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx_stats_table_diag_sse2_128_32;
2218 }
2219 else
2220 #endif
2221 #if HAVE_ALTIVEC
2222 if (parasail_can_use_altivec()) {
2223 parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx_stats_table_diag_altivec_128_32;
2224 }
2225 else
2226 #endif
2227 #if HAVE_NEON
2228 if (parasail_can_use_neon()) {
2229 parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx_stats_table_diag_neon_128_32;
2230 }
2231 else
2232 #endif
2233 {
2234 parasail_sg_qx_stats_table_diag_32_pointer = parasail_sg_qx;
2235 }
2236 return parasail_sg_qx_stats_table_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2237 }
2238
2239 parasail_result_t* parasail_sg_qx_stats_table_diag_16_dispatcher(
2240 const char * const restrict s1, const int s1Len,
2241 const char * const restrict s2, const int s2Len,
2242 const int open, const int gap,
2243 const parasail_matrix_t *matrix)
2244 {
2245 #if HAVE_AVX2
2246 if (parasail_can_use_avx2()) {
2247 parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx_stats_table_diag_avx2_256_16;
2248 }
2249 else
2250 #endif
2251 #if HAVE_SSE41
2252 if (parasail_can_use_sse41()) {
2253 parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx_stats_table_diag_sse41_128_16;
2254 }
2255 else
2256 #endif
2257 #if HAVE_SSE2
2258 if (parasail_can_use_sse2()) {
2259 parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx_stats_table_diag_sse2_128_16;
2260 }
2261 else
2262 #endif
2263 #if HAVE_ALTIVEC
2264 if (parasail_can_use_altivec()) {
2265 parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx_stats_table_diag_altivec_128_16;
2266 }
2267 else
2268 #endif
2269 #if HAVE_NEON
2270 if (parasail_can_use_neon()) {
2271 parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx_stats_table_diag_neon_128_16;
2272 }
2273 else
2274 #endif
2275 {
2276 parasail_sg_qx_stats_table_diag_16_pointer = parasail_sg_qx;
2277 }
2278 return parasail_sg_qx_stats_table_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2279 }
2280
2281 parasail_result_t* parasail_sg_qx_stats_table_diag_8_dispatcher(
2282 const char * const restrict s1, const int s1Len,
2283 const char * const restrict s2, const int s2Len,
2284 const int open, const int gap,
2285 const parasail_matrix_t *matrix)
2286 {
2287 #if HAVE_AVX2
2288 if (parasail_can_use_avx2()) {
2289 parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx_stats_table_diag_avx2_256_8;
2290 }
2291 else
2292 #endif
2293 #if HAVE_SSE41
2294 if (parasail_can_use_sse41()) {
2295 parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx_stats_table_diag_sse41_128_8;
2296 }
2297 else
2298 #endif
2299 #if HAVE_SSE2
2300 if (parasail_can_use_sse2()) {
2301 parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx_stats_table_diag_sse2_128_8;
2302 }
2303 else
2304 #endif
2305 #if HAVE_ALTIVEC
2306 if (parasail_can_use_altivec()) {
2307 parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx_stats_table_diag_altivec_128_8;
2308 }
2309 else
2310 #endif
2311 #if HAVE_NEON
2312 if (parasail_can_use_neon()) {
2313 parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx_stats_table_diag_neon_128_8;
2314 }
2315 else
2316 #endif
2317 {
2318 parasail_sg_qx_stats_table_diag_8_pointer = parasail_sg_qx;
2319 }
2320 return parasail_sg_qx_stats_table_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2321 }
2322
2323 parasail_result_t* parasail_sg_qx_rowcol_scan_64_dispatcher(
2324 const char * const restrict s1, const int s1Len,
2325 const char * const restrict s2, const int s2Len,
2326 const int open, const int gap,
2327 const parasail_matrix_t *matrix)
2328 {
2329 #if HAVE_AVX2
2330 if (parasail_can_use_avx2()) {
2331 parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_rowcol_scan_avx2_256_64;
2332 }
2333 else
2334 #endif
2335 #if HAVE_SSE41
2336 if (parasail_can_use_sse41()) {
2337 parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_rowcol_scan_sse41_128_64;
2338 }
2339 else
2340 #endif
2341 #if HAVE_SSE2
2342 if (parasail_can_use_sse2()) {
2343 parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_rowcol_scan_sse2_128_64;
2344 }
2345 else
2346 #endif
2347 #if HAVE_ALTIVEC
2348 if (parasail_can_use_altivec()) {
2349 parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_rowcol_scan_altivec_128_64;
2350 }
2351 else
2352 #endif
2353 #if HAVE_NEON
2354 if (parasail_can_use_neon()) {
2355 parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_rowcol_scan_neon_128_64;
2356 }
2357 else
2358 #endif
2359 {
2360 parasail_sg_qx_rowcol_scan_64_pointer = parasail_sg_qx_scan;
2361 }
2362 return parasail_sg_qx_rowcol_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2363 }
2364
2365 parasail_result_t* parasail_sg_qx_rowcol_scan_32_dispatcher(
2366 const char * const restrict s1, const int s1Len,
2367 const char * const restrict s2, const int s2Len,
2368 const int open, const int gap,
2369 const parasail_matrix_t *matrix)
2370 {
2371 #if HAVE_AVX2
2372 if (parasail_can_use_avx2()) {
2373 parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_rowcol_scan_avx2_256_32;
2374 }
2375 else
2376 #endif
2377 #if HAVE_SSE41
2378 if (parasail_can_use_sse41()) {
2379 parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_rowcol_scan_sse41_128_32;
2380 }
2381 else
2382 #endif
2383 #if HAVE_SSE2
2384 if (parasail_can_use_sse2()) {
2385 parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_rowcol_scan_sse2_128_32;
2386 }
2387 else
2388 #endif
2389 #if HAVE_ALTIVEC
2390 if (parasail_can_use_altivec()) {
2391 parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_rowcol_scan_altivec_128_32;
2392 }
2393 else
2394 #endif
2395 #if HAVE_NEON
2396 if (parasail_can_use_neon()) {
2397 parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_rowcol_scan_neon_128_32;
2398 }
2399 else
2400 #endif
2401 {
2402 parasail_sg_qx_rowcol_scan_32_pointer = parasail_sg_qx_scan;
2403 }
2404 return parasail_sg_qx_rowcol_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2405 }
2406
2407 parasail_result_t* parasail_sg_qx_rowcol_scan_16_dispatcher(
2408 const char * const restrict s1, const int s1Len,
2409 const char * const restrict s2, const int s2Len,
2410 const int open, const int gap,
2411 const parasail_matrix_t *matrix)
2412 {
2413 #if HAVE_AVX2
2414 if (parasail_can_use_avx2()) {
2415 parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_rowcol_scan_avx2_256_16;
2416 }
2417 else
2418 #endif
2419 #if HAVE_SSE41
2420 if (parasail_can_use_sse41()) {
2421 parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_rowcol_scan_sse41_128_16;
2422 }
2423 else
2424 #endif
2425 #if HAVE_SSE2
2426 if (parasail_can_use_sse2()) {
2427 parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_rowcol_scan_sse2_128_16;
2428 }
2429 else
2430 #endif
2431 #if HAVE_ALTIVEC
2432 if (parasail_can_use_altivec()) {
2433 parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_rowcol_scan_altivec_128_16;
2434 }
2435 else
2436 #endif
2437 #if HAVE_NEON
2438 if (parasail_can_use_neon()) {
2439 parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_rowcol_scan_neon_128_16;
2440 }
2441 else
2442 #endif
2443 {
2444 parasail_sg_qx_rowcol_scan_16_pointer = parasail_sg_qx_scan;
2445 }
2446 return parasail_sg_qx_rowcol_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2447 }
2448
2449 parasail_result_t* parasail_sg_qx_rowcol_scan_8_dispatcher(
2450 const char * const restrict s1, const int s1Len,
2451 const char * const restrict s2, const int s2Len,
2452 const int open, const int gap,
2453 const parasail_matrix_t *matrix)
2454 {
2455 #if HAVE_AVX2
2456 if (parasail_can_use_avx2()) {
2457 parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_rowcol_scan_avx2_256_8;
2458 }
2459 else
2460 #endif
2461 #if HAVE_SSE41
2462 if (parasail_can_use_sse41()) {
2463 parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_rowcol_scan_sse41_128_8;
2464 }
2465 else
2466 #endif
2467 #if HAVE_SSE2
2468 if (parasail_can_use_sse2()) {
2469 parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_rowcol_scan_sse2_128_8;
2470 }
2471 else
2472 #endif
2473 #if HAVE_ALTIVEC
2474 if (parasail_can_use_altivec()) {
2475 parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_rowcol_scan_altivec_128_8;
2476 }
2477 else
2478 #endif
2479 #if HAVE_NEON
2480 if (parasail_can_use_neon()) {
2481 parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_rowcol_scan_neon_128_8;
2482 }
2483 else
2484 #endif
2485 {
2486 parasail_sg_qx_rowcol_scan_8_pointer = parasail_sg_qx_scan;
2487 }
2488 return parasail_sg_qx_rowcol_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2489 }
2490
2491 parasail_result_t* parasail_sg_qx_rowcol_striped_64_dispatcher(
2492 const char * const restrict s1, const int s1Len,
2493 const char * const restrict s2, const int s2Len,
2494 const int open, const int gap,
2495 const parasail_matrix_t *matrix)
2496 {
2497 #if HAVE_AVX2
2498 if (parasail_can_use_avx2()) {
2499 parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx_rowcol_striped_avx2_256_64;
2500 }
2501 else
2502 #endif
2503 #if HAVE_SSE41
2504 if (parasail_can_use_sse41()) {
2505 parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx_rowcol_striped_sse41_128_64;
2506 }
2507 else
2508 #endif
2509 #if HAVE_SSE2
2510 if (parasail_can_use_sse2()) {
2511 parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx_rowcol_striped_sse2_128_64;
2512 }
2513 else
2514 #endif
2515 #if HAVE_ALTIVEC
2516 if (parasail_can_use_altivec()) {
2517 parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx_rowcol_striped_altivec_128_64;
2518 }
2519 else
2520 #endif
2521 #if HAVE_NEON
2522 if (parasail_can_use_neon()) {
2523 parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx_rowcol_striped_neon_128_64;
2524 }
2525 else
2526 #endif
2527 {
2528 parasail_sg_qx_rowcol_striped_64_pointer = parasail_sg_qx;
2529 }
2530 return parasail_sg_qx_rowcol_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2531 }
2532
2533 parasail_result_t* parasail_sg_qx_rowcol_striped_32_dispatcher(
2534 const char * const restrict s1, const int s1Len,
2535 const char * const restrict s2, const int s2Len,
2536 const int open, const int gap,
2537 const parasail_matrix_t *matrix)
2538 {
2539 #if HAVE_AVX2
2540 if (parasail_can_use_avx2()) {
2541 parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx_rowcol_striped_avx2_256_32;
2542 }
2543 else
2544 #endif
2545 #if HAVE_SSE41
2546 if (parasail_can_use_sse41()) {
2547 parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx_rowcol_striped_sse41_128_32;
2548 }
2549 else
2550 #endif
2551 #if HAVE_SSE2
2552 if (parasail_can_use_sse2()) {
2553 parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx_rowcol_striped_sse2_128_32;
2554 }
2555 else
2556 #endif
2557 #if HAVE_ALTIVEC
2558 if (parasail_can_use_altivec()) {
2559 parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx_rowcol_striped_altivec_128_32;
2560 }
2561 else
2562 #endif
2563 #if HAVE_NEON
2564 if (parasail_can_use_neon()) {
2565 parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx_rowcol_striped_neon_128_32;
2566 }
2567 else
2568 #endif
2569 {
2570 parasail_sg_qx_rowcol_striped_32_pointer = parasail_sg_qx;
2571 }
2572 return parasail_sg_qx_rowcol_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2573 }
2574
2575 parasail_result_t* parasail_sg_qx_rowcol_striped_16_dispatcher(
2576 const char * const restrict s1, const int s1Len,
2577 const char * const restrict s2, const int s2Len,
2578 const int open, const int gap,
2579 const parasail_matrix_t *matrix)
2580 {
2581 #if HAVE_AVX2
2582 if (parasail_can_use_avx2()) {
2583 parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx_rowcol_striped_avx2_256_16;
2584 }
2585 else
2586 #endif
2587 #if HAVE_SSE41
2588 if (parasail_can_use_sse41()) {
2589 parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx_rowcol_striped_sse41_128_16;
2590 }
2591 else
2592 #endif
2593 #if HAVE_SSE2
2594 if (parasail_can_use_sse2()) {
2595 parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx_rowcol_striped_sse2_128_16;
2596 }
2597 else
2598 #endif
2599 #if HAVE_ALTIVEC
2600 if (parasail_can_use_altivec()) {
2601 parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx_rowcol_striped_altivec_128_16;
2602 }
2603 else
2604 #endif
2605 #if HAVE_NEON
2606 if (parasail_can_use_neon()) {
2607 parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx_rowcol_striped_neon_128_16;
2608 }
2609 else
2610 #endif
2611 {
2612 parasail_sg_qx_rowcol_striped_16_pointer = parasail_sg_qx;
2613 }
2614 return parasail_sg_qx_rowcol_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2615 }
2616
2617 parasail_result_t* parasail_sg_qx_rowcol_striped_8_dispatcher(
2618 const char * const restrict s1, const int s1Len,
2619 const char * const restrict s2, const int s2Len,
2620 const int open, const int gap,
2621 const parasail_matrix_t *matrix)
2622 {
2623 #if HAVE_AVX2
2624 if (parasail_can_use_avx2()) {
2625 parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx_rowcol_striped_avx2_256_8;
2626 }
2627 else
2628 #endif
2629 #if HAVE_SSE41
2630 if (parasail_can_use_sse41()) {
2631 parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx_rowcol_striped_sse41_128_8;
2632 }
2633 else
2634 #endif
2635 #if HAVE_SSE2
2636 if (parasail_can_use_sse2()) {
2637 parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx_rowcol_striped_sse2_128_8;
2638 }
2639 else
2640 #endif
2641 #if HAVE_ALTIVEC
2642 if (parasail_can_use_altivec()) {
2643 parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx_rowcol_striped_altivec_128_8;
2644 }
2645 else
2646 #endif
2647 #if HAVE_NEON
2648 if (parasail_can_use_neon()) {
2649 parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx_rowcol_striped_neon_128_8;
2650 }
2651 else
2652 #endif
2653 {
2654 parasail_sg_qx_rowcol_striped_8_pointer = parasail_sg_qx;
2655 }
2656 return parasail_sg_qx_rowcol_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2657 }
2658
2659 parasail_result_t* parasail_sg_qx_rowcol_diag_64_dispatcher(
2660 const char * const restrict s1, const int s1Len,
2661 const char * const restrict s2, const int s2Len,
2662 const int open, const int gap,
2663 const parasail_matrix_t *matrix)
2664 {
2665 #if HAVE_AVX2
2666 if (parasail_can_use_avx2()) {
2667 parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx_rowcol_diag_avx2_256_64;
2668 }
2669 else
2670 #endif
2671 #if HAVE_SSE41
2672 if (parasail_can_use_sse41()) {
2673 parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx_rowcol_diag_sse41_128_64;
2674 }
2675 else
2676 #endif
2677 #if HAVE_SSE2
2678 if (parasail_can_use_sse2()) {
2679 parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx_rowcol_diag_sse2_128_64;
2680 }
2681 else
2682 #endif
2683 #if HAVE_ALTIVEC
2684 if (parasail_can_use_altivec()) {
2685 parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx_rowcol_diag_altivec_128_64;
2686 }
2687 else
2688 #endif
2689 #if HAVE_NEON
2690 if (parasail_can_use_neon()) {
2691 parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx_rowcol_diag_neon_128_64;
2692 }
2693 else
2694 #endif
2695 {
2696 parasail_sg_qx_rowcol_diag_64_pointer = parasail_sg_qx;
2697 }
2698 return parasail_sg_qx_rowcol_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2699 }
2700
2701 parasail_result_t* parasail_sg_qx_rowcol_diag_32_dispatcher(
2702 const char * const restrict s1, const int s1Len,
2703 const char * const restrict s2, const int s2Len,
2704 const int open, const int gap,
2705 const parasail_matrix_t *matrix)
2706 {
2707 #if HAVE_AVX2
2708 if (parasail_can_use_avx2()) {
2709 parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx_rowcol_diag_avx2_256_32;
2710 }
2711 else
2712 #endif
2713 #if HAVE_SSE41
2714 if (parasail_can_use_sse41()) {
2715 parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx_rowcol_diag_sse41_128_32;
2716 }
2717 else
2718 #endif
2719 #if HAVE_SSE2
2720 if (parasail_can_use_sse2()) {
2721 parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx_rowcol_diag_sse2_128_32;
2722 }
2723 else
2724 #endif
2725 #if HAVE_ALTIVEC
2726 if (parasail_can_use_altivec()) {
2727 parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx_rowcol_diag_altivec_128_32;
2728 }
2729 else
2730 #endif
2731 #if HAVE_NEON
2732 if (parasail_can_use_neon()) {
2733 parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx_rowcol_diag_neon_128_32;
2734 }
2735 else
2736 #endif
2737 {
2738 parasail_sg_qx_rowcol_diag_32_pointer = parasail_sg_qx;
2739 }
2740 return parasail_sg_qx_rowcol_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2741 }
2742
2743 parasail_result_t* parasail_sg_qx_rowcol_diag_16_dispatcher(
2744 const char * const restrict s1, const int s1Len,
2745 const char * const restrict s2, const int s2Len,
2746 const int open, const int gap,
2747 const parasail_matrix_t *matrix)
2748 {
2749 #if HAVE_AVX2
2750 if (parasail_can_use_avx2()) {
2751 parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx_rowcol_diag_avx2_256_16;
2752 }
2753 else
2754 #endif
2755 #if HAVE_SSE41
2756 if (parasail_can_use_sse41()) {
2757 parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx_rowcol_diag_sse41_128_16;
2758 }
2759 else
2760 #endif
2761 #if HAVE_SSE2
2762 if (parasail_can_use_sse2()) {
2763 parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx_rowcol_diag_sse2_128_16;
2764 }
2765 else
2766 #endif
2767 #if HAVE_ALTIVEC
2768 if (parasail_can_use_altivec()) {
2769 parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx_rowcol_diag_altivec_128_16;
2770 }
2771 else
2772 #endif
2773 #if HAVE_NEON
2774 if (parasail_can_use_neon()) {
2775 parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx_rowcol_diag_neon_128_16;
2776 }
2777 else
2778 #endif
2779 {
2780 parasail_sg_qx_rowcol_diag_16_pointer = parasail_sg_qx;
2781 }
2782 return parasail_sg_qx_rowcol_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2783 }
2784
2785 parasail_result_t* parasail_sg_qx_rowcol_diag_8_dispatcher(
2786 const char * const restrict s1, const int s1Len,
2787 const char * const restrict s2, const int s2Len,
2788 const int open, const int gap,
2789 const parasail_matrix_t *matrix)
2790 {
2791 #if HAVE_AVX2
2792 if (parasail_can_use_avx2()) {
2793 parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx_rowcol_diag_avx2_256_8;
2794 }
2795 else
2796 #endif
2797 #if HAVE_SSE41
2798 if (parasail_can_use_sse41()) {
2799 parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx_rowcol_diag_sse41_128_8;
2800 }
2801 else
2802 #endif
2803 #if HAVE_SSE2
2804 if (parasail_can_use_sse2()) {
2805 parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx_rowcol_diag_sse2_128_8;
2806 }
2807 else
2808 #endif
2809 #if HAVE_ALTIVEC
2810 if (parasail_can_use_altivec()) {
2811 parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx_rowcol_diag_altivec_128_8;
2812 }
2813 else
2814 #endif
2815 #if HAVE_NEON
2816 if (parasail_can_use_neon()) {
2817 parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx_rowcol_diag_neon_128_8;
2818 }
2819 else
2820 #endif
2821 {
2822 parasail_sg_qx_rowcol_diag_8_pointer = parasail_sg_qx;
2823 }
2824 return parasail_sg_qx_rowcol_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2825 }
2826
2827 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_64_dispatcher(
2828 const char * const restrict s1, const int s1Len,
2829 const char * const restrict s2, const int s2Len,
2830 const int open, const int gap,
2831 const parasail_matrix_t *matrix)
2832 {
2833 #if HAVE_AVX2
2834 if (parasail_can_use_avx2()) {
2835 parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_stats_rowcol_scan_avx2_256_64;
2836 }
2837 else
2838 #endif
2839 #if HAVE_SSE41
2840 if (parasail_can_use_sse41()) {
2841 parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_stats_rowcol_scan_sse41_128_64;
2842 }
2843 else
2844 #endif
2845 #if HAVE_SSE2
2846 if (parasail_can_use_sse2()) {
2847 parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_stats_rowcol_scan_sse2_128_64;
2848 }
2849 else
2850 #endif
2851 #if HAVE_ALTIVEC
2852 if (parasail_can_use_altivec()) {
2853 parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_stats_rowcol_scan_altivec_128_64;
2854 }
2855 else
2856 #endif
2857 #if HAVE_NEON
2858 if (parasail_can_use_neon()) {
2859 parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_stats_rowcol_scan_neon_128_64;
2860 }
2861 else
2862 #endif
2863 {
2864 parasail_sg_qx_stats_rowcol_scan_64_pointer = parasail_sg_qx_scan;
2865 }
2866 return parasail_sg_qx_stats_rowcol_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2867 }
2868
2869 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_32_dispatcher(
2870 const char * const restrict s1, const int s1Len,
2871 const char * const restrict s2, const int s2Len,
2872 const int open, const int gap,
2873 const parasail_matrix_t *matrix)
2874 {
2875 #if HAVE_AVX2
2876 if (parasail_can_use_avx2()) {
2877 parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_stats_rowcol_scan_avx2_256_32;
2878 }
2879 else
2880 #endif
2881 #if HAVE_SSE41
2882 if (parasail_can_use_sse41()) {
2883 parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_stats_rowcol_scan_sse41_128_32;
2884 }
2885 else
2886 #endif
2887 #if HAVE_SSE2
2888 if (parasail_can_use_sse2()) {
2889 parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_stats_rowcol_scan_sse2_128_32;
2890 }
2891 else
2892 #endif
2893 #if HAVE_ALTIVEC
2894 if (parasail_can_use_altivec()) {
2895 parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_stats_rowcol_scan_altivec_128_32;
2896 }
2897 else
2898 #endif
2899 #if HAVE_NEON
2900 if (parasail_can_use_neon()) {
2901 parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_stats_rowcol_scan_neon_128_32;
2902 }
2903 else
2904 #endif
2905 {
2906 parasail_sg_qx_stats_rowcol_scan_32_pointer = parasail_sg_qx_scan;
2907 }
2908 return parasail_sg_qx_stats_rowcol_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2909 }
2910
2911 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_16_dispatcher(
2912 const char * const restrict s1, const int s1Len,
2913 const char * const restrict s2, const int s2Len,
2914 const int open, const int gap,
2915 const parasail_matrix_t *matrix)
2916 {
2917 #if HAVE_AVX2
2918 if (parasail_can_use_avx2()) {
2919 parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_stats_rowcol_scan_avx2_256_16;
2920 }
2921 else
2922 #endif
2923 #if HAVE_SSE41
2924 if (parasail_can_use_sse41()) {
2925 parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_stats_rowcol_scan_sse41_128_16;
2926 }
2927 else
2928 #endif
2929 #if HAVE_SSE2
2930 if (parasail_can_use_sse2()) {
2931 parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_stats_rowcol_scan_sse2_128_16;
2932 }
2933 else
2934 #endif
2935 #if HAVE_ALTIVEC
2936 if (parasail_can_use_altivec()) {
2937 parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_stats_rowcol_scan_altivec_128_16;
2938 }
2939 else
2940 #endif
2941 #if HAVE_NEON
2942 if (parasail_can_use_neon()) {
2943 parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_stats_rowcol_scan_neon_128_16;
2944 }
2945 else
2946 #endif
2947 {
2948 parasail_sg_qx_stats_rowcol_scan_16_pointer = parasail_sg_qx_scan;
2949 }
2950 return parasail_sg_qx_stats_rowcol_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2951 }
2952
2953 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_8_dispatcher(
2954 const char * const restrict s1, const int s1Len,
2955 const char * const restrict s2, const int s2Len,
2956 const int open, const int gap,
2957 const parasail_matrix_t *matrix)
2958 {
2959 #if HAVE_AVX2
2960 if (parasail_can_use_avx2()) {
2961 parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_stats_rowcol_scan_avx2_256_8;
2962 }
2963 else
2964 #endif
2965 #if HAVE_SSE41
2966 if (parasail_can_use_sse41()) {
2967 parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_stats_rowcol_scan_sse41_128_8;
2968 }
2969 else
2970 #endif
2971 #if HAVE_SSE2
2972 if (parasail_can_use_sse2()) {
2973 parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_stats_rowcol_scan_sse2_128_8;
2974 }
2975 else
2976 #endif
2977 #if HAVE_ALTIVEC
2978 if (parasail_can_use_altivec()) {
2979 parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_stats_rowcol_scan_altivec_128_8;
2980 }
2981 else
2982 #endif
2983 #if HAVE_NEON
2984 if (parasail_can_use_neon()) {
2985 parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_stats_rowcol_scan_neon_128_8;
2986 }
2987 else
2988 #endif
2989 {
2990 parasail_sg_qx_stats_rowcol_scan_8_pointer = parasail_sg_qx_scan;
2991 }
2992 return parasail_sg_qx_stats_rowcol_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
2993 }
2994
2995 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_64_dispatcher(
2996 const char * const restrict s1, const int s1Len,
2997 const char * const restrict s2, const int s2Len,
2998 const int open, const int gap,
2999 const parasail_matrix_t *matrix)
3000 {
3001 #if HAVE_AVX2
3002 if (parasail_can_use_avx2()) {
3003 parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx_stats_rowcol_striped_avx2_256_64;
3004 }
3005 else
3006 #endif
3007 #if HAVE_SSE41
3008 if (parasail_can_use_sse41()) {
3009 parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx_stats_rowcol_striped_sse41_128_64;
3010 }
3011 else
3012 #endif
3013 #if HAVE_SSE2
3014 if (parasail_can_use_sse2()) {
3015 parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx_stats_rowcol_striped_sse2_128_64;
3016 }
3017 else
3018 #endif
3019 #if HAVE_ALTIVEC
3020 if (parasail_can_use_altivec()) {
3021 parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx_stats_rowcol_striped_altivec_128_64;
3022 }
3023 else
3024 #endif
3025 #if HAVE_NEON
3026 if (parasail_can_use_neon()) {
3027 parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx_stats_rowcol_striped_neon_128_64;
3028 }
3029 else
3030 #endif
3031 {
3032 parasail_sg_qx_stats_rowcol_striped_64_pointer = parasail_sg_qx;
3033 }
3034 return parasail_sg_qx_stats_rowcol_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3035 }
3036
3037 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_32_dispatcher(
3038 const char * const restrict s1, const int s1Len,
3039 const char * const restrict s2, const int s2Len,
3040 const int open, const int gap,
3041 const parasail_matrix_t *matrix)
3042 {
3043 #if HAVE_AVX2
3044 if (parasail_can_use_avx2()) {
3045 parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx_stats_rowcol_striped_avx2_256_32;
3046 }
3047 else
3048 #endif
3049 #if HAVE_SSE41
3050 if (parasail_can_use_sse41()) {
3051 parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx_stats_rowcol_striped_sse41_128_32;
3052 }
3053 else
3054 #endif
3055 #if HAVE_SSE2
3056 if (parasail_can_use_sse2()) {
3057 parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx_stats_rowcol_striped_sse2_128_32;
3058 }
3059 else
3060 #endif
3061 #if HAVE_ALTIVEC
3062 if (parasail_can_use_altivec()) {
3063 parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx_stats_rowcol_striped_altivec_128_32;
3064 }
3065 else
3066 #endif
3067 #if HAVE_NEON
3068 if (parasail_can_use_neon()) {
3069 parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx_stats_rowcol_striped_neon_128_32;
3070 }
3071 else
3072 #endif
3073 {
3074 parasail_sg_qx_stats_rowcol_striped_32_pointer = parasail_sg_qx;
3075 }
3076 return parasail_sg_qx_stats_rowcol_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3077 }
3078
3079 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_16_dispatcher(
3080 const char * const restrict s1, const int s1Len,
3081 const char * const restrict s2, const int s2Len,
3082 const int open, const int gap,
3083 const parasail_matrix_t *matrix)
3084 {
3085 #if HAVE_AVX2
3086 if (parasail_can_use_avx2()) {
3087 parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx_stats_rowcol_striped_avx2_256_16;
3088 }
3089 else
3090 #endif
3091 #if HAVE_SSE41
3092 if (parasail_can_use_sse41()) {
3093 parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx_stats_rowcol_striped_sse41_128_16;
3094 }
3095 else
3096 #endif
3097 #if HAVE_SSE2
3098 if (parasail_can_use_sse2()) {
3099 parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx_stats_rowcol_striped_sse2_128_16;
3100 }
3101 else
3102 #endif
3103 #if HAVE_ALTIVEC
3104 if (parasail_can_use_altivec()) {
3105 parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx_stats_rowcol_striped_altivec_128_16;
3106 }
3107 else
3108 #endif
3109 #if HAVE_NEON
3110 if (parasail_can_use_neon()) {
3111 parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx_stats_rowcol_striped_neon_128_16;
3112 }
3113 else
3114 #endif
3115 {
3116 parasail_sg_qx_stats_rowcol_striped_16_pointer = parasail_sg_qx;
3117 }
3118 return parasail_sg_qx_stats_rowcol_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3119 }
3120
3121 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_8_dispatcher(
3122 const char * const restrict s1, const int s1Len,
3123 const char * const restrict s2, const int s2Len,
3124 const int open, const int gap,
3125 const parasail_matrix_t *matrix)
3126 {
3127 #if HAVE_AVX2
3128 if (parasail_can_use_avx2()) {
3129 parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx_stats_rowcol_striped_avx2_256_8;
3130 }
3131 else
3132 #endif
3133 #if HAVE_SSE41
3134 if (parasail_can_use_sse41()) {
3135 parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx_stats_rowcol_striped_sse41_128_8;
3136 }
3137 else
3138 #endif
3139 #if HAVE_SSE2
3140 if (parasail_can_use_sse2()) {
3141 parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx_stats_rowcol_striped_sse2_128_8;
3142 }
3143 else
3144 #endif
3145 #if HAVE_ALTIVEC
3146 if (parasail_can_use_altivec()) {
3147 parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx_stats_rowcol_striped_altivec_128_8;
3148 }
3149 else
3150 #endif
3151 #if HAVE_NEON
3152 if (parasail_can_use_neon()) {
3153 parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx_stats_rowcol_striped_neon_128_8;
3154 }
3155 else
3156 #endif
3157 {
3158 parasail_sg_qx_stats_rowcol_striped_8_pointer = parasail_sg_qx;
3159 }
3160 return parasail_sg_qx_stats_rowcol_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3161 }
3162
3163 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_64_dispatcher(
3164 const char * const restrict s1, const int s1Len,
3165 const char * const restrict s2, const int s2Len,
3166 const int open, const int gap,
3167 const parasail_matrix_t *matrix)
3168 {
3169 #if HAVE_AVX2
3170 if (parasail_can_use_avx2()) {
3171 parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx_stats_rowcol_diag_avx2_256_64;
3172 }
3173 else
3174 #endif
3175 #if HAVE_SSE41
3176 if (parasail_can_use_sse41()) {
3177 parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx_stats_rowcol_diag_sse41_128_64;
3178 }
3179 else
3180 #endif
3181 #if HAVE_SSE2
3182 if (parasail_can_use_sse2()) {
3183 parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx_stats_rowcol_diag_sse2_128_64;
3184 }
3185 else
3186 #endif
3187 #if HAVE_ALTIVEC
3188 if (parasail_can_use_altivec()) {
3189 parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx_stats_rowcol_diag_altivec_128_64;
3190 }
3191 else
3192 #endif
3193 #if HAVE_NEON
3194 if (parasail_can_use_neon()) {
3195 parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx_stats_rowcol_diag_neon_128_64;
3196 }
3197 else
3198 #endif
3199 {
3200 parasail_sg_qx_stats_rowcol_diag_64_pointer = parasail_sg_qx;
3201 }
3202 return parasail_sg_qx_stats_rowcol_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3203 }
3204
3205 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_32_dispatcher(
3206 const char * const restrict s1, const int s1Len,
3207 const char * const restrict s2, const int s2Len,
3208 const int open, const int gap,
3209 const parasail_matrix_t *matrix)
3210 {
3211 #if HAVE_AVX2
3212 if (parasail_can_use_avx2()) {
3213 parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx_stats_rowcol_diag_avx2_256_32;
3214 }
3215 else
3216 #endif
3217 #if HAVE_SSE41
3218 if (parasail_can_use_sse41()) {
3219 parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx_stats_rowcol_diag_sse41_128_32;
3220 }
3221 else
3222 #endif
3223 #if HAVE_SSE2
3224 if (parasail_can_use_sse2()) {
3225 parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx_stats_rowcol_diag_sse2_128_32;
3226 }
3227 else
3228 #endif
3229 #if HAVE_ALTIVEC
3230 if (parasail_can_use_altivec()) {
3231 parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx_stats_rowcol_diag_altivec_128_32;
3232 }
3233 else
3234 #endif
3235 #if HAVE_NEON
3236 if (parasail_can_use_neon()) {
3237 parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx_stats_rowcol_diag_neon_128_32;
3238 }
3239 else
3240 #endif
3241 {
3242 parasail_sg_qx_stats_rowcol_diag_32_pointer = parasail_sg_qx;
3243 }
3244 return parasail_sg_qx_stats_rowcol_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3245 }
3246
3247 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_16_dispatcher(
3248 const char * const restrict s1, const int s1Len,
3249 const char * const restrict s2, const int s2Len,
3250 const int open, const int gap,
3251 const parasail_matrix_t *matrix)
3252 {
3253 #if HAVE_AVX2
3254 if (parasail_can_use_avx2()) {
3255 parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx_stats_rowcol_diag_avx2_256_16;
3256 }
3257 else
3258 #endif
3259 #if HAVE_SSE41
3260 if (parasail_can_use_sse41()) {
3261 parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx_stats_rowcol_diag_sse41_128_16;
3262 }
3263 else
3264 #endif
3265 #if HAVE_SSE2
3266 if (parasail_can_use_sse2()) {
3267 parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx_stats_rowcol_diag_sse2_128_16;
3268 }
3269 else
3270 #endif
3271 #if HAVE_ALTIVEC
3272 if (parasail_can_use_altivec()) {
3273 parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx_stats_rowcol_diag_altivec_128_16;
3274 }
3275 else
3276 #endif
3277 #if HAVE_NEON
3278 if (parasail_can_use_neon()) {
3279 parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx_stats_rowcol_diag_neon_128_16;
3280 }
3281 else
3282 #endif
3283 {
3284 parasail_sg_qx_stats_rowcol_diag_16_pointer = parasail_sg_qx;
3285 }
3286 return parasail_sg_qx_stats_rowcol_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3287 }
3288
3289 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_8_dispatcher(
3290 const char * const restrict s1, const int s1Len,
3291 const char * const restrict s2, const int s2Len,
3292 const int open, const int gap,
3293 const parasail_matrix_t *matrix)
3294 {
3295 #if HAVE_AVX2
3296 if (parasail_can_use_avx2()) {
3297 parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx_stats_rowcol_diag_avx2_256_8;
3298 }
3299 else
3300 #endif
3301 #if HAVE_SSE41
3302 if (parasail_can_use_sse41()) {
3303 parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx_stats_rowcol_diag_sse41_128_8;
3304 }
3305 else
3306 #endif
3307 #if HAVE_SSE2
3308 if (parasail_can_use_sse2()) {
3309 parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx_stats_rowcol_diag_sse2_128_8;
3310 }
3311 else
3312 #endif
3313 #if HAVE_ALTIVEC
3314 if (parasail_can_use_altivec()) {
3315 parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx_stats_rowcol_diag_altivec_128_8;
3316 }
3317 else
3318 #endif
3319 #if HAVE_NEON
3320 if (parasail_can_use_neon()) {
3321 parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx_stats_rowcol_diag_neon_128_8;
3322 }
3323 else
3324 #endif
3325 {
3326 parasail_sg_qx_stats_rowcol_diag_8_pointer = parasail_sg_qx;
3327 }
3328 return parasail_sg_qx_stats_rowcol_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3329 }
3330
3331 parasail_result_t* parasail_sg_qx_trace_scan_64_dispatcher(
3332 const char * const restrict s1, const int s1Len,
3333 const char * const restrict s2, const int s2Len,
3334 const int open, const int gap,
3335 const parasail_matrix_t *matrix)
3336 {
3337 #if HAVE_AVX2
3338 if (parasail_can_use_avx2()) {
3339 parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_trace_scan_avx2_256_64;
3340 }
3341 else
3342 #endif
3343 #if HAVE_SSE41
3344 if (parasail_can_use_sse41()) {
3345 parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_trace_scan_sse41_128_64;
3346 }
3347 else
3348 #endif
3349 #if HAVE_SSE2
3350 if (parasail_can_use_sse2()) {
3351 parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_trace_scan_sse2_128_64;
3352 }
3353 else
3354 #endif
3355 #if HAVE_ALTIVEC
3356 if (parasail_can_use_altivec()) {
3357 parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_trace_scan_altivec_128_64;
3358 }
3359 else
3360 #endif
3361 #if HAVE_NEON
3362 if (parasail_can_use_neon()) {
3363 parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_trace_scan_neon_128_64;
3364 }
3365 else
3366 #endif
3367 {
3368 parasail_sg_qx_trace_scan_64_pointer = parasail_sg_qx_scan;
3369 }
3370 return parasail_sg_qx_trace_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3371 }
3372
3373 parasail_result_t* parasail_sg_qx_trace_scan_32_dispatcher(
3374 const char * const restrict s1, const int s1Len,
3375 const char * const restrict s2, const int s2Len,
3376 const int open, const int gap,
3377 const parasail_matrix_t *matrix)
3378 {
3379 #if HAVE_AVX2
3380 if (parasail_can_use_avx2()) {
3381 parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_trace_scan_avx2_256_32;
3382 }
3383 else
3384 #endif
3385 #if HAVE_SSE41
3386 if (parasail_can_use_sse41()) {
3387 parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_trace_scan_sse41_128_32;
3388 }
3389 else
3390 #endif
3391 #if HAVE_SSE2
3392 if (parasail_can_use_sse2()) {
3393 parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_trace_scan_sse2_128_32;
3394 }
3395 else
3396 #endif
3397 #if HAVE_ALTIVEC
3398 if (parasail_can_use_altivec()) {
3399 parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_trace_scan_altivec_128_32;
3400 }
3401 else
3402 #endif
3403 #if HAVE_NEON
3404 if (parasail_can_use_neon()) {
3405 parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_trace_scan_neon_128_32;
3406 }
3407 else
3408 #endif
3409 {
3410 parasail_sg_qx_trace_scan_32_pointer = parasail_sg_qx_scan;
3411 }
3412 return parasail_sg_qx_trace_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3413 }
3414
3415 parasail_result_t* parasail_sg_qx_trace_scan_16_dispatcher(
3416 const char * const restrict s1, const int s1Len,
3417 const char * const restrict s2, const int s2Len,
3418 const int open, const int gap,
3419 const parasail_matrix_t *matrix)
3420 {
3421 #if HAVE_AVX2
3422 if (parasail_can_use_avx2()) {
3423 parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_trace_scan_avx2_256_16;
3424 }
3425 else
3426 #endif
3427 #if HAVE_SSE41
3428 if (parasail_can_use_sse41()) {
3429 parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_trace_scan_sse41_128_16;
3430 }
3431 else
3432 #endif
3433 #if HAVE_SSE2
3434 if (parasail_can_use_sse2()) {
3435 parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_trace_scan_sse2_128_16;
3436 }
3437 else
3438 #endif
3439 #if HAVE_ALTIVEC
3440 if (parasail_can_use_altivec()) {
3441 parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_trace_scan_altivec_128_16;
3442 }
3443 else
3444 #endif
3445 #if HAVE_NEON
3446 if (parasail_can_use_neon()) {
3447 parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_trace_scan_neon_128_16;
3448 }
3449 else
3450 #endif
3451 {
3452 parasail_sg_qx_trace_scan_16_pointer = parasail_sg_qx_scan;
3453 }
3454 return parasail_sg_qx_trace_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3455 }
3456
3457 parasail_result_t* parasail_sg_qx_trace_scan_8_dispatcher(
3458 const char * const restrict s1, const int s1Len,
3459 const char * const restrict s2, const int s2Len,
3460 const int open, const int gap,
3461 const parasail_matrix_t *matrix)
3462 {
3463 #if HAVE_AVX2
3464 if (parasail_can_use_avx2()) {
3465 parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_trace_scan_avx2_256_8;
3466 }
3467 else
3468 #endif
3469 #if HAVE_SSE41
3470 if (parasail_can_use_sse41()) {
3471 parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_trace_scan_sse41_128_8;
3472 }
3473 else
3474 #endif
3475 #if HAVE_SSE2
3476 if (parasail_can_use_sse2()) {
3477 parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_trace_scan_sse2_128_8;
3478 }
3479 else
3480 #endif
3481 #if HAVE_ALTIVEC
3482 if (parasail_can_use_altivec()) {
3483 parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_trace_scan_altivec_128_8;
3484 }
3485 else
3486 #endif
3487 #if HAVE_NEON
3488 if (parasail_can_use_neon()) {
3489 parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_trace_scan_neon_128_8;
3490 }
3491 else
3492 #endif
3493 {
3494 parasail_sg_qx_trace_scan_8_pointer = parasail_sg_qx_scan;
3495 }
3496 return parasail_sg_qx_trace_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3497 }
3498
3499 parasail_result_t* parasail_sg_qx_trace_striped_64_dispatcher(
3500 const char * const restrict s1, const int s1Len,
3501 const char * const restrict s2, const int s2Len,
3502 const int open, const int gap,
3503 const parasail_matrix_t *matrix)
3504 {
3505 #if HAVE_AVX2
3506 if (parasail_can_use_avx2()) {
3507 parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx_trace_striped_avx2_256_64;
3508 }
3509 else
3510 #endif
3511 #if HAVE_SSE41
3512 if (parasail_can_use_sse41()) {
3513 parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx_trace_striped_sse41_128_64;
3514 }
3515 else
3516 #endif
3517 #if HAVE_SSE2
3518 if (parasail_can_use_sse2()) {
3519 parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx_trace_striped_sse2_128_64;
3520 }
3521 else
3522 #endif
3523 #if HAVE_ALTIVEC
3524 if (parasail_can_use_altivec()) {
3525 parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx_trace_striped_altivec_128_64;
3526 }
3527 else
3528 #endif
3529 #if HAVE_NEON
3530 if (parasail_can_use_neon()) {
3531 parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx_trace_striped_neon_128_64;
3532 }
3533 else
3534 #endif
3535 {
3536 parasail_sg_qx_trace_striped_64_pointer = parasail_sg_qx;
3537 }
3538 return parasail_sg_qx_trace_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3539 }
3540 #endif
3541
parasail_sg_qx_trace_striped_32_dispatcher(const char * const restrict s1,const int s1Len,const char * const restrict s2,const int s2Len,const int open,const int gap,const parasail_matrix_t * matrix)3542 parasail_result_t* parasail_sg_qx_trace_striped_32_dispatcher(
3543 const char * const restrict s1, const int s1Len,
3544 const char * const restrict s2, const int s2Len,
3545 const int open, const int gap,
3546 const parasail_matrix_t *matrix)
3547 {
3548 #if HAVE_AVX2
3549 if (parasail_can_use_avx2()) {
3550 parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx_trace_striped_avx2_256_32;
3551 }
3552 else
3553 #endif
3554 #if HAVE_SSE41
3555 if (parasail_can_use_sse41()) {
3556 parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx_trace_striped_sse41_128_32;
3557 }
3558 else
3559 #endif
3560 #if HAVE_SSE2
3561 if (parasail_can_use_sse2()) {
3562 parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx_trace_striped_sse2_128_32;
3563 }
3564 else
3565 #endif
3566 #if HAVE_ALTIVEC
3567 if (parasail_can_use_altivec()) {
3568 parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx_trace_striped_altivec_128_32;
3569 }
3570 else
3571 #endif
3572 #if HAVE_NEON
3573 if (parasail_can_use_neon()) {
3574 parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx_trace_striped_neon_128_32;
3575 }
3576 else
3577 #endif
3578 {
3579 parasail_sg_qx_trace_striped_32_pointer = parasail_sg_qx;
3580 }
3581 return parasail_sg_qx_trace_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3582 }
3583
parasail_sg_qx_trace_striped_16_dispatcher(const char * const restrict s1,const int s1Len,const char * const restrict s2,const int s2Len,const int open,const int gap,const parasail_matrix_t * matrix)3584 parasail_result_t* parasail_sg_qx_trace_striped_16_dispatcher(
3585 const char * const restrict s1, const int s1Len,
3586 const char * const restrict s2, const int s2Len,
3587 const int open, const int gap,
3588 const parasail_matrix_t *matrix)
3589 {
3590 #if HAVE_AVX2
3591 if (parasail_can_use_avx2()) {
3592 parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx_trace_striped_avx2_256_16;
3593 }
3594 else
3595 #endif
3596 #if HAVE_SSE41
3597 if (parasail_can_use_sse41()) {
3598 parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx_trace_striped_sse41_128_16;
3599 }
3600 else
3601 #endif
3602 #if HAVE_SSE2
3603 if (parasail_can_use_sse2()) {
3604 parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx_trace_striped_sse2_128_16;
3605 }
3606 else
3607 #endif
3608 #if HAVE_ALTIVEC
3609 if (parasail_can_use_altivec()) {
3610 parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx_trace_striped_altivec_128_16;
3611 }
3612 else
3613 #endif
3614 #if HAVE_NEON
3615 if (parasail_can_use_neon()) {
3616 parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx_trace_striped_neon_128_16;
3617 }
3618 else
3619 #endif
3620 {
3621 parasail_sg_qx_trace_striped_16_pointer = parasail_sg_qx;
3622 }
3623 return parasail_sg_qx_trace_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3624 }
3625
3626 #if 0
3627 parasail_result_t* parasail_sg_qx_trace_striped_8_dispatcher(
3628 const char * const restrict s1, const int s1Len,
3629 const char * const restrict s2, const int s2Len,
3630 const int open, const int gap,
3631 const parasail_matrix_t *matrix)
3632 {
3633 #if HAVE_AVX2
3634 if (parasail_can_use_avx2()) {
3635 parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx_trace_striped_avx2_256_8;
3636 }
3637 else
3638 #endif
3639 #if HAVE_SSE41
3640 if (parasail_can_use_sse41()) {
3641 parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx_trace_striped_sse41_128_8;
3642 }
3643 else
3644 #endif
3645 #if HAVE_SSE2
3646 if (parasail_can_use_sse2()) {
3647 parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx_trace_striped_sse2_128_8;
3648 }
3649 else
3650 #endif
3651 #if HAVE_ALTIVEC
3652 if (parasail_can_use_altivec()) {
3653 parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx_trace_striped_altivec_128_8;
3654 }
3655 else
3656 #endif
3657 #if HAVE_NEON
3658 if (parasail_can_use_neon()) {
3659 parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx_trace_striped_neon_128_8;
3660 }
3661 else
3662 #endif
3663 {
3664 parasail_sg_qx_trace_striped_8_pointer = parasail_sg_qx;
3665 }
3666 return parasail_sg_qx_trace_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3667 }
3668
3669 parasail_result_t* parasail_sg_qx_trace_diag_64_dispatcher(
3670 const char * const restrict s1, const int s1Len,
3671 const char * const restrict s2, const int s2Len,
3672 const int open, const int gap,
3673 const parasail_matrix_t *matrix)
3674 {
3675 #if HAVE_AVX2
3676 if (parasail_can_use_avx2()) {
3677 parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx_trace_diag_avx2_256_64;
3678 }
3679 else
3680 #endif
3681 #if HAVE_SSE41
3682 if (parasail_can_use_sse41()) {
3683 parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx_trace_diag_sse41_128_64;
3684 }
3685 else
3686 #endif
3687 #if HAVE_SSE2
3688 if (parasail_can_use_sse2()) {
3689 parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx_trace_diag_sse2_128_64;
3690 }
3691 else
3692 #endif
3693 #if HAVE_ALTIVEC
3694 if (parasail_can_use_altivec()) {
3695 parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx_trace_diag_altivec_128_64;
3696 }
3697 else
3698 #endif
3699 #if HAVE_NEON
3700 if (parasail_can_use_neon()) {
3701 parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx_trace_diag_neon_128_64;
3702 }
3703 else
3704 #endif
3705 {
3706 parasail_sg_qx_trace_diag_64_pointer = parasail_sg_qx;
3707 }
3708 return parasail_sg_qx_trace_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3709 }
3710
3711 parasail_result_t* parasail_sg_qx_trace_diag_32_dispatcher(
3712 const char * const restrict s1, const int s1Len,
3713 const char * const restrict s2, const int s2Len,
3714 const int open, const int gap,
3715 const parasail_matrix_t *matrix)
3716 {
3717 #if HAVE_AVX2
3718 if (parasail_can_use_avx2()) {
3719 parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx_trace_diag_avx2_256_32;
3720 }
3721 else
3722 #endif
3723 #if HAVE_SSE41
3724 if (parasail_can_use_sse41()) {
3725 parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx_trace_diag_sse41_128_32;
3726 }
3727 else
3728 #endif
3729 #if HAVE_SSE2
3730 if (parasail_can_use_sse2()) {
3731 parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx_trace_diag_sse2_128_32;
3732 }
3733 else
3734 #endif
3735 #if HAVE_ALTIVEC
3736 if (parasail_can_use_altivec()) {
3737 parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx_trace_diag_altivec_128_32;
3738 }
3739 else
3740 #endif
3741 #if HAVE_NEON
3742 if (parasail_can_use_neon()) {
3743 parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx_trace_diag_neon_128_32;
3744 }
3745 else
3746 #endif
3747 {
3748 parasail_sg_qx_trace_diag_32_pointer = parasail_sg_qx;
3749 }
3750 return parasail_sg_qx_trace_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3751 }
3752
3753 parasail_result_t* parasail_sg_qx_trace_diag_16_dispatcher(
3754 const char * const restrict s1, const int s1Len,
3755 const char * const restrict s2, const int s2Len,
3756 const int open, const int gap,
3757 const parasail_matrix_t *matrix)
3758 {
3759 #if HAVE_AVX2
3760 if (parasail_can_use_avx2()) {
3761 parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx_trace_diag_avx2_256_16;
3762 }
3763 else
3764 #endif
3765 #if HAVE_SSE41
3766 if (parasail_can_use_sse41()) {
3767 parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx_trace_diag_sse41_128_16;
3768 }
3769 else
3770 #endif
3771 #if HAVE_SSE2
3772 if (parasail_can_use_sse2()) {
3773 parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx_trace_diag_sse2_128_16;
3774 }
3775 else
3776 #endif
3777 #if HAVE_ALTIVEC
3778 if (parasail_can_use_altivec()) {
3779 parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx_trace_diag_altivec_128_16;
3780 }
3781 else
3782 #endif
3783 #if HAVE_NEON
3784 if (parasail_can_use_neon()) {
3785 parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx_trace_diag_neon_128_16;
3786 }
3787 else
3788 #endif
3789 {
3790 parasail_sg_qx_trace_diag_16_pointer = parasail_sg_qx;
3791 }
3792 return parasail_sg_qx_trace_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3793 }
3794
3795 parasail_result_t* parasail_sg_qx_trace_diag_8_dispatcher(
3796 const char * const restrict s1, const int s1Len,
3797 const char * const restrict s2, const int s2Len,
3798 const int open, const int gap,
3799 const parasail_matrix_t *matrix)
3800 {
3801 #if HAVE_AVX2
3802 if (parasail_can_use_avx2()) {
3803 parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx_trace_diag_avx2_256_8;
3804 }
3805 else
3806 #endif
3807 #if HAVE_SSE41
3808 if (parasail_can_use_sse41()) {
3809 parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx_trace_diag_sse41_128_8;
3810 }
3811 else
3812 #endif
3813 #if HAVE_SSE2
3814 if (parasail_can_use_sse2()) {
3815 parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx_trace_diag_sse2_128_8;
3816 }
3817 else
3818 #endif
3819 #if HAVE_ALTIVEC
3820 if (parasail_can_use_altivec()) {
3821 parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx_trace_diag_altivec_128_8;
3822 }
3823 else
3824 #endif
3825 #if HAVE_NEON
3826 if (parasail_can_use_neon()) {
3827 parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx_trace_diag_neon_128_8;
3828 }
3829 else
3830 #endif
3831 {
3832 parasail_sg_qx_trace_diag_8_pointer = parasail_sg_qx;
3833 }
3834 return parasail_sg_qx_trace_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
3835 }
3836
3837 parasail_result_t* parasail_sg_qx_scan_profile_64_dispatcher(
3838 const parasail_profile_t * const restrict profile,
3839 const char * const restrict s2, const int s2Len,
3840 const int open, const int gap)
3841 {
3842 #if HAVE_AVX2
3843 if (parasail_can_use_avx2()) {
3844 parasail_sg_qx_scan_profile_64_pointer = parasail_sg_qx_scan_profile_avx2_256_64;
3845 }
3846 else
3847 #endif
3848 #if HAVE_SSE41
3849 if (parasail_can_use_sse41()) {
3850 parasail_sg_qx_scan_profile_64_pointer = parasail_sg_qx_scan_profile_sse41_128_64;
3851 }
3852 else
3853 #endif
3854 #if HAVE_SSE2
3855 if (parasail_can_use_sse2()) {
3856 parasail_sg_qx_scan_profile_64_pointer = parasail_sg_qx_scan_profile_sse2_128_64;
3857 }
3858 else
3859 #endif
3860 #if HAVE_ALTIVEC
3861 if (parasail_can_use_altivec()) {
3862 parasail_sg_qx_scan_profile_64_pointer = parasail_sg_qx_scan_profile_altivec_128_64;
3863 }
3864 else
3865 #endif
3866 #if HAVE_NEON
3867 if (parasail_can_use_neon()) {
3868 parasail_sg_qx_scan_profile_64_pointer = parasail_sg_qx_scan_profile_neon_128_64;
3869 }
3870 else
3871 #endif
3872 {
3873 parasail_sg_qx_scan_profile_64_pointer = NULL;
3874 }
3875 return parasail_sg_qx_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
3876 }
3877
3878 parasail_result_t* parasail_sg_qx_scan_profile_32_dispatcher(
3879 const parasail_profile_t * const restrict profile,
3880 const char * const restrict s2, const int s2Len,
3881 const int open, const int gap)
3882 {
3883 #if HAVE_AVX2
3884 if (parasail_can_use_avx2()) {
3885 parasail_sg_qx_scan_profile_32_pointer = parasail_sg_qx_scan_profile_avx2_256_32;
3886 }
3887 else
3888 #endif
3889 #if HAVE_SSE41
3890 if (parasail_can_use_sse41()) {
3891 parasail_sg_qx_scan_profile_32_pointer = parasail_sg_qx_scan_profile_sse41_128_32;
3892 }
3893 else
3894 #endif
3895 #if HAVE_SSE2
3896 if (parasail_can_use_sse2()) {
3897 parasail_sg_qx_scan_profile_32_pointer = parasail_sg_qx_scan_profile_sse2_128_32;
3898 }
3899 else
3900 #endif
3901 #if HAVE_ALTIVEC
3902 if (parasail_can_use_altivec()) {
3903 parasail_sg_qx_scan_profile_32_pointer = parasail_sg_qx_scan_profile_altivec_128_32;
3904 }
3905 else
3906 #endif
3907 #if HAVE_NEON
3908 if (parasail_can_use_neon()) {
3909 parasail_sg_qx_scan_profile_32_pointer = parasail_sg_qx_scan_profile_neon_128_32;
3910 }
3911 else
3912 #endif
3913 {
3914 parasail_sg_qx_scan_profile_32_pointer = NULL;
3915 }
3916 return parasail_sg_qx_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
3917 }
3918
3919 parasail_result_t* parasail_sg_qx_scan_profile_16_dispatcher(
3920 const parasail_profile_t * const restrict profile,
3921 const char * const restrict s2, const int s2Len,
3922 const int open, const int gap)
3923 {
3924 #if HAVE_AVX2
3925 if (parasail_can_use_avx2()) {
3926 parasail_sg_qx_scan_profile_16_pointer = parasail_sg_qx_scan_profile_avx2_256_16;
3927 }
3928 else
3929 #endif
3930 #if HAVE_SSE41
3931 if (parasail_can_use_sse41()) {
3932 parasail_sg_qx_scan_profile_16_pointer = parasail_sg_qx_scan_profile_sse41_128_16;
3933 }
3934 else
3935 #endif
3936 #if HAVE_SSE2
3937 if (parasail_can_use_sse2()) {
3938 parasail_sg_qx_scan_profile_16_pointer = parasail_sg_qx_scan_profile_sse2_128_16;
3939 }
3940 else
3941 #endif
3942 #if HAVE_ALTIVEC
3943 if (parasail_can_use_altivec()) {
3944 parasail_sg_qx_scan_profile_16_pointer = parasail_sg_qx_scan_profile_altivec_128_16;
3945 }
3946 else
3947 #endif
3948 #if HAVE_NEON
3949 if (parasail_can_use_neon()) {
3950 parasail_sg_qx_scan_profile_16_pointer = parasail_sg_qx_scan_profile_neon_128_16;
3951 }
3952 else
3953 #endif
3954 {
3955 parasail_sg_qx_scan_profile_16_pointer = NULL;
3956 }
3957 return parasail_sg_qx_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
3958 }
3959
3960 parasail_result_t* parasail_sg_qx_scan_profile_8_dispatcher(
3961 const parasail_profile_t * const restrict profile,
3962 const char * const restrict s2, const int s2Len,
3963 const int open, const int gap)
3964 {
3965 #if HAVE_AVX2
3966 if (parasail_can_use_avx2()) {
3967 parasail_sg_qx_scan_profile_8_pointer = parasail_sg_qx_scan_profile_avx2_256_8;
3968 }
3969 else
3970 #endif
3971 #if HAVE_SSE41
3972 if (parasail_can_use_sse41()) {
3973 parasail_sg_qx_scan_profile_8_pointer = parasail_sg_qx_scan_profile_sse41_128_8;
3974 }
3975 else
3976 #endif
3977 #if HAVE_SSE2
3978 if (parasail_can_use_sse2()) {
3979 parasail_sg_qx_scan_profile_8_pointer = parasail_sg_qx_scan_profile_sse2_128_8;
3980 }
3981 else
3982 #endif
3983 #if HAVE_ALTIVEC
3984 if (parasail_can_use_altivec()) {
3985 parasail_sg_qx_scan_profile_8_pointer = parasail_sg_qx_scan_profile_altivec_128_8;
3986 }
3987 else
3988 #endif
3989 #if HAVE_NEON
3990 if (parasail_can_use_neon()) {
3991 parasail_sg_qx_scan_profile_8_pointer = parasail_sg_qx_scan_profile_neon_128_8;
3992 }
3993 else
3994 #endif
3995 {
3996 parasail_sg_qx_scan_profile_8_pointer = NULL;
3997 }
3998 return parasail_sg_qx_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
3999 }
4000
4001 parasail_result_t* parasail_sg_qx_striped_profile_64_dispatcher(
4002 const parasail_profile_t * const restrict profile,
4003 const char * const restrict s2, const int s2Len,
4004 const int open, const int gap)
4005 {
4006 #if HAVE_AVX2
4007 if (parasail_can_use_avx2()) {
4008 parasail_sg_qx_striped_profile_64_pointer = parasail_sg_qx_striped_profile_avx2_256_64;
4009 }
4010 else
4011 #endif
4012 #if HAVE_SSE41
4013 if (parasail_can_use_sse41()) {
4014 parasail_sg_qx_striped_profile_64_pointer = parasail_sg_qx_striped_profile_sse41_128_64;
4015 }
4016 else
4017 #endif
4018 #if HAVE_SSE2
4019 if (parasail_can_use_sse2()) {
4020 parasail_sg_qx_striped_profile_64_pointer = parasail_sg_qx_striped_profile_sse2_128_64;
4021 }
4022 else
4023 #endif
4024 #if HAVE_ALTIVEC
4025 if (parasail_can_use_altivec()) {
4026 parasail_sg_qx_striped_profile_64_pointer = parasail_sg_qx_striped_profile_altivec_128_64;
4027 }
4028 else
4029 #endif
4030 #if HAVE_NEON
4031 if (parasail_can_use_neon()) {
4032 parasail_sg_qx_striped_profile_64_pointer = parasail_sg_qx_striped_profile_neon_128_64;
4033 }
4034 else
4035 #endif
4036 {
4037 parasail_sg_qx_striped_profile_64_pointer = NULL;
4038 }
4039 return parasail_sg_qx_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
4040 }
4041
4042 parasail_result_t* parasail_sg_qx_striped_profile_32_dispatcher(
4043 const parasail_profile_t * const restrict profile,
4044 const char * const restrict s2, const int s2Len,
4045 const int open, const int gap)
4046 {
4047 #if HAVE_AVX2
4048 if (parasail_can_use_avx2()) {
4049 parasail_sg_qx_striped_profile_32_pointer = parasail_sg_qx_striped_profile_avx2_256_32;
4050 }
4051 else
4052 #endif
4053 #if HAVE_SSE41
4054 if (parasail_can_use_sse41()) {
4055 parasail_sg_qx_striped_profile_32_pointer = parasail_sg_qx_striped_profile_sse41_128_32;
4056 }
4057 else
4058 #endif
4059 #if HAVE_SSE2
4060 if (parasail_can_use_sse2()) {
4061 parasail_sg_qx_striped_profile_32_pointer = parasail_sg_qx_striped_profile_sse2_128_32;
4062 }
4063 else
4064 #endif
4065 #if HAVE_ALTIVEC
4066 if (parasail_can_use_altivec()) {
4067 parasail_sg_qx_striped_profile_32_pointer = parasail_sg_qx_striped_profile_altivec_128_32;
4068 }
4069 else
4070 #endif
4071 #if HAVE_NEON
4072 if (parasail_can_use_neon()) {
4073 parasail_sg_qx_striped_profile_32_pointer = parasail_sg_qx_striped_profile_neon_128_32;
4074 }
4075 else
4076 #endif
4077 {
4078 parasail_sg_qx_striped_profile_32_pointer = NULL;
4079 }
4080 return parasail_sg_qx_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
4081 }
4082
4083 parasail_result_t* parasail_sg_qx_striped_profile_16_dispatcher(
4084 const parasail_profile_t * const restrict profile,
4085 const char * const restrict s2, const int s2Len,
4086 const int open, const int gap)
4087 {
4088 #if HAVE_AVX2
4089 if (parasail_can_use_avx2()) {
4090 parasail_sg_qx_striped_profile_16_pointer = parasail_sg_qx_striped_profile_avx2_256_16;
4091 }
4092 else
4093 #endif
4094 #if HAVE_SSE41
4095 if (parasail_can_use_sse41()) {
4096 parasail_sg_qx_striped_profile_16_pointer = parasail_sg_qx_striped_profile_sse41_128_16;
4097 }
4098 else
4099 #endif
4100 #if HAVE_SSE2
4101 if (parasail_can_use_sse2()) {
4102 parasail_sg_qx_striped_profile_16_pointer = parasail_sg_qx_striped_profile_sse2_128_16;
4103 }
4104 else
4105 #endif
4106 #if HAVE_ALTIVEC
4107 if (parasail_can_use_altivec()) {
4108 parasail_sg_qx_striped_profile_16_pointer = parasail_sg_qx_striped_profile_altivec_128_16;
4109 }
4110 else
4111 #endif
4112 #if HAVE_NEON
4113 if (parasail_can_use_neon()) {
4114 parasail_sg_qx_striped_profile_16_pointer = parasail_sg_qx_striped_profile_neon_128_16;
4115 }
4116 else
4117 #endif
4118 {
4119 parasail_sg_qx_striped_profile_16_pointer = NULL;
4120 }
4121 return parasail_sg_qx_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
4122 }
4123
4124 parasail_result_t* parasail_sg_qx_striped_profile_8_dispatcher(
4125 const parasail_profile_t * const restrict profile,
4126 const char * const restrict s2, const int s2Len,
4127 const int open, const int gap)
4128 {
4129 #if HAVE_AVX2
4130 if (parasail_can_use_avx2()) {
4131 parasail_sg_qx_striped_profile_8_pointer = parasail_sg_qx_striped_profile_avx2_256_8;
4132 }
4133 else
4134 #endif
4135 #if HAVE_SSE41
4136 if (parasail_can_use_sse41()) {
4137 parasail_sg_qx_striped_profile_8_pointer = parasail_sg_qx_striped_profile_sse41_128_8;
4138 }
4139 else
4140 #endif
4141 #if HAVE_SSE2
4142 if (parasail_can_use_sse2()) {
4143 parasail_sg_qx_striped_profile_8_pointer = parasail_sg_qx_striped_profile_sse2_128_8;
4144 }
4145 else
4146 #endif
4147 #if HAVE_ALTIVEC
4148 if (parasail_can_use_altivec()) {
4149 parasail_sg_qx_striped_profile_8_pointer = parasail_sg_qx_striped_profile_altivec_128_8;
4150 }
4151 else
4152 #endif
4153 #if HAVE_NEON
4154 if (parasail_can_use_neon()) {
4155 parasail_sg_qx_striped_profile_8_pointer = parasail_sg_qx_striped_profile_neon_128_8;
4156 }
4157 else
4158 #endif
4159 {
4160 parasail_sg_qx_striped_profile_8_pointer = NULL;
4161 }
4162 return parasail_sg_qx_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
4163 }
4164
4165 parasail_result_t* parasail_sg_qx_stats_scan_profile_64_dispatcher(
4166 const parasail_profile_t * const restrict profile,
4167 const char * const restrict s2, const int s2Len,
4168 const int open, const int gap)
4169 {
4170 #if HAVE_AVX2
4171 if (parasail_can_use_avx2()) {
4172 parasail_sg_qx_stats_scan_profile_64_pointer = parasail_sg_qx_stats_scan_profile_avx2_256_64;
4173 }
4174 else
4175 #endif
4176 #if HAVE_SSE41
4177 if (parasail_can_use_sse41()) {
4178 parasail_sg_qx_stats_scan_profile_64_pointer = parasail_sg_qx_stats_scan_profile_sse41_128_64;
4179 }
4180 else
4181 #endif
4182 #if HAVE_SSE2
4183 if (parasail_can_use_sse2()) {
4184 parasail_sg_qx_stats_scan_profile_64_pointer = parasail_sg_qx_stats_scan_profile_sse2_128_64;
4185 }
4186 else
4187 #endif
4188 #if HAVE_ALTIVEC
4189 if (parasail_can_use_altivec()) {
4190 parasail_sg_qx_stats_scan_profile_64_pointer = parasail_sg_qx_stats_scan_profile_altivec_128_64;
4191 }
4192 else
4193 #endif
4194 #if HAVE_NEON
4195 if (parasail_can_use_neon()) {
4196 parasail_sg_qx_stats_scan_profile_64_pointer = parasail_sg_qx_stats_scan_profile_neon_128_64;
4197 }
4198 else
4199 #endif
4200 {
4201 parasail_sg_qx_stats_scan_profile_64_pointer = NULL;
4202 }
4203 return parasail_sg_qx_stats_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
4204 }
4205
4206 parasail_result_t* parasail_sg_qx_stats_scan_profile_32_dispatcher(
4207 const parasail_profile_t * const restrict profile,
4208 const char * const restrict s2, const int s2Len,
4209 const int open, const int gap)
4210 {
4211 #if HAVE_AVX2
4212 if (parasail_can_use_avx2()) {
4213 parasail_sg_qx_stats_scan_profile_32_pointer = parasail_sg_qx_stats_scan_profile_avx2_256_32;
4214 }
4215 else
4216 #endif
4217 #if HAVE_SSE41
4218 if (parasail_can_use_sse41()) {
4219 parasail_sg_qx_stats_scan_profile_32_pointer = parasail_sg_qx_stats_scan_profile_sse41_128_32;
4220 }
4221 else
4222 #endif
4223 #if HAVE_SSE2
4224 if (parasail_can_use_sse2()) {
4225 parasail_sg_qx_stats_scan_profile_32_pointer = parasail_sg_qx_stats_scan_profile_sse2_128_32;
4226 }
4227 else
4228 #endif
4229 #if HAVE_ALTIVEC
4230 if (parasail_can_use_altivec()) {
4231 parasail_sg_qx_stats_scan_profile_32_pointer = parasail_sg_qx_stats_scan_profile_altivec_128_32;
4232 }
4233 else
4234 #endif
4235 #if HAVE_NEON
4236 if (parasail_can_use_neon()) {
4237 parasail_sg_qx_stats_scan_profile_32_pointer = parasail_sg_qx_stats_scan_profile_neon_128_32;
4238 }
4239 else
4240 #endif
4241 {
4242 parasail_sg_qx_stats_scan_profile_32_pointer = NULL;
4243 }
4244 return parasail_sg_qx_stats_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
4245 }
4246
4247 parasail_result_t* parasail_sg_qx_stats_scan_profile_16_dispatcher(
4248 const parasail_profile_t * const restrict profile,
4249 const char * const restrict s2, const int s2Len,
4250 const int open, const int gap)
4251 {
4252 #if HAVE_AVX2
4253 if (parasail_can_use_avx2()) {
4254 parasail_sg_qx_stats_scan_profile_16_pointer = parasail_sg_qx_stats_scan_profile_avx2_256_16;
4255 }
4256 else
4257 #endif
4258 #if HAVE_SSE41
4259 if (parasail_can_use_sse41()) {
4260 parasail_sg_qx_stats_scan_profile_16_pointer = parasail_sg_qx_stats_scan_profile_sse41_128_16;
4261 }
4262 else
4263 #endif
4264 #if HAVE_SSE2
4265 if (parasail_can_use_sse2()) {
4266 parasail_sg_qx_stats_scan_profile_16_pointer = parasail_sg_qx_stats_scan_profile_sse2_128_16;
4267 }
4268 else
4269 #endif
4270 #if HAVE_ALTIVEC
4271 if (parasail_can_use_altivec()) {
4272 parasail_sg_qx_stats_scan_profile_16_pointer = parasail_sg_qx_stats_scan_profile_altivec_128_16;
4273 }
4274 else
4275 #endif
4276 #if HAVE_NEON
4277 if (parasail_can_use_neon()) {
4278 parasail_sg_qx_stats_scan_profile_16_pointer = parasail_sg_qx_stats_scan_profile_neon_128_16;
4279 }
4280 else
4281 #endif
4282 {
4283 parasail_sg_qx_stats_scan_profile_16_pointer = NULL;
4284 }
4285 return parasail_sg_qx_stats_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
4286 }
4287
4288 parasail_result_t* parasail_sg_qx_stats_scan_profile_8_dispatcher(
4289 const parasail_profile_t * const restrict profile,
4290 const char * const restrict s2, const int s2Len,
4291 const int open, const int gap)
4292 {
4293 #if HAVE_AVX2
4294 if (parasail_can_use_avx2()) {
4295 parasail_sg_qx_stats_scan_profile_8_pointer = parasail_sg_qx_stats_scan_profile_avx2_256_8;
4296 }
4297 else
4298 #endif
4299 #if HAVE_SSE41
4300 if (parasail_can_use_sse41()) {
4301 parasail_sg_qx_stats_scan_profile_8_pointer = parasail_sg_qx_stats_scan_profile_sse41_128_8;
4302 }
4303 else
4304 #endif
4305 #if HAVE_SSE2
4306 if (parasail_can_use_sse2()) {
4307 parasail_sg_qx_stats_scan_profile_8_pointer = parasail_sg_qx_stats_scan_profile_sse2_128_8;
4308 }
4309 else
4310 #endif
4311 #if HAVE_ALTIVEC
4312 if (parasail_can_use_altivec()) {
4313 parasail_sg_qx_stats_scan_profile_8_pointer = parasail_sg_qx_stats_scan_profile_altivec_128_8;
4314 }
4315 else
4316 #endif
4317 #if HAVE_NEON
4318 if (parasail_can_use_neon()) {
4319 parasail_sg_qx_stats_scan_profile_8_pointer = parasail_sg_qx_stats_scan_profile_neon_128_8;
4320 }
4321 else
4322 #endif
4323 {
4324 parasail_sg_qx_stats_scan_profile_8_pointer = NULL;
4325 }
4326 return parasail_sg_qx_stats_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
4327 }
4328
4329 parasail_result_t* parasail_sg_qx_stats_striped_profile_64_dispatcher(
4330 const parasail_profile_t * const restrict profile,
4331 const char * const restrict s2, const int s2Len,
4332 const int open, const int gap)
4333 {
4334 #if HAVE_AVX2
4335 if (parasail_can_use_avx2()) {
4336 parasail_sg_qx_stats_striped_profile_64_pointer = parasail_sg_qx_stats_striped_profile_avx2_256_64;
4337 }
4338 else
4339 #endif
4340 #if HAVE_SSE41
4341 if (parasail_can_use_sse41()) {
4342 parasail_sg_qx_stats_striped_profile_64_pointer = parasail_sg_qx_stats_striped_profile_sse41_128_64;
4343 }
4344 else
4345 #endif
4346 #if HAVE_SSE2
4347 if (parasail_can_use_sse2()) {
4348 parasail_sg_qx_stats_striped_profile_64_pointer = parasail_sg_qx_stats_striped_profile_sse2_128_64;
4349 }
4350 else
4351 #endif
4352 #if HAVE_ALTIVEC
4353 if (parasail_can_use_altivec()) {
4354 parasail_sg_qx_stats_striped_profile_64_pointer = parasail_sg_qx_stats_striped_profile_altivec_128_64;
4355 }
4356 else
4357 #endif
4358 #if HAVE_NEON
4359 if (parasail_can_use_neon()) {
4360 parasail_sg_qx_stats_striped_profile_64_pointer = parasail_sg_qx_stats_striped_profile_neon_128_64;
4361 }
4362 else
4363 #endif
4364 {
4365 parasail_sg_qx_stats_striped_profile_64_pointer = NULL;
4366 }
4367 return parasail_sg_qx_stats_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
4368 }
4369
4370 parasail_result_t* parasail_sg_qx_stats_striped_profile_32_dispatcher(
4371 const parasail_profile_t * const restrict profile,
4372 const char * const restrict s2, const int s2Len,
4373 const int open, const int gap)
4374 {
4375 #if HAVE_AVX2
4376 if (parasail_can_use_avx2()) {
4377 parasail_sg_qx_stats_striped_profile_32_pointer = parasail_sg_qx_stats_striped_profile_avx2_256_32;
4378 }
4379 else
4380 #endif
4381 #if HAVE_SSE41
4382 if (parasail_can_use_sse41()) {
4383 parasail_sg_qx_stats_striped_profile_32_pointer = parasail_sg_qx_stats_striped_profile_sse41_128_32;
4384 }
4385 else
4386 #endif
4387 #if HAVE_SSE2
4388 if (parasail_can_use_sse2()) {
4389 parasail_sg_qx_stats_striped_profile_32_pointer = parasail_sg_qx_stats_striped_profile_sse2_128_32;
4390 }
4391 else
4392 #endif
4393 #if HAVE_ALTIVEC
4394 if (parasail_can_use_altivec()) {
4395 parasail_sg_qx_stats_striped_profile_32_pointer = parasail_sg_qx_stats_striped_profile_altivec_128_32;
4396 }
4397 else
4398 #endif
4399 #if HAVE_NEON
4400 if (parasail_can_use_neon()) {
4401 parasail_sg_qx_stats_striped_profile_32_pointer = parasail_sg_qx_stats_striped_profile_neon_128_32;
4402 }
4403 else
4404 #endif
4405 {
4406 parasail_sg_qx_stats_striped_profile_32_pointer = NULL;
4407 }
4408 return parasail_sg_qx_stats_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
4409 }
4410
4411 parasail_result_t* parasail_sg_qx_stats_striped_profile_16_dispatcher(
4412 const parasail_profile_t * const restrict profile,
4413 const char * const restrict s2, const int s2Len,
4414 const int open, const int gap)
4415 {
4416 #if HAVE_AVX2
4417 if (parasail_can_use_avx2()) {
4418 parasail_sg_qx_stats_striped_profile_16_pointer = parasail_sg_qx_stats_striped_profile_avx2_256_16;
4419 }
4420 else
4421 #endif
4422 #if HAVE_SSE41
4423 if (parasail_can_use_sse41()) {
4424 parasail_sg_qx_stats_striped_profile_16_pointer = parasail_sg_qx_stats_striped_profile_sse41_128_16;
4425 }
4426 else
4427 #endif
4428 #if HAVE_SSE2
4429 if (parasail_can_use_sse2()) {
4430 parasail_sg_qx_stats_striped_profile_16_pointer = parasail_sg_qx_stats_striped_profile_sse2_128_16;
4431 }
4432 else
4433 #endif
4434 #if HAVE_ALTIVEC
4435 if (parasail_can_use_altivec()) {
4436 parasail_sg_qx_stats_striped_profile_16_pointer = parasail_sg_qx_stats_striped_profile_altivec_128_16;
4437 }
4438 else
4439 #endif
4440 #if HAVE_NEON
4441 if (parasail_can_use_neon()) {
4442 parasail_sg_qx_stats_striped_profile_16_pointer = parasail_sg_qx_stats_striped_profile_neon_128_16;
4443 }
4444 else
4445 #endif
4446 {
4447 parasail_sg_qx_stats_striped_profile_16_pointer = NULL;
4448 }
4449 return parasail_sg_qx_stats_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
4450 }
4451
4452 parasail_result_t* parasail_sg_qx_stats_striped_profile_8_dispatcher(
4453 const parasail_profile_t * const restrict profile,
4454 const char * const restrict s2, const int s2Len,
4455 const int open, const int gap)
4456 {
4457 #if HAVE_AVX2
4458 if (parasail_can_use_avx2()) {
4459 parasail_sg_qx_stats_striped_profile_8_pointer = parasail_sg_qx_stats_striped_profile_avx2_256_8;
4460 }
4461 else
4462 #endif
4463 #if HAVE_SSE41
4464 if (parasail_can_use_sse41()) {
4465 parasail_sg_qx_stats_striped_profile_8_pointer = parasail_sg_qx_stats_striped_profile_sse41_128_8;
4466 }
4467 else
4468 #endif
4469 #if HAVE_SSE2
4470 if (parasail_can_use_sse2()) {
4471 parasail_sg_qx_stats_striped_profile_8_pointer = parasail_sg_qx_stats_striped_profile_sse2_128_8;
4472 }
4473 else
4474 #endif
4475 #if HAVE_ALTIVEC
4476 if (parasail_can_use_altivec()) {
4477 parasail_sg_qx_stats_striped_profile_8_pointer = parasail_sg_qx_stats_striped_profile_altivec_128_8;
4478 }
4479 else
4480 #endif
4481 #if HAVE_NEON
4482 if (parasail_can_use_neon()) {
4483 parasail_sg_qx_stats_striped_profile_8_pointer = parasail_sg_qx_stats_striped_profile_neon_128_8;
4484 }
4485 else
4486 #endif
4487 {
4488 parasail_sg_qx_stats_striped_profile_8_pointer = NULL;
4489 }
4490 return parasail_sg_qx_stats_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
4491 }
4492
4493 parasail_result_t* parasail_sg_qx_table_scan_profile_64_dispatcher(
4494 const parasail_profile_t * const restrict profile,
4495 const char * const restrict s2, const int s2Len,
4496 const int open, const int gap)
4497 {
4498 #if HAVE_AVX2
4499 if (parasail_can_use_avx2()) {
4500 parasail_sg_qx_table_scan_profile_64_pointer = parasail_sg_qx_table_scan_profile_avx2_256_64;
4501 }
4502 else
4503 #endif
4504 #if HAVE_SSE41
4505 if (parasail_can_use_sse41()) {
4506 parasail_sg_qx_table_scan_profile_64_pointer = parasail_sg_qx_table_scan_profile_sse41_128_64;
4507 }
4508 else
4509 #endif
4510 #if HAVE_SSE2
4511 if (parasail_can_use_sse2()) {
4512 parasail_sg_qx_table_scan_profile_64_pointer = parasail_sg_qx_table_scan_profile_sse2_128_64;
4513 }
4514 else
4515 #endif
4516 #if HAVE_ALTIVEC
4517 if (parasail_can_use_altivec()) {
4518 parasail_sg_qx_table_scan_profile_64_pointer = parasail_sg_qx_table_scan_profile_altivec_128_64;
4519 }
4520 else
4521 #endif
4522 #if HAVE_NEON
4523 if (parasail_can_use_neon()) {
4524 parasail_sg_qx_table_scan_profile_64_pointer = parasail_sg_qx_table_scan_profile_neon_128_64;
4525 }
4526 else
4527 #endif
4528 {
4529 parasail_sg_qx_table_scan_profile_64_pointer = NULL;
4530 }
4531 return parasail_sg_qx_table_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
4532 }
4533
4534 parasail_result_t* parasail_sg_qx_table_scan_profile_32_dispatcher(
4535 const parasail_profile_t * const restrict profile,
4536 const char * const restrict s2, const int s2Len,
4537 const int open, const int gap)
4538 {
4539 #if HAVE_AVX2
4540 if (parasail_can_use_avx2()) {
4541 parasail_sg_qx_table_scan_profile_32_pointer = parasail_sg_qx_table_scan_profile_avx2_256_32;
4542 }
4543 else
4544 #endif
4545 #if HAVE_SSE41
4546 if (parasail_can_use_sse41()) {
4547 parasail_sg_qx_table_scan_profile_32_pointer = parasail_sg_qx_table_scan_profile_sse41_128_32;
4548 }
4549 else
4550 #endif
4551 #if HAVE_SSE2
4552 if (parasail_can_use_sse2()) {
4553 parasail_sg_qx_table_scan_profile_32_pointer = parasail_sg_qx_table_scan_profile_sse2_128_32;
4554 }
4555 else
4556 #endif
4557 #if HAVE_ALTIVEC
4558 if (parasail_can_use_altivec()) {
4559 parasail_sg_qx_table_scan_profile_32_pointer = parasail_sg_qx_table_scan_profile_altivec_128_32;
4560 }
4561 else
4562 #endif
4563 #if HAVE_NEON
4564 if (parasail_can_use_neon()) {
4565 parasail_sg_qx_table_scan_profile_32_pointer = parasail_sg_qx_table_scan_profile_neon_128_32;
4566 }
4567 else
4568 #endif
4569 {
4570 parasail_sg_qx_table_scan_profile_32_pointer = NULL;
4571 }
4572 return parasail_sg_qx_table_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
4573 }
4574
4575 parasail_result_t* parasail_sg_qx_table_scan_profile_16_dispatcher(
4576 const parasail_profile_t * const restrict profile,
4577 const char * const restrict s2, const int s2Len,
4578 const int open, const int gap)
4579 {
4580 #if HAVE_AVX2
4581 if (parasail_can_use_avx2()) {
4582 parasail_sg_qx_table_scan_profile_16_pointer = parasail_sg_qx_table_scan_profile_avx2_256_16;
4583 }
4584 else
4585 #endif
4586 #if HAVE_SSE41
4587 if (parasail_can_use_sse41()) {
4588 parasail_sg_qx_table_scan_profile_16_pointer = parasail_sg_qx_table_scan_profile_sse41_128_16;
4589 }
4590 else
4591 #endif
4592 #if HAVE_SSE2
4593 if (parasail_can_use_sse2()) {
4594 parasail_sg_qx_table_scan_profile_16_pointer = parasail_sg_qx_table_scan_profile_sse2_128_16;
4595 }
4596 else
4597 #endif
4598 #if HAVE_ALTIVEC
4599 if (parasail_can_use_altivec()) {
4600 parasail_sg_qx_table_scan_profile_16_pointer = parasail_sg_qx_table_scan_profile_altivec_128_16;
4601 }
4602 else
4603 #endif
4604 #if HAVE_NEON
4605 if (parasail_can_use_neon()) {
4606 parasail_sg_qx_table_scan_profile_16_pointer = parasail_sg_qx_table_scan_profile_neon_128_16;
4607 }
4608 else
4609 #endif
4610 {
4611 parasail_sg_qx_table_scan_profile_16_pointer = NULL;
4612 }
4613 return parasail_sg_qx_table_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
4614 }
4615
4616 parasail_result_t* parasail_sg_qx_table_scan_profile_8_dispatcher(
4617 const parasail_profile_t * const restrict profile,
4618 const char * const restrict s2, const int s2Len,
4619 const int open, const int gap)
4620 {
4621 #if HAVE_AVX2
4622 if (parasail_can_use_avx2()) {
4623 parasail_sg_qx_table_scan_profile_8_pointer = parasail_sg_qx_table_scan_profile_avx2_256_8;
4624 }
4625 else
4626 #endif
4627 #if HAVE_SSE41
4628 if (parasail_can_use_sse41()) {
4629 parasail_sg_qx_table_scan_profile_8_pointer = parasail_sg_qx_table_scan_profile_sse41_128_8;
4630 }
4631 else
4632 #endif
4633 #if HAVE_SSE2
4634 if (parasail_can_use_sse2()) {
4635 parasail_sg_qx_table_scan_profile_8_pointer = parasail_sg_qx_table_scan_profile_sse2_128_8;
4636 }
4637 else
4638 #endif
4639 #if HAVE_ALTIVEC
4640 if (parasail_can_use_altivec()) {
4641 parasail_sg_qx_table_scan_profile_8_pointer = parasail_sg_qx_table_scan_profile_altivec_128_8;
4642 }
4643 else
4644 #endif
4645 #if HAVE_NEON
4646 if (parasail_can_use_neon()) {
4647 parasail_sg_qx_table_scan_profile_8_pointer = parasail_sg_qx_table_scan_profile_neon_128_8;
4648 }
4649 else
4650 #endif
4651 {
4652 parasail_sg_qx_table_scan_profile_8_pointer = NULL;
4653 }
4654 return parasail_sg_qx_table_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
4655 }
4656
4657 parasail_result_t* parasail_sg_qx_table_striped_profile_64_dispatcher(
4658 const parasail_profile_t * const restrict profile,
4659 const char * const restrict s2, const int s2Len,
4660 const int open, const int gap)
4661 {
4662 #if HAVE_AVX2
4663 if (parasail_can_use_avx2()) {
4664 parasail_sg_qx_table_striped_profile_64_pointer = parasail_sg_qx_table_striped_profile_avx2_256_64;
4665 }
4666 else
4667 #endif
4668 #if HAVE_SSE41
4669 if (parasail_can_use_sse41()) {
4670 parasail_sg_qx_table_striped_profile_64_pointer = parasail_sg_qx_table_striped_profile_sse41_128_64;
4671 }
4672 else
4673 #endif
4674 #if HAVE_SSE2
4675 if (parasail_can_use_sse2()) {
4676 parasail_sg_qx_table_striped_profile_64_pointer = parasail_sg_qx_table_striped_profile_sse2_128_64;
4677 }
4678 else
4679 #endif
4680 #if HAVE_ALTIVEC
4681 if (parasail_can_use_altivec()) {
4682 parasail_sg_qx_table_striped_profile_64_pointer = parasail_sg_qx_table_striped_profile_altivec_128_64;
4683 }
4684 else
4685 #endif
4686 #if HAVE_NEON
4687 if (parasail_can_use_neon()) {
4688 parasail_sg_qx_table_striped_profile_64_pointer = parasail_sg_qx_table_striped_profile_neon_128_64;
4689 }
4690 else
4691 #endif
4692 {
4693 parasail_sg_qx_table_striped_profile_64_pointer = NULL;
4694 }
4695 return parasail_sg_qx_table_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
4696 }
4697
4698 parasail_result_t* parasail_sg_qx_table_striped_profile_32_dispatcher(
4699 const parasail_profile_t * const restrict profile,
4700 const char * const restrict s2, const int s2Len,
4701 const int open, const int gap)
4702 {
4703 #if HAVE_AVX2
4704 if (parasail_can_use_avx2()) {
4705 parasail_sg_qx_table_striped_profile_32_pointer = parasail_sg_qx_table_striped_profile_avx2_256_32;
4706 }
4707 else
4708 #endif
4709 #if HAVE_SSE41
4710 if (parasail_can_use_sse41()) {
4711 parasail_sg_qx_table_striped_profile_32_pointer = parasail_sg_qx_table_striped_profile_sse41_128_32;
4712 }
4713 else
4714 #endif
4715 #if HAVE_SSE2
4716 if (parasail_can_use_sse2()) {
4717 parasail_sg_qx_table_striped_profile_32_pointer = parasail_sg_qx_table_striped_profile_sse2_128_32;
4718 }
4719 else
4720 #endif
4721 #if HAVE_ALTIVEC
4722 if (parasail_can_use_altivec()) {
4723 parasail_sg_qx_table_striped_profile_32_pointer = parasail_sg_qx_table_striped_profile_altivec_128_32;
4724 }
4725 else
4726 #endif
4727 #if HAVE_NEON
4728 if (parasail_can_use_neon()) {
4729 parasail_sg_qx_table_striped_profile_32_pointer = parasail_sg_qx_table_striped_profile_neon_128_32;
4730 }
4731 else
4732 #endif
4733 {
4734 parasail_sg_qx_table_striped_profile_32_pointer = NULL;
4735 }
4736 return parasail_sg_qx_table_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
4737 }
4738
4739 parasail_result_t* parasail_sg_qx_table_striped_profile_16_dispatcher(
4740 const parasail_profile_t * const restrict profile,
4741 const char * const restrict s2, const int s2Len,
4742 const int open, const int gap)
4743 {
4744 #if HAVE_AVX2
4745 if (parasail_can_use_avx2()) {
4746 parasail_sg_qx_table_striped_profile_16_pointer = parasail_sg_qx_table_striped_profile_avx2_256_16;
4747 }
4748 else
4749 #endif
4750 #if HAVE_SSE41
4751 if (parasail_can_use_sse41()) {
4752 parasail_sg_qx_table_striped_profile_16_pointer = parasail_sg_qx_table_striped_profile_sse41_128_16;
4753 }
4754 else
4755 #endif
4756 #if HAVE_SSE2
4757 if (parasail_can_use_sse2()) {
4758 parasail_sg_qx_table_striped_profile_16_pointer = parasail_sg_qx_table_striped_profile_sse2_128_16;
4759 }
4760 else
4761 #endif
4762 #if HAVE_ALTIVEC
4763 if (parasail_can_use_altivec()) {
4764 parasail_sg_qx_table_striped_profile_16_pointer = parasail_sg_qx_table_striped_profile_altivec_128_16;
4765 }
4766 else
4767 #endif
4768 #if HAVE_NEON
4769 if (parasail_can_use_neon()) {
4770 parasail_sg_qx_table_striped_profile_16_pointer = parasail_sg_qx_table_striped_profile_neon_128_16;
4771 }
4772 else
4773 #endif
4774 {
4775 parasail_sg_qx_table_striped_profile_16_pointer = NULL;
4776 }
4777 return parasail_sg_qx_table_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
4778 }
4779
4780 parasail_result_t* parasail_sg_qx_table_striped_profile_8_dispatcher(
4781 const parasail_profile_t * const restrict profile,
4782 const char * const restrict s2, const int s2Len,
4783 const int open, const int gap)
4784 {
4785 #if HAVE_AVX2
4786 if (parasail_can_use_avx2()) {
4787 parasail_sg_qx_table_striped_profile_8_pointer = parasail_sg_qx_table_striped_profile_avx2_256_8;
4788 }
4789 else
4790 #endif
4791 #if HAVE_SSE41
4792 if (parasail_can_use_sse41()) {
4793 parasail_sg_qx_table_striped_profile_8_pointer = parasail_sg_qx_table_striped_profile_sse41_128_8;
4794 }
4795 else
4796 #endif
4797 #if HAVE_SSE2
4798 if (parasail_can_use_sse2()) {
4799 parasail_sg_qx_table_striped_profile_8_pointer = parasail_sg_qx_table_striped_profile_sse2_128_8;
4800 }
4801 else
4802 #endif
4803 #if HAVE_ALTIVEC
4804 if (parasail_can_use_altivec()) {
4805 parasail_sg_qx_table_striped_profile_8_pointer = parasail_sg_qx_table_striped_profile_altivec_128_8;
4806 }
4807 else
4808 #endif
4809 #if HAVE_NEON
4810 if (parasail_can_use_neon()) {
4811 parasail_sg_qx_table_striped_profile_8_pointer = parasail_sg_qx_table_striped_profile_neon_128_8;
4812 }
4813 else
4814 #endif
4815 {
4816 parasail_sg_qx_table_striped_profile_8_pointer = NULL;
4817 }
4818 return parasail_sg_qx_table_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
4819 }
4820
4821 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_64_dispatcher(
4822 const parasail_profile_t * const restrict profile,
4823 const char * const restrict s2, const int s2Len,
4824 const int open, const int gap)
4825 {
4826 #if HAVE_AVX2
4827 if (parasail_can_use_avx2()) {
4828 parasail_sg_qx_stats_table_scan_profile_64_pointer = parasail_sg_qx_stats_table_scan_profile_avx2_256_64;
4829 }
4830 else
4831 #endif
4832 #if HAVE_SSE41
4833 if (parasail_can_use_sse41()) {
4834 parasail_sg_qx_stats_table_scan_profile_64_pointer = parasail_sg_qx_stats_table_scan_profile_sse41_128_64;
4835 }
4836 else
4837 #endif
4838 #if HAVE_SSE2
4839 if (parasail_can_use_sse2()) {
4840 parasail_sg_qx_stats_table_scan_profile_64_pointer = parasail_sg_qx_stats_table_scan_profile_sse2_128_64;
4841 }
4842 else
4843 #endif
4844 #if HAVE_ALTIVEC
4845 if (parasail_can_use_altivec()) {
4846 parasail_sg_qx_stats_table_scan_profile_64_pointer = parasail_sg_qx_stats_table_scan_profile_altivec_128_64;
4847 }
4848 else
4849 #endif
4850 #if HAVE_NEON
4851 if (parasail_can_use_neon()) {
4852 parasail_sg_qx_stats_table_scan_profile_64_pointer = parasail_sg_qx_stats_table_scan_profile_neon_128_64;
4853 }
4854 else
4855 #endif
4856 {
4857 parasail_sg_qx_stats_table_scan_profile_64_pointer = NULL;
4858 }
4859 return parasail_sg_qx_stats_table_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
4860 }
4861
4862 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_32_dispatcher(
4863 const parasail_profile_t * const restrict profile,
4864 const char * const restrict s2, const int s2Len,
4865 const int open, const int gap)
4866 {
4867 #if HAVE_AVX2
4868 if (parasail_can_use_avx2()) {
4869 parasail_sg_qx_stats_table_scan_profile_32_pointer = parasail_sg_qx_stats_table_scan_profile_avx2_256_32;
4870 }
4871 else
4872 #endif
4873 #if HAVE_SSE41
4874 if (parasail_can_use_sse41()) {
4875 parasail_sg_qx_stats_table_scan_profile_32_pointer = parasail_sg_qx_stats_table_scan_profile_sse41_128_32;
4876 }
4877 else
4878 #endif
4879 #if HAVE_SSE2
4880 if (parasail_can_use_sse2()) {
4881 parasail_sg_qx_stats_table_scan_profile_32_pointer = parasail_sg_qx_stats_table_scan_profile_sse2_128_32;
4882 }
4883 else
4884 #endif
4885 #if HAVE_ALTIVEC
4886 if (parasail_can_use_altivec()) {
4887 parasail_sg_qx_stats_table_scan_profile_32_pointer = parasail_sg_qx_stats_table_scan_profile_altivec_128_32;
4888 }
4889 else
4890 #endif
4891 #if HAVE_NEON
4892 if (parasail_can_use_neon()) {
4893 parasail_sg_qx_stats_table_scan_profile_32_pointer = parasail_sg_qx_stats_table_scan_profile_neon_128_32;
4894 }
4895 else
4896 #endif
4897 {
4898 parasail_sg_qx_stats_table_scan_profile_32_pointer = NULL;
4899 }
4900 return parasail_sg_qx_stats_table_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
4901 }
4902
4903 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_16_dispatcher(
4904 const parasail_profile_t * const restrict profile,
4905 const char * const restrict s2, const int s2Len,
4906 const int open, const int gap)
4907 {
4908 #if HAVE_AVX2
4909 if (parasail_can_use_avx2()) {
4910 parasail_sg_qx_stats_table_scan_profile_16_pointer = parasail_sg_qx_stats_table_scan_profile_avx2_256_16;
4911 }
4912 else
4913 #endif
4914 #if HAVE_SSE41
4915 if (parasail_can_use_sse41()) {
4916 parasail_sg_qx_stats_table_scan_profile_16_pointer = parasail_sg_qx_stats_table_scan_profile_sse41_128_16;
4917 }
4918 else
4919 #endif
4920 #if HAVE_SSE2
4921 if (parasail_can_use_sse2()) {
4922 parasail_sg_qx_stats_table_scan_profile_16_pointer = parasail_sg_qx_stats_table_scan_profile_sse2_128_16;
4923 }
4924 else
4925 #endif
4926 #if HAVE_ALTIVEC
4927 if (parasail_can_use_altivec()) {
4928 parasail_sg_qx_stats_table_scan_profile_16_pointer = parasail_sg_qx_stats_table_scan_profile_altivec_128_16;
4929 }
4930 else
4931 #endif
4932 #if HAVE_NEON
4933 if (parasail_can_use_neon()) {
4934 parasail_sg_qx_stats_table_scan_profile_16_pointer = parasail_sg_qx_stats_table_scan_profile_neon_128_16;
4935 }
4936 else
4937 #endif
4938 {
4939 parasail_sg_qx_stats_table_scan_profile_16_pointer = NULL;
4940 }
4941 return parasail_sg_qx_stats_table_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
4942 }
4943
4944 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_8_dispatcher(
4945 const parasail_profile_t * const restrict profile,
4946 const char * const restrict s2, const int s2Len,
4947 const int open, const int gap)
4948 {
4949 #if HAVE_AVX2
4950 if (parasail_can_use_avx2()) {
4951 parasail_sg_qx_stats_table_scan_profile_8_pointer = parasail_sg_qx_stats_table_scan_profile_avx2_256_8;
4952 }
4953 else
4954 #endif
4955 #if HAVE_SSE41
4956 if (parasail_can_use_sse41()) {
4957 parasail_sg_qx_stats_table_scan_profile_8_pointer = parasail_sg_qx_stats_table_scan_profile_sse41_128_8;
4958 }
4959 else
4960 #endif
4961 #if HAVE_SSE2
4962 if (parasail_can_use_sse2()) {
4963 parasail_sg_qx_stats_table_scan_profile_8_pointer = parasail_sg_qx_stats_table_scan_profile_sse2_128_8;
4964 }
4965 else
4966 #endif
4967 #if HAVE_ALTIVEC
4968 if (parasail_can_use_altivec()) {
4969 parasail_sg_qx_stats_table_scan_profile_8_pointer = parasail_sg_qx_stats_table_scan_profile_altivec_128_8;
4970 }
4971 else
4972 #endif
4973 #if HAVE_NEON
4974 if (parasail_can_use_neon()) {
4975 parasail_sg_qx_stats_table_scan_profile_8_pointer = parasail_sg_qx_stats_table_scan_profile_neon_128_8;
4976 }
4977 else
4978 #endif
4979 {
4980 parasail_sg_qx_stats_table_scan_profile_8_pointer = NULL;
4981 }
4982 return parasail_sg_qx_stats_table_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
4983 }
4984
4985 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_64_dispatcher(
4986 const parasail_profile_t * const restrict profile,
4987 const char * const restrict s2, const int s2Len,
4988 const int open, const int gap)
4989 {
4990 #if HAVE_AVX2
4991 if (parasail_can_use_avx2()) {
4992 parasail_sg_qx_stats_table_striped_profile_64_pointer = parasail_sg_qx_stats_table_striped_profile_avx2_256_64;
4993 }
4994 else
4995 #endif
4996 #if HAVE_SSE41
4997 if (parasail_can_use_sse41()) {
4998 parasail_sg_qx_stats_table_striped_profile_64_pointer = parasail_sg_qx_stats_table_striped_profile_sse41_128_64;
4999 }
5000 else
5001 #endif
5002 #if HAVE_SSE2
5003 if (parasail_can_use_sse2()) {
5004 parasail_sg_qx_stats_table_striped_profile_64_pointer = parasail_sg_qx_stats_table_striped_profile_sse2_128_64;
5005 }
5006 else
5007 #endif
5008 #if HAVE_ALTIVEC
5009 if (parasail_can_use_altivec()) {
5010 parasail_sg_qx_stats_table_striped_profile_64_pointer = parasail_sg_qx_stats_table_striped_profile_altivec_128_64;
5011 }
5012 else
5013 #endif
5014 #if HAVE_NEON
5015 if (parasail_can_use_neon()) {
5016 parasail_sg_qx_stats_table_striped_profile_64_pointer = parasail_sg_qx_stats_table_striped_profile_neon_128_64;
5017 }
5018 else
5019 #endif
5020 {
5021 parasail_sg_qx_stats_table_striped_profile_64_pointer = NULL;
5022 }
5023 return parasail_sg_qx_stats_table_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
5024 }
5025
5026 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_32_dispatcher(
5027 const parasail_profile_t * const restrict profile,
5028 const char * const restrict s2, const int s2Len,
5029 const int open, const int gap)
5030 {
5031 #if HAVE_AVX2
5032 if (parasail_can_use_avx2()) {
5033 parasail_sg_qx_stats_table_striped_profile_32_pointer = parasail_sg_qx_stats_table_striped_profile_avx2_256_32;
5034 }
5035 else
5036 #endif
5037 #if HAVE_SSE41
5038 if (parasail_can_use_sse41()) {
5039 parasail_sg_qx_stats_table_striped_profile_32_pointer = parasail_sg_qx_stats_table_striped_profile_sse41_128_32;
5040 }
5041 else
5042 #endif
5043 #if HAVE_SSE2
5044 if (parasail_can_use_sse2()) {
5045 parasail_sg_qx_stats_table_striped_profile_32_pointer = parasail_sg_qx_stats_table_striped_profile_sse2_128_32;
5046 }
5047 else
5048 #endif
5049 #if HAVE_ALTIVEC
5050 if (parasail_can_use_altivec()) {
5051 parasail_sg_qx_stats_table_striped_profile_32_pointer = parasail_sg_qx_stats_table_striped_profile_altivec_128_32;
5052 }
5053 else
5054 #endif
5055 #if HAVE_NEON
5056 if (parasail_can_use_neon()) {
5057 parasail_sg_qx_stats_table_striped_profile_32_pointer = parasail_sg_qx_stats_table_striped_profile_neon_128_32;
5058 }
5059 else
5060 #endif
5061 {
5062 parasail_sg_qx_stats_table_striped_profile_32_pointer = NULL;
5063 }
5064 return parasail_sg_qx_stats_table_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
5065 }
5066
5067 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_16_dispatcher(
5068 const parasail_profile_t * const restrict profile,
5069 const char * const restrict s2, const int s2Len,
5070 const int open, const int gap)
5071 {
5072 #if HAVE_AVX2
5073 if (parasail_can_use_avx2()) {
5074 parasail_sg_qx_stats_table_striped_profile_16_pointer = parasail_sg_qx_stats_table_striped_profile_avx2_256_16;
5075 }
5076 else
5077 #endif
5078 #if HAVE_SSE41
5079 if (parasail_can_use_sse41()) {
5080 parasail_sg_qx_stats_table_striped_profile_16_pointer = parasail_sg_qx_stats_table_striped_profile_sse41_128_16;
5081 }
5082 else
5083 #endif
5084 #if HAVE_SSE2
5085 if (parasail_can_use_sse2()) {
5086 parasail_sg_qx_stats_table_striped_profile_16_pointer = parasail_sg_qx_stats_table_striped_profile_sse2_128_16;
5087 }
5088 else
5089 #endif
5090 #if HAVE_ALTIVEC
5091 if (parasail_can_use_altivec()) {
5092 parasail_sg_qx_stats_table_striped_profile_16_pointer = parasail_sg_qx_stats_table_striped_profile_altivec_128_16;
5093 }
5094 else
5095 #endif
5096 #if HAVE_NEON
5097 if (parasail_can_use_neon()) {
5098 parasail_sg_qx_stats_table_striped_profile_16_pointer = parasail_sg_qx_stats_table_striped_profile_neon_128_16;
5099 }
5100 else
5101 #endif
5102 {
5103 parasail_sg_qx_stats_table_striped_profile_16_pointer = NULL;
5104 }
5105 return parasail_sg_qx_stats_table_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
5106 }
5107
5108 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_8_dispatcher(
5109 const parasail_profile_t * const restrict profile,
5110 const char * const restrict s2, const int s2Len,
5111 const int open, const int gap)
5112 {
5113 #if HAVE_AVX2
5114 if (parasail_can_use_avx2()) {
5115 parasail_sg_qx_stats_table_striped_profile_8_pointer = parasail_sg_qx_stats_table_striped_profile_avx2_256_8;
5116 }
5117 else
5118 #endif
5119 #if HAVE_SSE41
5120 if (parasail_can_use_sse41()) {
5121 parasail_sg_qx_stats_table_striped_profile_8_pointer = parasail_sg_qx_stats_table_striped_profile_sse41_128_8;
5122 }
5123 else
5124 #endif
5125 #if HAVE_SSE2
5126 if (parasail_can_use_sse2()) {
5127 parasail_sg_qx_stats_table_striped_profile_8_pointer = parasail_sg_qx_stats_table_striped_profile_sse2_128_8;
5128 }
5129 else
5130 #endif
5131 #if HAVE_ALTIVEC
5132 if (parasail_can_use_altivec()) {
5133 parasail_sg_qx_stats_table_striped_profile_8_pointer = parasail_sg_qx_stats_table_striped_profile_altivec_128_8;
5134 }
5135 else
5136 #endif
5137 #if HAVE_NEON
5138 if (parasail_can_use_neon()) {
5139 parasail_sg_qx_stats_table_striped_profile_8_pointer = parasail_sg_qx_stats_table_striped_profile_neon_128_8;
5140 }
5141 else
5142 #endif
5143 {
5144 parasail_sg_qx_stats_table_striped_profile_8_pointer = NULL;
5145 }
5146 return parasail_sg_qx_stats_table_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
5147 }
5148
5149 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_64_dispatcher(
5150 const parasail_profile_t * const restrict profile,
5151 const char * const restrict s2, const int s2Len,
5152 const int open, const int gap)
5153 {
5154 #if HAVE_AVX2
5155 if (parasail_can_use_avx2()) {
5156 parasail_sg_qx_rowcol_scan_profile_64_pointer = parasail_sg_qx_rowcol_scan_profile_avx2_256_64;
5157 }
5158 else
5159 #endif
5160 #if HAVE_SSE41
5161 if (parasail_can_use_sse41()) {
5162 parasail_sg_qx_rowcol_scan_profile_64_pointer = parasail_sg_qx_rowcol_scan_profile_sse41_128_64;
5163 }
5164 else
5165 #endif
5166 #if HAVE_SSE2
5167 if (parasail_can_use_sse2()) {
5168 parasail_sg_qx_rowcol_scan_profile_64_pointer = parasail_sg_qx_rowcol_scan_profile_sse2_128_64;
5169 }
5170 else
5171 #endif
5172 #if HAVE_ALTIVEC
5173 if (parasail_can_use_altivec()) {
5174 parasail_sg_qx_rowcol_scan_profile_64_pointer = parasail_sg_qx_rowcol_scan_profile_altivec_128_64;
5175 }
5176 else
5177 #endif
5178 #if HAVE_NEON
5179 if (parasail_can_use_neon()) {
5180 parasail_sg_qx_rowcol_scan_profile_64_pointer = parasail_sg_qx_rowcol_scan_profile_neon_128_64;
5181 }
5182 else
5183 #endif
5184 {
5185 parasail_sg_qx_rowcol_scan_profile_64_pointer = NULL;
5186 }
5187 return parasail_sg_qx_rowcol_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
5188 }
5189
5190 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_32_dispatcher(
5191 const parasail_profile_t * const restrict profile,
5192 const char * const restrict s2, const int s2Len,
5193 const int open, const int gap)
5194 {
5195 #if HAVE_AVX2
5196 if (parasail_can_use_avx2()) {
5197 parasail_sg_qx_rowcol_scan_profile_32_pointer = parasail_sg_qx_rowcol_scan_profile_avx2_256_32;
5198 }
5199 else
5200 #endif
5201 #if HAVE_SSE41
5202 if (parasail_can_use_sse41()) {
5203 parasail_sg_qx_rowcol_scan_profile_32_pointer = parasail_sg_qx_rowcol_scan_profile_sse41_128_32;
5204 }
5205 else
5206 #endif
5207 #if HAVE_SSE2
5208 if (parasail_can_use_sse2()) {
5209 parasail_sg_qx_rowcol_scan_profile_32_pointer = parasail_sg_qx_rowcol_scan_profile_sse2_128_32;
5210 }
5211 else
5212 #endif
5213 #if HAVE_ALTIVEC
5214 if (parasail_can_use_altivec()) {
5215 parasail_sg_qx_rowcol_scan_profile_32_pointer = parasail_sg_qx_rowcol_scan_profile_altivec_128_32;
5216 }
5217 else
5218 #endif
5219 #if HAVE_NEON
5220 if (parasail_can_use_neon()) {
5221 parasail_sg_qx_rowcol_scan_profile_32_pointer = parasail_sg_qx_rowcol_scan_profile_neon_128_32;
5222 }
5223 else
5224 #endif
5225 {
5226 parasail_sg_qx_rowcol_scan_profile_32_pointer = NULL;
5227 }
5228 return parasail_sg_qx_rowcol_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
5229 }
5230
5231 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_16_dispatcher(
5232 const parasail_profile_t * const restrict profile,
5233 const char * const restrict s2, const int s2Len,
5234 const int open, const int gap)
5235 {
5236 #if HAVE_AVX2
5237 if (parasail_can_use_avx2()) {
5238 parasail_sg_qx_rowcol_scan_profile_16_pointer = parasail_sg_qx_rowcol_scan_profile_avx2_256_16;
5239 }
5240 else
5241 #endif
5242 #if HAVE_SSE41
5243 if (parasail_can_use_sse41()) {
5244 parasail_sg_qx_rowcol_scan_profile_16_pointer = parasail_sg_qx_rowcol_scan_profile_sse41_128_16;
5245 }
5246 else
5247 #endif
5248 #if HAVE_SSE2
5249 if (parasail_can_use_sse2()) {
5250 parasail_sg_qx_rowcol_scan_profile_16_pointer = parasail_sg_qx_rowcol_scan_profile_sse2_128_16;
5251 }
5252 else
5253 #endif
5254 #if HAVE_ALTIVEC
5255 if (parasail_can_use_altivec()) {
5256 parasail_sg_qx_rowcol_scan_profile_16_pointer = parasail_sg_qx_rowcol_scan_profile_altivec_128_16;
5257 }
5258 else
5259 #endif
5260 #if HAVE_NEON
5261 if (parasail_can_use_neon()) {
5262 parasail_sg_qx_rowcol_scan_profile_16_pointer = parasail_sg_qx_rowcol_scan_profile_neon_128_16;
5263 }
5264 else
5265 #endif
5266 {
5267 parasail_sg_qx_rowcol_scan_profile_16_pointer = NULL;
5268 }
5269 return parasail_sg_qx_rowcol_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
5270 }
5271
5272 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_8_dispatcher(
5273 const parasail_profile_t * const restrict profile,
5274 const char * const restrict s2, const int s2Len,
5275 const int open, const int gap)
5276 {
5277 #if HAVE_AVX2
5278 if (parasail_can_use_avx2()) {
5279 parasail_sg_qx_rowcol_scan_profile_8_pointer = parasail_sg_qx_rowcol_scan_profile_avx2_256_8;
5280 }
5281 else
5282 #endif
5283 #if HAVE_SSE41
5284 if (parasail_can_use_sse41()) {
5285 parasail_sg_qx_rowcol_scan_profile_8_pointer = parasail_sg_qx_rowcol_scan_profile_sse41_128_8;
5286 }
5287 else
5288 #endif
5289 #if HAVE_SSE2
5290 if (parasail_can_use_sse2()) {
5291 parasail_sg_qx_rowcol_scan_profile_8_pointer = parasail_sg_qx_rowcol_scan_profile_sse2_128_8;
5292 }
5293 else
5294 #endif
5295 #if HAVE_ALTIVEC
5296 if (parasail_can_use_altivec()) {
5297 parasail_sg_qx_rowcol_scan_profile_8_pointer = parasail_sg_qx_rowcol_scan_profile_altivec_128_8;
5298 }
5299 else
5300 #endif
5301 #if HAVE_NEON
5302 if (parasail_can_use_neon()) {
5303 parasail_sg_qx_rowcol_scan_profile_8_pointer = parasail_sg_qx_rowcol_scan_profile_neon_128_8;
5304 }
5305 else
5306 #endif
5307 {
5308 parasail_sg_qx_rowcol_scan_profile_8_pointer = NULL;
5309 }
5310 return parasail_sg_qx_rowcol_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
5311 }
5312
5313 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_64_dispatcher(
5314 const parasail_profile_t * const restrict profile,
5315 const char * const restrict s2, const int s2Len,
5316 const int open, const int gap)
5317 {
5318 #if HAVE_AVX2
5319 if (parasail_can_use_avx2()) {
5320 parasail_sg_qx_rowcol_striped_profile_64_pointer = parasail_sg_qx_rowcol_striped_profile_avx2_256_64;
5321 }
5322 else
5323 #endif
5324 #if HAVE_SSE41
5325 if (parasail_can_use_sse41()) {
5326 parasail_sg_qx_rowcol_striped_profile_64_pointer = parasail_sg_qx_rowcol_striped_profile_sse41_128_64;
5327 }
5328 else
5329 #endif
5330 #if HAVE_SSE2
5331 if (parasail_can_use_sse2()) {
5332 parasail_sg_qx_rowcol_striped_profile_64_pointer = parasail_sg_qx_rowcol_striped_profile_sse2_128_64;
5333 }
5334 else
5335 #endif
5336 #if HAVE_ALTIVEC
5337 if (parasail_can_use_altivec()) {
5338 parasail_sg_qx_rowcol_striped_profile_64_pointer = parasail_sg_qx_rowcol_striped_profile_altivec_128_64;
5339 }
5340 else
5341 #endif
5342 #if HAVE_NEON
5343 if (parasail_can_use_neon()) {
5344 parasail_sg_qx_rowcol_striped_profile_64_pointer = parasail_sg_qx_rowcol_striped_profile_neon_128_64;
5345 }
5346 else
5347 #endif
5348 {
5349 parasail_sg_qx_rowcol_striped_profile_64_pointer = NULL;
5350 }
5351 return parasail_sg_qx_rowcol_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
5352 }
5353
5354 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_32_dispatcher(
5355 const parasail_profile_t * const restrict profile,
5356 const char * const restrict s2, const int s2Len,
5357 const int open, const int gap)
5358 {
5359 #if HAVE_AVX2
5360 if (parasail_can_use_avx2()) {
5361 parasail_sg_qx_rowcol_striped_profile_32_pointer = parasail_sg_qx_rowcol_striped_profile_avx2_256_32;
5362 }
5363 else
5364 #endif
5365 #if HAVE_SSE41
5366 if (parasail_can_use_sse41()) {
5367 parasail_sg_qx_rowcol_striped_profile_32_pointer = parasail_sg_qx_rowcol_striped_profile_sse41_128_32;
5368 }
5369 else
5370 #endif
5371 #if HAVE_SSE2
5372 if (parasail_can_use_sse2()) {
5373 parasail_sg_qx_rowcol_striped_profile_32_pointer = parasail_sg_qx_rowcol_striped_profile_sse2_128_32;
5374 }
5375 else
5376 #endif
5377 #if HAVE_ALTIVEC
5378 if (parasail_can_use_altivec()) {
5379 parasail_sg_qx_rowcol_striped_profile_32_pointer = parasail_sg_qx_rowcol_striped_profile_altivec_128_32;
5380 }
5381 else
5382 #endif
5383 #if HAVE_NEON
5384 if (parasail_can_use_neon()) {
5385 parasail_sg_qx_rowcol_striped_profile_32_pointer = parasail_sg_qx_rowcol_striped_profile_neon_128_32;
5386 }
5387 else
5388 #endif
5389 {
5390 parasail_sg_qx_rowcol_striped_profile_32_pointer = NULL;
5391 }
5392 return parasail_sg_qx_rowcol_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
5393 }
5394
5395 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_16_dispatcher(
5396 const parasail_profile_t * const restrict profile,
5397 const char * const restrict s2, const int s2Len,
5398 const int open, const int gap)
5399 {
5400 #if HAVE_AVX2
5401 if (parasail_can_use_avx2()) {
5402 parasail_sg_qx_rowcol_striped_profile_16_pointer = parasail_sg_qx_rowcol_striped_profile_avx2_256_16;
5403 }
5404 else
5405 #endif
5406 #if HAVE_SSE41
5407 if (parasail_can_use_sse41()) {
5408 parasail_sg_qx_rowcol_striped_profile_16_pointer = parasail_sg_qx_rowcol_striped_profile_sse41_128_16;
5409 }
5410 else
5411 #endif
5412 #if HAVE_SSE2
5413 if (parasail_can_use_sse2()) {
5414 parasail_sg_qx_rowcol_striped_profile_16_pointer = parasail_sg_qx_rowcol_striped_profile_sse2_128_16;
5415 }
5416 else
5417 #endif
5418 #if HAVE_ALTIVEC
5419 if (parasail_can_use_altivec()) {
5420 parasail_sg_qx_rowcol_striped_profile_16_pointer = parasail_sg_qx_rowcol_striped_profile_altivec_128_16;
5421 }
5422 else
5423 #endif
5424 #if HAVE_NEON
5425 if (parasail_can_use_neon()) {
5426 parasail_sg_qx_rowcol_striped_profile_16_pointer = parasail_sg_qx_rowcol_striped_profile_neon_128_16;
5427 }
5428 else
5429 #endif
5430 {
5431 parasail_sg_qx_rowcol_striped_profile_16_pointer = NULL;
5432 }
5433 return parasail_sg_qx_rowcol_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
5434 }
5435
5436 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_8_dispatcher(
5437 const parasail_profile_t * const restrict profile,
5438 const char * const restrict s2, const int s2Len,
5439 const int open, const int gap)
5440 {
5441 #if HAVE_AVX2
5442 if (parasail_can_use_avx2()) {
5443 parasail_sg_qx_rowcol_striped_profile_8_pointer = parasail_sg_qx_rowcol_striped_profile_avx2_256_8;
5444 }
5445 else
5446 #endif
5447 #if HAVE_SSE41
5448 if (parasail_can_use_sse41()) {
5449 parasail_sg_qx_rowcol_striped_profile_8_pointer = parasail_sg_qx_rowcol_striped_profile_sse41_128_8;
5450 }
5451 else
5452 #endif
5453 #if HAVE_SSE2
5454 if (parasail_can_use_sse2()) {
5455 parasail_sg_qx_rowcol_striped_profile_8_pointer = parasail_sg_qx_rowcol_striped_profile_sse2_128_8;
5456 }
5457 else
5458 #endif
5459 #if HAVE_ALTIVEC
5460 if (parasail_can_use_altivec()) {
5461 parasail_sg_qx_rowcol_striped_profile_8_pointer = parasail_sg_qx_rowcol_striped_profile_altivec_128_8;
5462 }
5463 else
5464 #endif
5465 #if HAVE_NEON
5466 if (parasail_can_use_neon()) {
5467 parasail_sg_qx_rowcol_striped_profile_8_pointer = parasail_sg_qx_rowcol_striped_profile_neon_128_8;
5468 }
5469 else
5470 #endif
5471 {
5472 parasail_sg_qx_rowcol_striped_profile_8_pointer = NULL;
5473 }
5474 return parasail_sg_qx_rowcol_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
5475 }
5476
5477 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_64_dispatcher(
5478 const parasail_profile_t * const restrict profile,
5479 const char * const restrict s2, const int s2Len,
5480 const int open, const int gap)
5481 {
5482 #if HAVE_AVX2
5483 if (parasail_can_use_avx2()) {
5484 parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = parasail_sg_qx_stats_rowcol_scan_profile_avx2_256_64;
5485 }
5486 else
5487 #endif
5488 #if HAVE_SSE41
5489 if (parasail_can_use_sse41()) {
5490 parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse41_128_64;
5491 }
5492 else
5493 #endif
5494 #if HAVE_SSE2
5495 if (parasail_can_use_sse2()) {
5496 parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse2_128_64;
5497 }
5498 else
5499 #endif
5500 #if HAVE_ALTIVEC
5501 if (parasail_can_use_altivec()) {
5502 parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = parasail_sg_qx_stats_rowcol_scan_profile_altivec_128_64;
5503 }
5504 else
5505 #endif
5506 #if HAVE_NEON
5507 if (parasail_can_use_neon()) {
5508 parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = parasail_sg_qx_stats_rowcol_scan_profile_neon_128_64;
5509 }
5510 else
5511 #endif
5512 {
5513 parasail_sg_qx_stats_rowcol_scan_profile_64_pointer = NULL;
5514 }
5515 return parasail_sg_qx_stats_rowcol_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
5516 }
5517
5518 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_32_dispatcher(
5519 const parasail_profile_t * const restrict profile,
5520 const char * const restrict s2, const int s2Len,
5521 const int open, const int gap)
5522 {
5523 #if HAVE_AVX2
5524 if (parasail_can_use_avx2()) {
5525 parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = parasail_sg_qx_stats_rowcol_scan_profile_avx2_256_32;
5526 }
5527 else
5528 #endif
5529 #if HAVE_SSE41
5530 if (parasail_can_use_sse41()) {
5531 parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse41_128_32;
5532 }
5533 else
5534 #endif
5535 #if HAVE_SSE2
5536 if (parasail_can_use_sse2()) {
5537 parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse2_128_32;
5538 }
5539 else
5540 #endif
5541 #if HAVE_ALTIVEC
5542 if (parasail_can_use_altivec()) {
5543 parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = parasail_sg_qx_stats_rowcol_scan_profile_altivec_128_32;
5544 }
5545 else
5546 #endif
5547 #if HAVE_NEON
5548 if (parasail_can_use_neon()) {
5549 parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = parasail_sg_qx_stats_rowcol_scan_profile_neon_128_32;
5550 }
5551 else
5552 #endif
5553 {
5554 parasail_sg_qx_stats_rowcol_scan_profile_32_pointer = NULL;
5555 }
5556 return parasail_sg_qx_stats_rowcol_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
5557 }
5558
5559 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_16_dispatcher(
5560 const parasail_profile_t * const restrict profile,
5561 const char * const restrict s2, const int s2Len,
5562 const int open, const int gap)
5563 {
5564 #if HAVE_AVX2
5565 if (parasail_can_use_avx2()) {
5566 parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = parasail_sg_qx_stats_rowcol_scan_profile_avx2_256_16;
5567 }
5568 else
5569 #endif
5570 #if HAVE_SSE41
5571 if (parasail_can_use_sse41()) {
5572 parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse41_128_16;
5573 }
5574 else
5575 #endif
5576 #if HAVE_SSE2
5577 if (parasail_can_use_sse2()) {
5578 parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse2_128_16;
5579 }
5580 else
5581 #endif
5582 #if HAVE_ALTIVEC
5583 if (parasail_can_use_altivec()) {
5584 parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = parasail_sg_qx_stats_rowcol_scan_profile_altivec_128_16;
5585 }
5586 else
5587 #endif
5588 #if HAVE_NEON
5589 if (parasail_can_use_neon()) {
5590 parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = parasail_sg_qx_stats_rowcol_scan_profile_neon_128_16;
5591 }
5592 else
5593 #endif
5594 {
5595 parasail_sg_qx_stats_rowcol_scan_profile_16_pointer = NULL;
5596 }
5597 return parasail_sg_qx_stats_rowcol_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
5598 }
5599
5600 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_8_dispatcher(
5601 const parasail_profile_t * const restrict profile,
5602 const char * const restrict s2, const int s2Len,
5603 const int open, const int gap)
5604 {
5605 #if HAVE_AVX2
5606 if (parasail_can_use_avx2()) {
5607 parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = parasail_sg_qx_stats_rowcol_scan_profile_avx2_256_8;
5608 }
5609 else
5610 #endif
5611 #if HAVE_SSE41
5612 if (parasail_can_use_sse41()) {
5613 parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse41_128_8;
5614 }
5615 else
5616 #endif
5617 #if HAVE_SSE2
5618 if (parasail_can_use_sse2()) {
5619 parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = parasail_sg_qx_stats_rowcol_scan_profile_sse2_128_8;
5620 }
5621 else
5622 #endif
5623 #if HAVE_ALTIVEC
5624 if (parasail_can_use_altivec()) {
5625 parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = parasail_sg_qx_stats_rowcol_scan_profile_altivec_128_8;
5626 }
5627 else
5628 #endif
5629 #if HAVE_NEON
5630 if (parasail_can_use_neon()) {
5631 parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = parasail_sg_qx_stats_rowcol_scan_profile_neon_128_8;
5632 }
5633 else
5634 #endif
5635 {
5636 parasail_sg_qx_stats_rowcol_scan_profile_8_pointer = NULL;
5637 }
5638 return parasail_sg_qx_stats_rowcol_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
5639 }
5640
5641 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_64_dispatcher(
5642 const parasail_profile_t * const restrict profile,
5643 const char * const restrict s2, const int s2Len,
5644 const int open, const int gap)
5645 {
5646 #if HAVE_AVX2
5647 if (parasail_can_use_avx2()) {
5648 parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = parasail_sg_qx_stats_rowcol_striped_profile_avx2_256_64;
5649 }
5650 else
5651 #endif
5652 #if HAVE_SSE41
5653 if (parasail_can_use_sse41()) {
5654 parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse41_128_64;
5655 }
5656 else
5657 #endif
5658 #if HAVE_SSE2
5659 if (parasail_can_use_sse2()) {
5660 parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse2_128_64;
5661 }
5662 else
5663 #endif
5664 #if HAVE_ALTIVEC
5665 if (parasail_can_use_altivec()) {
5666 parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = parasail_sg_qx_stats_rowcol_striped_profile_altivec_128_64;
5667 }
5668 else
5669 #endif
5670 #if HAVE_NEON
5671 if (parasail_can_use_neon()) {
5672 parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = parasail_sg_qx_stats_rowcol_striped_profile_neon_128_64;
5673 }
5674 else
5675 #endif
5676 {
5677 parasail_sg_qx_stats_rowcol_striped_profile_64_pointer = NULL;
5678 }
5679 return parasail_sg_qx_stats_rowcol_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
5680 }
5681
5682 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_32_dispatcher(
5683 const parasail_profile_t * const restrict profile,
5684 const char * const restrict s2, const int s2Len,
5685 const int open, const int gap)
5686 {
5687 #if HAVE_AVX2
5688 if (parasail_can_use_avx2()) {
5689 parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = parasail_sg_qx_stats_rowcol_striped_profile_avx2_256_32;
5690 }
5691 else
5692 #endif
5693 #if HAVE_SSE41
5694 if (parasail_can_use_sse41()) {
5695 parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse41_128_32;
5696 }
5697 else
5698 #endif
5699 #if HAVE_SSE2
5700 if (parasail_can_use_sse2()) {
5701 parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse2_128_32;
5702 }
5703 else
5704 #endif
5705 #if HAVE_ALTIVEC
5706 if (parasail_can_use_altivec()) {
5707 parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = parasail_sg_qx_stats_rowcol_striped_profile_altivec_128_32;
5708 }
5709 else
5710 #endif
5711 #if HAVE_NEON
5712 if (parasail_can_use_neon()) {
5713 parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = parasail_sg_qx_stats_rowcol_striped_profile_neon_128_32;
5714 }
5715 else
5716 #endif
5717 {
5718 parasail_sg_qx_stats_rowcol_striped_profile_32_pointer = NULL;
5719 }
5720 return parasail_sg_qx_stats_rowcol_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
5721 }
5722
5723 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_16_dispatcher(
5724 const parasail_profile_t * const restrict profile,
5725 const char * const restrict s2, const int s2Len,
5726 const int open, const int gap)
5727 {
5728 #if HAVE_AVX2
5729 if (parasail_can_use_avx2()) {
5730 parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = parasail_sg_qx_stats_rowcol_striped_profile_avx2_256_16;
5731 }
5732 else
5733 #endif
5734 #if HAVE_SSE41
5735 if (parasail_can_use_sse41()) {
5736 parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse41_128_16;
5737 }
5738 else
5739 #endif
5740 #if HAVE_SSE2
5741 if (parasail_can_use_sse2()) {
5742 parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse2_128_16;
5743 }
5744 else
5745 #endif
5746 #if HAVE_ALTIVEC
5747 if (parasail_can_use_altivec()) {
5748 parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = parasail_sg_qx_stats_rowcol_striped_profile_altivec_128_16;
5749 }
5750 else
5751 #endif
5752 #if HAVE_NEON
5753 if (parasail_can_use_neon()) {
5754 parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = parasail_sg_qx_stats_rowcol_striped_profile_neon_128_16;
5755 }
5756 else
5757 #endif
5758 {
5759 parasail_sg_qx_stats_rowcol_striped_profile_16_pointer = NULL;
5760 }
5761 return parasail_sg_qx_stats_rowcol_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
5762 }
5763
5764 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_8_dispatcher(
5765 const parasail_profile_t * const restrict profile,
5766 const char * const restrict s2, const int s2Len,
5767 const int open, const int gap)
5768 {
5769 #if HAVE_AVX2
5770 if (parasail_can_use_avx2()) {
5771 parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = parasail_sg_qx_stats_rowcol_striped_profile_avx2_256_8;
5772 }
5773 else
5774 #endif
5775 #if HAVE_SSE41
5776 if (parasail_can_use_sse41()) {
5777 parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse41_128_8;
5778 }
5779 else
5780 #endif
5781 #if HAVE_SSE2
5782 if (parasail_can_use_sse2()) {
5783 parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = parasail_sg_qx_stats_rowcol_striped_profile_sse2_128_8;
5784 }
5785 else
5786 #endif
5787 #if HAVE_ALTIVEC
5788 if (parasail_can_use_altivec()) {
5789 parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = parasail_sg_qx_stats_rowcol_striped_profile_altivec_128_8;
5790 }
5791 else
5792 #endif
5793 #if HAVE_NEON
5794 if (parasail_can_use_neon()) {
5795 parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = parasail_sg_qx_stats_rowcol_striped_profile_neon_128_8;
5796 }
5797 else
5798 #endif
5799 {
5800 parasail_sg_qx_stats_rowcol_striped_profile_8_pointer = NULL;
5801 }
5802 return parasail_sg_qx_stats_rowcol_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
5803 }
5804
5805 parasail_result_t* parasail_sg_qx_trace_scan_profile_64_dispatcher(
5806 const parasail_profile_t * const restrict profile,
5807 const char * const restrict s2, const int s2Len,
5808 const int open, const int gap)
5809 {
5810 #if HAVE_AVX2
5811 if (parasail_can_use_avx2()) {
5812 parasail_sg_qx_trace_scan_profile_64_pointer = parasail_sg_qx_trace_scan_profile_avx2_256_64;
5813 }
5814 else
5815 #endif
5816 #if HAVE_SSE41
5817 if (parasail_can_use_sse41()) {
5818 parasail_sg_qx_trace_scan_profile_64_pointer = parasail_sg_qx_trace_scan_profile_sse41_128_64;
5819 }
5820 else
5821 #endif
5822 #if HAVE_SSE2
5823 if (parasail_can_use_sse2()) {
5824 parasail_sg_qx_trace_scan_profile_64_pointer = parasail_sg_qx_trace_scan_profile_sse2_128_64;
5825 }
5826 else
5827 #endif
5828 #if HAVE_ALTIVEC
5829 if (parasail_can_use_altivec()) {
5830 parasail_sg_qx_trace_scan_profile_64_pointer = parasail_sg_qx_trace_scan_profile_altivec_128_64;
5831 }
5832 else
5833 #endif
5834 #if HAVE_NEON
5835 if (parasail_can_use_neon()) {
5836 parasail_sg_qx_trace_scan_profile_64_pointer = parasail_sg_qx_trace_scan_profile_neon_128_64;
5837 }
5838 else
5839 #endif
5840 {
5841 parasail_sg_qx_trace_scan_profile_64_pointer = NULL;
5842 }
5843 return parasail_sg_qx_trace_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
5844 }
5845
5846 parasail_result_t* parasail_sg_qx_trace_scan_profile_32_dispatcher(
5847 const parasail_profile_t * const restrict profile,
5848 const char * const restrict s2, const int s2Len,
5849 const int open, const int gap)
5850 {
5851 #if HAVE_AVX2
5852 if (parasail_can_use_avx2()) {
5853 parasail_sg_qx_trace_scan_profile_32_pointer = parasail_sg_qx_trace_scan_profile_avx2_256_32;
5854 }
5855 else
5856 #endif
5857 #if HAVE_SSE41
5858 if (parasail_can_use_sse41()) {
5859 parasail_sg_qx_trace_scan_profile_32_pointer = parasail_sg_qx_trace_scan_profile_sse41_128_32;
5860 }
5861 else
5862 #endif
5863 #if HAVE_SSE2
5864 if (parasail_can_use_sse2()) {
5865 parasail_sg_qx_trace_scan_profile_32_pointer = parasail_sg_qx_trace_scan_profile_sse2_128_32;
5866 }
5867 else
5868 #endif
5869 #if HAVE_ALTIVEC
5870 if (parasail_can_use_altivec()) {
5871 parasail_sg_qx_trace_scan_profile_32_pointer = parasail_sg_qx_trace_scan_profile_altivec_128_32;
5872 }
5873 else
5874 #endif
5875 #if HAVE_NEON
5876 if (parasail_can_use_neon()) {
5877 parasail_sg_qx_trace_scan_profile_32_pointer = parasail_sg_qx_trace_scan_profile_neon_128_32;
5878 }
5879 else
5880 #endif
5881 {
5882 parasail_sg_qx_trace_scan_profile_32_pointer = NULL;
5883 }
5884 return parasail_sg_qx_trace_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
5885 }
5886
5887 parasail_result_t* parasail_sg_qx_trace_scan_profile_16_dispatcher(
5888 const parasail_profile_t * const restrict profile,
5889 const char * const restrict s2, const int s2Len,
5890 const int open, const int gap)
5891 {
5892 #if HAVE_AVX2
5893 if (parasail_can_use_avx2()) {
5894 parasail_sg_qx_trace_scan_profile_16_pointer = parasail_sg_qx_trace_scan_profile_avx2_256_16;
5895 }
5896 else
5897 #endif
5898 #if HAVE_SSE41
5899 if (parasail_can_use_sse41()) {
5900 parasail_sg_qx_trace_scan_profile_16_pointer = parasail_sg_qx_trace_scan_profile_sse41_128_16;
5901 }
5902 else
5903 #endif
5904 #if HAVE_SSE2
5905 if (parasail_can_use_sse2()) {
5906 parasail_sg_qx_trace_scan_profile_16_pointer = parasail_sg_qx_trace_scan_profile_sse2_128_16;
5907 }
5908 else
5909 #endif
5910 #if HAVE_ALTIVEC
5911 if (parasail_can_use_altivec()) {
5912 parasail_sg_qx_trace_scan_profile_16_pointer = parasail_sg_qx_trace_scan_profile_altivec_128_16;
5913 }
5914 else
5915 #endif
5916 #if HAVE_NEON
5917 if (parasail_can_use_neon()) {
5918 parasail_sg_qx_trace_scan_profile_16_pointer = parasail_sg_qx_trace_scan_profile_neon_128_16;
5919 }
5920 else
5921 #endif
5922 {
5923 parasail_sg_qx_trace_scan_profile_16_pointer = NULL;
5924 }
5925 return parasail_sg_qx_trace_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
5926 }
5927
5928 parasail_result_t* parasail_sg_qx_trace_scan_profile_8_dispatcher(
5929 const parasail_profile_t * const restrict profile,
5930 const char * const restrict s2, const int s2Len,
5931 const int open, const int gap)
5932 {
5933 #if HAVE_AVX2
5934 if (parasail_can_use_avx2()) {
5935 parasail_sg_qx_trace_scan_profile_8_pointer = parasail_sg_qx_trace_scan_profile_avx2_256_8;
5936 }
5937 else
5938 #endif
5939 #if HAVE_SSE41
5940 if (parasail_can_use_sse41()) {
5941 parasail_sg_qx_trace_scan_profile_8_pointer = parasail_sg_qx_trace_scan_profile_sse41_128_8;
5942 }
5943 else
5944 #endif
5945 #if HAVE_SSE2
5946 if (parasail_can_use_sse2()) {
5947 parasail_sg_qx_trace_scan_profile_8_pointer = parasail_sg_qx_trace_scan_profile_sse2_128_8;
5948 }
5949 else
5950 #endif
5951 #if HAVE_ALTIVEC
5952 if (parasail_can_use_altivec()) {
5953 parasail_sg_qx_trace_scan_profile_8_pointer = parasail_sg_qx_trace_scan_profile_altivec_128_8;
5954 }
5955 else
5956 #endif
5957 #if HAVE_NEON
5958 if (parasail_can_use_neon()) {
5959 parasail_sg_qx_trace_scan_profile_8_pointer = parasail_sg_qx_trace_scan_profile_neon_128_8;
5960 }
5961 else
5962 #endif
5963 {
5964 parasail_sg_qx_trace_scan_profile_8_pointer = NULL;
5965 }
5966 return parasail_sg_qx_trace_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
5967 }
5968
5969 parasail_result_t* parasail_sg_qx_trace_striped_profile_64_dispatcher(
5970 const parasail_profile_t * const restrict profile,
5971 const char * const restrict s2, const int s2Len,
5972 const int open, const int gap)
5973 {
5974 #if HAVE_AVX2
5975 if (parasail_can_use_avx2()) {
5976 parasail_sg_qx_trace_striped_profile_64_pointer = parasail_sg_qx_trace_striped_profile_avx2_256_64;
5977 }
5978 else
5979 #endif
5980 #if HAVE_SSE41
5981 if (parasail_can_use_sse41()) {
5982 parasail_sg_qx_trace_striped_profile_64_pointer = parasail_sg_qx_trace_striped_profile_sse41_128_64;
5983 }
5984 else
5985 #endif
5986 #if HAVE_SSE2
5987 if (parasail_can_use_sse2()) {
5988 parasail_sg_qx_trace_striped_profile_64_pointer = parasail_sg_qx_trace_striped_profile_sse2_128_64;
5989 }
5990 else
5991 #endif
5992 #if HAVE_ALTIVEC
5993 if (parasail_can_use_altivec()) {
5994 parasail_sg_qx_trace_striped_profile_64_pointer = parasail_sg_qx_trace_striped_profile_altivec_128_64;
5995 }
5996 else
5997 #endif
5998 #if HAVE_NEON
5999 if (parasail_can_use_neon()) {
6000 parasail_sg_qx_trace_striped_profile_64_pointer = parasail_sg_qx_trace_striped_profile_neon_128_64;
6001 }
6002 else
6003 #endif
6004 {
6005 parasail_sg_qx_trace_striped_profile_64_pointer = NULL;
6006 }
6007 return parasail_sg_qx_trace_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
6008 }
6009
6010 parasail_result_t* parasail_sg_qx_trace_striped_profile_32_dispatcher(
6011 const parasail_profile_t * const restrict profile,
6012 const char * const restrict s2, const int s2Len,
6013 const int open, const int gap)
6014 {
6015 #if HAVE_AVX2
6016 if (parasail_can_use_avx2()) {
6017 parasail_sg_qx_trace_striped_profile_32_pointer = parasail_sg_qx_trace_striped_profile_avx2_256_32;
6018 }
6019 else
6020 #endif
6021 #if HAVE_SSE41
6022 if (parasail_can_use_sse41()) {
6023 parasail_sg_qx_trace_striped_profile_32_pointer = parasail_sg_qx_trace_striped_profile_sse41_128_32;
6024 }
6025 else
6026 #endif
6027 #if HAVE_SSE2
6028 if (parasail_can_use_sse2()) {
6029 parasail_sg_qx_trace_striped_profile_32_pointer = parasail_sg_qx_trace_striped_profile_sse2_128_32;
6030 }
6031 else
6032 #endif
6033 #if HAVE_ALTIVEC
6034 if (parasail_can_use_altivec()) {
6035 parasail_sg_qx_trace_striped_profile_32_pointer = parasail_sg_qx_trace_striped_profile_altivec_128_32;
6036 }
6037 else
6038 #endif
6039 #if HAVE_NEON
6040 if (parasail_can_use_neon()) {
6041 parasail_sg_qx_trace_striped_profile_32_pointer = parasail_sg_qx_trace_striped_profile_neon_128_32;
6042 }
6043 else
6044 #endif
6045 {
6046 parasail_sg_qx_trace_striped_profile_32_pointer = NULL;
6047 }
6048 return parasail_sg_qx_trace_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
6049 }
6050
6051 parasail_result_t* parasail_sg_qx_trace_striped_profile_16_dispatcher(
6052 const parasail_profile_t * const restrict profile,
6053 const char * const restrict s2, const int s2Len,
6054 const int open, const int gap)
6055 {
6056 #if HAVE_AVX2
6057 if (parasail_can_use_avx2()) {
6058 parasail_sg_qx_trace_striped_profile_16_pointer = parasail_sg_qx_trace_striped_profile_avx2_256_16;
6059 }
6060 else
6061 #endif
6062 #if HAVE_SSE41
6063 if (parasail_can_use_sse41()) {
6064 parasail_sg_qx_trace_striped_profile_16_pointer = parasail_sg_qx_trace_striped_profile_sse41_128_16;
6065 }
6066 else
6067 #endif
6068 #if HAVE_SSE2
6069 if (parasail_can_use_sse2()) {
6070 parasail_sg_qx_trace_striped_profile_16_pointer = parasail_sg_qx_trace_striped_profile_sse2_128_16;
6071 }
6072 else
6073 #endif
6074 #if HAVE_ALTIVEC
6075 if (parasail_can_use_altivec()) {
6076 parasail_sg_qx_trace_striped_profile_16_pointer = parasail_sg_qx_trace_striped_profile_altivec_128_16;
6077 }
6078 else
6079 #endif
6080 #if HAVE_NEON
6081 if (parasail_can_use_neon()) {
6082 parasail_sg_qx_trace_striped_profile_16_pointer = parasail_sg_qx_trace_striped_profile_neon_128_16;
6083 }
6084 else
6085 #endif
6086 {
6087 parasail_sg_qx_trace_striped_profile_16_pointer = NULL;
6088 }
6089 return parasail_sg_qx_trace_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
6090 }
6091
6092 parasail_result_t* parasail_sg_qx_trace_striped_profile_8_dispatcher(
6093 const parasail_profile_t * const restrict profile,
6094 const char * const restrict s2, const int s2Len,
6095 const int open, const int gap)
6096 {
6097 #if HAVE_AVX2
6098 if (parasail_can_use_avx2()) {
6099 parasail_sg_qx_trace_striped_profile_8_pointer = parasail_sg_qx_trace_striped_profile_avx2_256_8;
6100 }
6101 else
6102 #endif
6103 #if HAVE_SSE41
6104 if (parasail_can_use_sse41()) {
6105 parasail_sg_qx_trace_striped_profile_8_pointer = parasail_sg_qx_trace_striped_profile_sse41_128_8;
6106 }
6107 else
6108 #endif
6109 #if HAVE_SSE2
6110 if (parasail_can_use_sse2()) {
6111 parasail_sg_qx_trace_striped_profile_8_pointer = parasail_sg_qx_trace_striped_profile_sse2_128_8;
6112 }
6113 else
6114 #endif
6115 #if HAVE_ALTIVEC
6116 if (parasail_can_use_altivec()) {
6117 parasail_sg_qx_trace_striped_profile_8_pointer = parasail_sg_qx_trace_striped_profile_altivec_128_8;
6118 }
6119 else
6120 #endif
6121 #if HAVE_NEON
6122 if (parasail_can_use_neon()) {
6123 parasail_sg_qx_trace_striped_profile_8_pointer = parasail_sg_qx_trace_striped_profile_neon_128_8;
6124 }
6125 else
6126 #endif
6127 {
6128 parasail_sg_qx_trace_striped_profile_8_pointer = NULL;
6129 }
6130 return parasail_sg_qx_trace_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
6131 }
6132 #endif
6133
6134 /* implementation which simply calls the pointer,
6135 * first time it's the dispatcher, otherwise it's correct impl */
6136
6137 #if 0
6138 parasail_result_t* parasail_sg_qx_scan_64(
6139 const char * const restrict s1, const int s1Len,
6140 const char * const restrict s2, const int s2Len,
6141 const int open, const int gap,
6142 const parasail_matrix_t *matrix)
6143 {
6144 return parasail_sg_qx_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6145 }
6146
6147 parasail_result_t* parasail_sg_qx_scan_32(
6148 const char * const restrict s1, const int s1Len,
6149 const char * const restrict s2, const int s2Len,
6150 const int open, const int gap,
6151 const parasail_matrix_t *matrix)
6152 {
6153 return parasail_sg_qx_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6154 }
6155
6156 parasail_result_t* parasail_sg_qx_scan_16(
6157 const char * const restrict s1, const int s1Len,
6158 const char * const restrict s2, const int s2Len,
6159 const int open, const int gap,
6160 const parasail_matrix_t *matrix)
6161 {
6162 return parasail_sg_qx_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6163 }
6164
6165 parasail_result_t* parasail_sg_qx_scan_8(
6166 const char * const restrict s1, const int s1Len,
6167 const char * const restrict s2, const int s2Len,
6168 const int open, const int gap,
6169 const parasail_matrix_t *matrix)
6170 {
6171 return parasail_sg_qx_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6172 }
6173
6174 parasail_result_t* parasail_sg_qx_striped_64(
6175 const char * const restrict s1, const int s1Len,
6176 const char * const restrict s2, const int s2Len,
6177 const int open, const int gap,
6178 const parasail_matrix_t *matrix)
6179 {
6180 return parasail_sg_qx_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6181 }
6182
6183 parasail_result_t* parasail_sg_qx_striped_32(
6184 const char * const restrict s1, const int s1Len,
6185 const char * const restrict s2, const int s2Len,
6186 const int open, const int gap,
6187 const parasail_matrix_t *matrix)
6188 {
6189 return parasail_sg_qx_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6190 }
6191
6192 parasail_result_t* parasail_sg_qx_striped_16(
6193 const char * const restrict s1, const int s1Len,
6194 const char * const restrict s2, const int s2Len,
6195 const int open, const int gap,
6196 const parasail_matrix_t *matrix)
6197 {
6198 return parasail_sg_qx_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6199 }
6200
6201 parasail_result_t* parasail_sg_qx_striped_8(
6202 const char * const restrict s1, const int s1Len,
6203 const char * const restrict s2, const int s2Len,
6204 const int open, const int gap,
6205 const parasail_matrix_t *matrix)
6206 {
6207 return parasail_sg_qx_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6208 }
6209
6210 parasail_result_t* parasail_sg_qx_diag_64(
6211 const char * const restrict s1, const int s1Len,
6212 const char * const restrict s2, const int s2Len,
6213 const int open, const int gap,
6214 const parasail_matrix_t *matrix)
6215 {
6216 return parasail_sg_qx_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6217 }
6218
6219 parasail_result_t* parasail_sg_qx_diag_32(
6220 const char * const restrict s1, const int s1Len,
6221 const char * const restrict s2, const int s2Len,
6222 const int open, const int gap,
6223 const parasail_matrix_t *matrix)
6224 {
6225 return parasail_sg_qx_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6226 }
6227
6228 parasail_result_t* parasail_sg_qx_diag_16(
6229 const char * const restrict s1, const int s1Len,
6230 const char * const restrict s2, const int s2Len,
6231 const int open, const int gap,
6232 const parasail_matrix_t *matrix)
6233 {
6234 return parasail_sg_qx_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6235 }
6236
6237 parasail_result_t* parasail_sg_qx_diag_8(
6238 const char * const restrict s1, const int s1Len,
6239 const char * const restrict s2, const int s2Len,
6240 const int open, const int gap,
6241 const parasail_matrix_t *matrix)
6242 {
6243 return parasail_sg_qx_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6244 }
6245
6246 parasail_result_t* parasail_sg_qx_stats_scan_64(
6247 const char * const restrict s1, const int s1Len,
6248 const char * const restrict s2, const int s2Len,
6249 const int open, const int gap,
6250 const parasail_matrix_t *matrix)
6251 {
6252 return parasail_sg_qx_stats_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6253 }
6254
6255 parasail_result_t* parasail_sg_qx_stats_scan_32(
6256 const char * const restrict s1, const int s1Len,
6257 const char * const restrict s2, const int s2Len,
6258 const int open, const int gap,
6259 const parasail_matrix_t *matrix)
6260 {
6261 return parasail_sg_qx_stats_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6262 }
6263
6264 parasail_result_t* parasail_sg_qx_stats_scan_16(
6265 const char * const restrict s1, const int s1Len,
6266 const char * const restrict s2, const int s2Len,
6267 const int open, const int gap,
6268 const parasail_matrix_t *matrix)
6269 {
6270 return parasail_sg_qx_stats_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6271 }
6272
6273 parasail_result_t* parasail_sg_qx_stats_scan_8(
6274 const char * const restrict s1, const int s1Len,
6275 const char * const restrict s2, const int s2Len,
6276 const int open, const int gap,
6277 const parasail_matrix_t *matrix)
6278 {
6279 return parasail_sg_qx_stats_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6280 }
6281
6282 parasail_result_t* parasail_sg_qx_stats_striped_64(
6283 const char * const restrict s1, const int s1Len,
6284 const char * const restrict s2, const int s2Len,
6285 const int open, const int gap,
6286 const parasail_matrix_t *matrix)
6287 {
6288 return parasail_sg_qx_stats_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6289 }
6290
6291 parasail_result_t* parasail_sg_qx_stats_striped_32(
6292 const char * const restrict s1, const int s1Len,
6293 const char * const restrict s2, const int s2Len,
6294 const int open, const int gap,
6295 const parasail_matrix_t *matrix)
6296 {
6297 return parasail_sg_qx_stats_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6298 }
6299
6300 parasail_result_t* parasail_sg_qx_stats_striped_16(
6301 const char * const restrict s1, const int s1Len,
6302 const char * const restrict s2, const int s2Len,
6303 const int open, const int gap,
6304 const parasail_matrix_t *matrix)
6305 {
6306 return parasail_sg_qx_stats_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6307 }
6308
6309 parasail_result_t* parasail_sg_qx_stats_striped_8(
6310 const char * const restrict s1, const int s1Len,
6311 const char * const restrict s2, const int s2Len,
6312 const int open, const int gap,
6313 const parasail_matrix_t *matrix)
6314 {
6315 return parasail_sg_qx_stats_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6316 }
6317
6318 parasail_result_t* parasail_sg_qx_stats_diag_64(
6319 const char * const restrict s1, const int s1Len,
6320 const char * const restrict s2, const int s2Len,
6321 const int open, const int gap,
6322 const parasail_matrix_t *matrix)
6323 {
6324 return parasail_sg_qx_stats_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6325 }
6326
6327 parasail_result_t* parasail_sg_qx_stats_diag_32(
6328 const char * const restrict s1, const int s1Len,
6329 const char * const restrict s2, const int s2Len,
6330 const int open, const int gap,
6331 const parasail_matrix_t *matrix)
6332 {
6333 return parasail_sg_qx_stats_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6334 }
6335
6336 parasail_result_t* parasail_sg_qx_stats_diag_16(
6337 const char * const restrict s1, const int s1Len,
6338 const char * const restrict s2, const int s2Len,
6339 const int open, const int gap,
6340 const parasail_matrix_t *matrix)
6341 {
6342 return parasail_sg_qx_stats_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6343 }
6344
6345 parasail_result_t* parasail_sg_qx_stats_diag_8(
6346 const char * const restrict s1, const int s1Len,
6347 const char * const restrict s2, const int s2Len,
6348 const int open, const int gap,
6349 const parasail_matrix_t *matrix)
6350 {
6351 return parasail_sg_qx_stats_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6352 }
6353
6354 parasail_result_t* parasail_sg_qx_table_scan_64(
6355 const char * const restrict s1, const int s1Len,
6356 const char * const restrict s2, const int s2Len,
6357 const int open, const int gap,
6358 const parasail_matrix_t *matrix)
6359 {
6360 return parasail_sg_qx_table_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6361 }
6362
6363 parasail_result_t* parasail_sg_qx_table_scan_32(
6364 const char * const restrict s1, const int s1Len,
6365 const char * const restrict s2, const int s2Len,
6366 const int open, const int gap,
6367 const parasail_matrix_t *matrix)
6368 {
6369 return parasail_sg_qx_table_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6370 }
6371
6372 parasail_result_t* parasail_sg_qx_table_scan_16(
6373 const char * const restrict s1, const int s1Len,
6374 const char * const restrict s2, const int s2Len,
6375 const int open, const int gap,
6376 const parasail_matrix_t *matrix)
6377 {
6378 return parasail_sg_qx_table_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6379 }
6380
6381 parasail_result_t* parasail_sg_qx_table_scan_8(
6382 const char * const restrict s1, const int s1Len,
6383 const char * const restrict s2, const int s2Len,
6384 const int open, const int gap,
6385 const parasail_matrix_t *matrix)
6386 {
6387 return parasail_sg_qx_table_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6388 }
6389
6390 parasail_result_t* parasail_sg_qx_table_striped_64(
6391 const char * const restrict s1, const int s1Len,
6392 const char * const restrict s2, const int s2Len,
6393 const int open, const int gap,
6394 const parasail_matrix_t *matrix)
6395 {
6396 return parasail_sg_qx_table_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6397 }
6398
6399 parasail_result_t* parasail_sg_qx_table_striped_32(
6400 const char * const restrict s1, const int s1Len,
6401 const char * const restrict s2, const int s2Len,
6402 const int open, const int gap,
6403 const parasail_matrix_t *matrix)
6404 {
6405 return parasail_sg_qx_table_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6406 }
6407
6408 parasail_result_t* parasail_sg_qx_table_striped_16(
6409 const char * const restrict s1, const int s1Len,
6410 const char * const restrict s2, const int s2Len,
6411 const int open, const int gap,
6412 const parasail_matrix_t *matrix)
6413 {
6414 return parasail_sg_qx_table_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6415 }
6416
6417 parasail_result_t* parasail_sg_qx_table_striped_8(
6418 const char * const restrict s1, const int s1Len,
6419 const char * const restrict s2, const int s2Len,
6420 const int open, const int gap,
6421 const parasail_matrix_t *matrix)
6422 {
6423 return parasail_sg_qx_table_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6424 }
6425
6426 parasail_result_t* parasail_sg_qx_table_diag_64(
6427 const char * const restrict s1, const int s1Len,
6428 const char * const restrict s2, const int s2Len,
6429 const int open, const int gap,
6430 const parasail_matrix_t *matrix)
6431 {
6432 return parasail_sg_qx_table_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6433 }
6434
6435 parasail_result_t* parasail_sg_qx_table_diag_32(
6436 const char * const restrict s1, const int s1Len,
6437 const char * const restrict s2, const int s2Len,
6438 const int open, const int gap,
6439 const parasail_matrix_t *matrix)
6440 {
6441 return parasail_sg_qx_table_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6442 }
6443
6444 parasail_result_t* parasail_sg_qx_table_diag_16(
6445 const char * const restrict s1, const int s1Len,
6446 const char * const restrict s2, const int s2Len,
6447 const int open, const int gap,
6448 const parasail_matrix_t *matrix)
6449 {
6450 return parasail_sg_qx_table_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6451 }
6452
6453 parasail_result_t* parasail_sg_qx_table_diag_8(
6454 const char * const restrict s1, const int s1Len,
6455 const char * const restrict s2, const int s2Len,
6456 const int open, const int gap,
6457 const parasail_matrix_t *matrix)
6458 {
6459 return parasail_sg_qx_table_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6460 }
6461
6462 parasail_result_t* parasail_sg_qx_stats_table_scan_64(
6463 const char * const restrict s1, const int s1Len,
6464 const char * const restrict s2, const int s2Len,
6465 const int open, const int gap,
6466 const parasail_matrix_t *matrix)
6467 {
6468 return parasail_sg_qx_stats_table_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6469 }
6470
6471 parasail_result_t* parasail_sg_qx_stats_table_scan_32(
6472 const char * const restrict s1, const int s1Len,
6473 const char * const restrict s2, const int s2Len,
6474 const int open, const int gap,
6475 const parasail_matrix_t *matrix)
6476 {
6477 return parasail_sg_qx_stats_table_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6478 }
6479
6480 parasail_result_t* parasail_sg_qx_stats_table_scan_16(
6481 const char * const restrict s1, const int s1Len,
6482 const char * const restrict s2, const int s2Len,
6483 const int open, const int gap,
6484 const parasail_matrix_t *matrix)
6485 {
6486 return parasail_sg_qx_stats_table_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6487 }
6488
6489 parasail_result_t* parasail_sg_qx_stats_table_scan_8(
6490 const char * const restrict s1, const int s1Len,
6491 const char * const restrict s2, const int s2Len,
6492 const int open, const int gap,
6493 const parasail_matrix_t *matrix)
6494 {
6495 return parasail_sg_qx_stats_table_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6496 }
6497
6498 parasail_result_t* parasail_sg_qx_stats_table_striped_64(
6499 const char * const restrict s1, const int s1Len,
6500 const char * const restrict s2, const int s2Len,
6501 const int open, const int gap,
6502 const parasail_matrix_t *matrix)
6503 {
6504 return parasail_sg_qx_stats_table_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6505 }
6506
6507 parasail_result_t* parasail_sg_qx_stats_table_striped_32(
6508 const char * const restrict s1, const int s1Len,
6509 const char * const restrict s2, const int s2Len,
6510 const int open, const int gap,
6511 const parasail_matrix_t *matrix)
6512 {
6513 return parasail_sg_qx_stats_table_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6514 }
6515
6516 parasail_result_t* parasail_sg_qx_stats_table_striped_16(
6517 const char * const restrict s1, const int s1Len,
6518 const char * const restrict s2, const int s2Len,
6519 const int open, const int gap,
6520 const parasail_matrix_t *matrix)
6521 {
6522 return parasail_sg_qx_stats_table_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6523 }
6524
6525 parasail_result_t* parasail_sg_qx_stats_table_striped_8(
6526 const char * const restrict s1, const int s1Len,
6527 const char * const restrict s2, const int s2Len,
6528 const int open, const int gap,
6529 const parasail_matrix_t *matrix)
6530 {
6531 return parasail_sg_qx_stats_table_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6532 }
6533
6534 parasail_result_t* parasail_sg_qx_stats_table_diag_64(
6535 const char * const restrict s1, const int s1Len,
6536 const char * const restrict s2, const int s2Len,
6537 const int open, const int gap,
6538 const parasail_matrix_t *matrix)
6539 {
6540 return parasail_sg_qx_stats_table_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6541 }
6542
6543 parasail_result_t* parasail_sg_qx_stats_table_diag_32(
6544 const char * const restrict s1, const int s1Len,
6545 const char * const restrict s2, const int s2Len,
6546 const int open, const int gap,
6547 const parasail_matrix_t *matrix)
6548 {
6549 return parasail_sg_qx_stats_table_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6550 }
6551
6552 parasail_result_t* parasail_sg_qx_stats_table_diag_16(
6553 const char * const restrict s1, const int s1Len,
6554 const char * const restrict s2, const int s2Len,
6555 const int open, const int gap,
6556 const parasail_matrix_t *matrix)
6557 {
6558 return parasail_sg_qx_stats_table_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6559 }
6560
6561 parasail_result_t* parasail_sg_qx_stats_table_diag_8(
6562 const char * const restrict s1, const int s1Len,
6563 const char * const restrict s2, const int s2Len,
6564 const int open, const int gap,
6565 const parasail_matrix_t *matrix)
6566 {
6567 return parasail_sg_qx_stats_table_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6568 }
6569
6570 parasail_result_t* parasail_sg_qx_rowcol_scan_64(
6571 const char * const restrict s1, const int s1Len,
6572 const char * const restrict s2, const int s2Len,
6573 const int open, const int gap,
6574 const parasail_matrix_t *matrix)
6575 {
6576 return parasail_sg_qx_rowcol_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6577 }
6578
6579 parasail_result_t* parasail_sg_qx_rowcol_scan_32(
6580 const char * const restrict s1, const int s1Len,
6581 const char * const restrict s2, const int s2Len,
6582 const int open, const int gap,
6583 const parasail_matrix_t *matrix)
6584 {
6585 return parasail_sg_qx_rowcol_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6586 }
6587
6588 parasail_result_t* parasail_sg_qx_rowcol_scan_16(
6589 const char * const restrict s1, const int s1Len,
6590 const char * const restrict s2, const int s2Len,
6591 const int open, const int gap,
6592 const parasail_matrix_t *matrix)
6593 {
6594 return parasail_sg_qx_rowcol_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6595 }
6596
6597 parasail_result_t* parasail_sg_qx_rowcol_scan_8(
6598 const char * const restrict s1, const int s1Len,
6599 const char * const restrict s2, const int s2Len,
6600 const int open, const int gap,
6601 const parasail_matrix_t *matrix)
6602 {
6603 return parasail_sg_qx_rowcol_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6604 }
6605
6606 parasail_result_t* parasail_sg_qx_rowcol_striped_64(
6607 const char * const restrict s1, const int s1Len,
6608 const char * const restrict s2, const int s2Len,
6609 const int open, const int gap,
6610 const parasail_matrix_t *matrix)
6611 {
6612 return parasail_sg_qx_rowcol_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6613 }
6614
6615 parasail_result_t* parasail_sg_qx_rowcol_striped_32(
6616 const char * const restrict s1, const int s1Len,
6617 const char * const restrict s2, const int s2Len,
6618 const int open, const int gap,
6619 const parasail_matrix_t *matrix)
6620 {
6621 return parasail_sg_qx_rowcol_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6622 }
6623
6624 parasail_result_t* parasail_sg_qx_rowcol_striped_16(
6625 const char * const restrict s1, const int s1Len,
6626 const char * const restrict s2, const int s2Len,
6627 const int open, const int gap,
6628 const parasail_matrix_t *matrix)
6629 {
6630 return parasail_sg_qx_rowcol_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6631 }
6632
6633 parasail_result_t* parasail_sg_qx_rowcol_striped_8(
6634 const char * const restrict s1, const int s1Len,
6635 const char * const restrict s2, const int s2Len,
6636 const int open, const int gap,
6637 const parasail_matrix_t *matrix)
6638 {
6639 return parasail_sg_qx_rowcol_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6640 }
6641
6642 parasail_result_t* parasail_sg_qx_rowcol_diag_64(
6643 const char * const restrict s1, const int s1Len,
6644 const char * const restrict s2, const int s2Len,
6645 const int open, const int gap,
6646 const parasail_matrix_t *matrix)
6647 {
6648 return parasail_sg_qx_rowcol_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6649 }
6650
6651 parasail_result_t* parasail_sg_qx_rowcol_diag_32(
6652 const char * const restrict s1, const int s1Len,
6653 const char * const restrict s2, const int s2Len,
6654 const int open, const int gap,
6655 const parasail_matrix_t *matrix)
6656 {
6657 return parasail_sg_qx_rowcol_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6658 }
6659
6660 parasail_result_t* parasail_sg_qx_rowcol_diag_16(
6661 const char * const restrict s1, const int s1Len,
6662 const char * const restrict s2, const int s2Len,
6663 const int open, const int gap,
6664 const parasail_matrix_t *matrix)
6665 {
6666 return parasail_sg_qx_rowcol_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6667 }
6668
6669 parasail_result_t* parasail_sg_qx_rowcol_diag_8(
6670 const char * const restrict s1, const int s1Len,
6671 const char * const restrict s2, const int s2Len,
6672 const int open, const int gap,
6673 const parasail_matrix_t *matrix)
6674 {
6675 return parasail_sg_qx_rowcol_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6676 }
6677
6678 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_64(
6679 const char * const restrict s1, const int s1Len,
6680 const char * const restrict s2, const int s2Len,
6681 const int open, const int gap,
6682 const parasail_matrix_t *matrix)
6683 {
6684 return parasail_sg_qx_stats_rowcol_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6685 }
6686
6687 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_32(
6688 const char * const restrict s1, const int s1Len,
6689 const char * const restrict s2, const int s2Len,
6690 const int open, const int gap,
6691 const parasail_matrix_t *matrix)
6692 {
6693 return parasail_sg_qx_stats_rowcol_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6694 }
6695
6696 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_16(
6697 const char * const restrict s1, const int s1Len,
6698 const char * const restrict s2, const int s2Len,
6699 const int open, const int gap,
6700 const parasail_matrix_t *matrix)
6701 {
6702 return parasail_sg_qx_stats_rowcol_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6703 }
6704
6705 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_8(
6706 const char * const restrict s1, const int s1Len,
6707 const char * const restrict s2, const int s2Len,
6708 const int open, const int gap,
6709 const parasail_matrix_t *matrix)
6710 {
6711 return parasail_sg_qx_stats_rowcol_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6712 }
6713
6714 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_64(
6715 const char * const restrict s1, const int s1Len,
6716 const char * const restrict s2, const int s2Len,
6717 const int open, const int gap,
6718 const parasail_matrix_t *matrix)
6719 {
6720 return parasail_sg_qx_stats_rowcol_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6721 }
6722
6723 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_32(
6724 const char * const restrict s1, const int s1Len,
6725 const char * const restrict s2, const int s2Len,
6726 const int open, const int gap,
6727 const parasail_matrix_t *matrix)
6728 {
6729 return parasail_sg_qx_stats_rowcol_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6730 }
6731
6732 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_16(
6733 const char * const restrict s1, const int s1Len,
6734 const char * const restrict s2, const int s2Len,
6735 const int open, const int gap,
6736 const parasail_matrix_t *matrix)
6737 {
6738 return parasail_sg_qx_stats_rowcol_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6739 }
6740
6741 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_8(
6742 const char * const restrict s1, const int s1Len,
6743 const char * const restrict s2, const int s2Len,
6744 const int open, const int gap,
6745 const parasail_matrix_t *matrix)
6746 {
6747 return parasail_sg_qx_stats_rowcol_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6748 }
6749
6750 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_64(
6751 const char * const restrict s1, const int s1Len,
6752 const char * const restrict s2, const int s2Len,
6753 const int open, const int gap,
6754 const parasail_matrix_t *matrix)
6755 {
6756 return parasail_sg_qx_stats_rowcol_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6757 }
6758
6759 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_32(
6760 const char * const restrict s1, const int s1Len,
6761 const char * const restrict s2, const int s2Len,
6762 const int open, const int gap,
6763 const parasail_matrix_t *matrix)
6764 {
6765 return parasail_sg_qx_stats_rowcol_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6766 }
6767
6768 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_16(
6769 const char * const restrict s1, const int s1Len,
6770 const char * const restrict s2, const int s2Len,
6771 const int open, const int gap,
6772 const parasail_matrix_t *matrix)
6773 {
6774 return parasail_sg_qx_stats_rowcol_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6775 }
6776
6777 parasail_result_t* parasail_sg_qx_stats_rowcol_diag_8(
6778 const char * const restrict s1, const int s1Len,
6779 const char * const restrict s2, const int s2Len,
6780 const int open, const int gap,
6781 const parasail_matrix_t *matrix)
6782 {
6783 return parasail_sg_qx_stats_rowcol_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6784 }
6785
6786 parasail_result_t* parasail_sg_qx_trace_scan_64(
6787 const char * const restrict s1, const int s1Len,
6788 const char * const restrict s2, const int s2Len,
6789 const int open, const int gap,
6790 const parasail_matrix_t *matrix)
6791 {
6792 return parasail_sg_qx_trace_scan_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6793 }
6794
6795 parasail_result_t* parasail_sg_qx_trace_scan_32(
6796 const char * const restrict s1, const int s1Len,
6797 const char * const restrict s2, const int s2Len,
6798 const int open, const int gap,
6799 const parasail_matrix_t *matrix)
6800 {
6801 return parasail_sg_qx_trace_scan_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6802 }
6803
6804 parasail_result_t* parasail_sg_qx_trace_scan_16(
6805 const char * const restrict s1, const int s1Len,
6806 const char * const restrict s2, const int s2Len,
6807 const int open, const int gap,
6808 const parasail_matrix_t *matrix)
6809 {
6810 return parasail_sg_qx_trace_scan_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6811 }
6812
6813 parasail_result_t* parasail_sg_qx_trace_scan_8(
6814 const char * const restrict s1, const int s1Len,
6815 const char * const restrict s2, const int s2Len,
6816 const int open, const int gap,
6817 const parasail_matrix_t *matrix)
6818 {
6819 return parasail_sg_qx_trace_scan_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6820 }
6821
6822 parasail_result_t* parasail_sg_qx_trace_striped_64(
6823 const char * const restrict s1, const int s1Len,
6824 const char * const restrict s2, const int s2Len,
6825 const int open, const int gap,
6826 const parasail_matrix_t *matrix)
6827 {
6828 return parasail_sg_qx_trace_striped_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6829 }
6830 #endif
6831
parasail_sg_qx_trace_striped_32(const char * const restrict s1,const int s1Len,const char * const restrict s2,const int s2Len,const int open,const int gap,const parasail_matrix_t * matrix)6832 parasail_result_t* parasail_sg_qx_trace_striped_32(
6833 const char * const restrict s1, const int s1Len,
6834 const char * const restrict s2, const int s2Len,
6835 const int open, const int gap,
6836 const parasail_matrix_t *matrix)
6837 {
6838 return parasail_sg_qx_trace_striped_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6839 }
6840
parasail_sg_qx_trace_striped_16(const char * const restrict s1,const int s1Len,const char * const restrict s2,const int s2Len,const int open,const int gap,const parasail_matrix_t * matrix)6841 parasail_result_t* parasail_sg_qx_trace_striped_16(
6842 const char * const restrict s1, const int s1Len,
6843 const char * const restrict s2, const int s2Len,
6844 const int open, const int gap,
6845 const parasail_matrix_t *matrix)
6846 {
6847 return parasail_sg_qx_trace_striped_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6848 }
6849
6850 #if 0
6851 parasail_result_t* parasail_sg_qx_trace_striped_8(
6852 const char * const restrict s1, const int s1Len,
6853 const char * const restrict s2, const int s2Len,
6854 const int open, const int gap,
6855 const parasail_matrix_t *matrix)
6856 {
6857 return parasail_sg_qx_trace_striped_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6858 }
6859
6860 parasail_result_t* parasail_sg_qx_trace_diag_64(
6861 const char * const restrict s1, const int s1Len,
6862 const char * const restrict s2, const int s2Len,
6863 const int open, const int gap,
6864 const parasail_matrix_t *matrix)
6865 {
6866 return parasail_sg_qx_trace_diag_64_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6867 }
6868
6869 parasail_result_t* parasail_sg_qx_trace_diag_32(
6870 const char * const restrict s1, const int s1Len,
6871 const char * const restrict s2, const int s2Len,
6872 const int open, const int gap,
6873 const parasail_matrix_t *matrix)
6874 {
6875 return parasail_sg_qx_trace_diag_32_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6876 }
6877
6878 parasail_result_t* parasail_sg_qx_trace_diag_16(
6879 const char * const restrict s1, const int s1Len,
6880 const char * const restrict s2, const int s2Len,
6881 const int open, const int gap,
6882 const parasail_matrix_t *matrix)
6883 {
6884 return parasail_sg_qx_trace_diag_16_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6885 }
6886
6887 parasail_result_t* parasail_sg_qx_trace_diag_8(
6888 const char * const restrict s1, const int s1Len,
6889 const char * const restrict s2, const int s2Len,
6890 const int open, const int gap,
6891 const parasail_matrix_t *matrix)
6892 {
6893 return parasail_sg_qx_trace_diag_8_pointer(s1, s1Len, s2, s2Len, open, gap, matrix);
6894 }
6895
6896 parasail_result_t* parasail_sg_qx_scan_profile_64(
6897 const parasail_profile_t * const restrict profile,
6898 const char * const restrict s2, const int s2Len,
6899 const int open, const int gap)
6900 {
6901 return parasail_sg_qx_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
6902 }
6903
6904 parasail_result_t* parasail_sg_qx_scan_profile_32(
6905 const parasail_profile_t * const restrict profile,
6906 const char * const restrict s2, const int s2Len,
6907 const int open, const int gap)
6908 {
6909 return parasail_sg_qx_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
6910 }
6911
6912 parasail_result_t* parasail_sg_qx_scan_profile_16(
6913 const parasail_profile_t * const restrict profile,
6914 const char * const restrict s2, const int s2Len,
6915 const int open, const int gap)
6916 {
6917 return parasail_sg_qx_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
6918 }
6919
6920 parasail_result_t* parasail_sg_qx_scan_profile_8(
6921 const parasail_profile_t * const restrict profile,
6922 const char * const restrict s2, const int s2Len,
6923 const int open, const int gap)
6924 {
6925 return parasail_sg_qx_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
6926 }
6927
6928 parasail_result_t* parasail_sg_qx_striped_profile_64(
6929 const parasail_profile_t * const restrict profile,
6930 const char * const restrict s2, const int s2Len,
6931 const int open, const int gap)
6932 {
6933 return parasail_sg_qx_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
6934 }
6935
6936 parasail_result_t* parasail_sg_qx_striped_profile_32(
6937 const parasail_profile_t * const restrict profile,
6938 const char * const restrict s2, const int s2Len,
6939 const int open, const int gap)
6940 {
6941 return parasail_sg_qx_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
6942 }
6943
6944 parasail_result_t* parasail_sg_qx_striped_profile_16(
6945 const parasail_profile_t * const restrict profile,
6946 const char * const restrict s2, const int s2Len,
6947 const int open, const int gap)
6948 {
6949 return parasail_sg_qx_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
6950 }
6951
6952 parasail_result_t* parasail_sg_qx_striped_profile_8(
6953 const parasail_profile_t * const restrict profile,
6954 const char * const restrict s2, const int s2Len,
6955 const int open, const int gap)
6956 {
6957 return parasail_sg_qx_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
6958 }
6959
6960 parasail_result_t* parasail_sg_qx_stats_scan_profile_64(
6961 const parasail_profile_t * const restrict profile,
6962 const char * const restrict s2, const int s2Len,
6963 const int open, const int gap)
6964 {
6965 return parasail_sg_qx_stats_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
6966 }
6967
6968 parasail_result_t* parasail_sg_qx_stats_scan_profile_32(
6969 const parasail_profile_t * const restrict profile,
6970 const char * const restrict s2, const int s2Len,
6971 const int open, const int gap)
6972 {
6973 return parasail_sg_qx_stats_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
6974 }
6975
6976 parasail_result_t* parasail_sg_qx_stats_scan_profile_16(
6977 const parasail_profile_t * const restrict profile,
6978 const char * const restrict s2, const int s2Len,
6979 const int open, const int gap)
6980 {
6981 return parasail_sg_qx_stats_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
6982 }
6983
6984 parasail_result_t* parasail_sg_qx_stats_scan_profile_8(
6985 const parasail_profile_t * const restrict profile,
6986 const char * const restrict s2, const int s2Len,
6987 const int open, const int gap)
6988 {
6989 return parasail_sg_qx_stats_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
6990 }
6991
6992 parasail_result_t* parasail_sg_qx_stats_striped_profile_64(
6993 const parasail_profile_t * const restrict profile,
6994 const char * const restrict s2, const int s2Len,
6995 const int open, const int gap)
6996 {
6997 return parasail_sg_qx_stats_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
6998 }
6999
7000 parasail_result_t* parasail_sg_qx_stats_striped_profile_32(
7001 const parasail_profile_t * const restrict profile,
7002 const char * const restrict s2, const int s2Len,
7003 const int open, const int gap)
7004 {
7005 return parasail_sg_qx_stats_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
7006 }
7007
7008 parasail_result_t* parasail_sg_qx_stats_striped_profile_16(
7009 const parasail_profile_t * const restrict profile,
7010 const char * const restrict s2, const int s2Len,
7011 const int open, const int gap)
7012 {
7013 return parasail_sg_qx_stats_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
7014 }
7015
7016 parasail_result_t* parasail_sg_qx_stats_striped_profile_8(
7017 const parasail_profile_t * const restrict profile,
7018 const char * const restrict s2, const int s2Len,
7019 const int open, const int gap)
7020 {
7021 return parasail_sg_qx_stats_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
7022 }
7023
7024 parasail_result_t* parasail_sg_qx_table_scan_profile_64(
7025 const parasail_profile_t * const restrict profile,
7026 const char * const restrict s2, const int s2Len,
7027 const int open, const int gap)
7028 {
7029 return parasail_sg_qx_table_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
7030 }
7031
7032 parasail_result_t* parasail_sg_qx_table_scan_profile_32(
7033 const parasail_profile_t * const restrict profile,
7034 const char * const restrict s2, const int s2Len,
7035 const int open, const int gap)
7036 {
7037 return parasail_sg_qx_table_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
7038 }
7039
7040 parasail_result_t* parasail_sg_qx_table_scan_profile_16(
7041 const parasail_profile_t * const restrict profile,
7042 const char * const restrict s2, const int s2Len,
7043 const int open, const int gap)
7044 {
7045 return parasail_sg_qx_table_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
7046 }
7047
7048 parasail_result_t* parasail_sg_qx_table_scan_profile_8(
7049 const parasail_profile_t * const restrict profile,
7050 const char * const restrict s2, const int s2Len,
7051 const int open, const int gap)
7052 {
7053 return parasail_sg_qx_table_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
7054 }
7055
7056 parasail_result_t* parasail_sg_qx_table_striped_profile_64(
7057 const parasail_profile_t * const restrict profile,
7058 const char * const restrict s2, const int s2Len,
7059 const int open, const int gap)
7060 {
7061 return parasail_sg_qx_table_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
7062 }
7063
7064 parasail_result_t* parasail_sg_qx_table_striped_profile_32(
7065 const parasail_profile_t * const restrict profile,
7066 const char * const restrict s2, const int s2Len,
7067 const int open, const int gap)
7068 {
7069 return parasail_sg_qx_table_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
7070 }
7071
7072 parasail_result_t* parasail_sg_qx_table_striped_profile_16(
7073 const parasail_profile_t * const restrict profile,
7074 const char * const restrict s2, const int s2Len,
7075 const int open, const int gap)
7076 {
7077 return parasail_sg_qx_table_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
7078 }
7079
7080 parasail_result_t* parasail_sg_qx_table_striped_profile_8(
7081 const parasail_profile_t * const restrict profile,
7082 const char * const restrict s2, const int s2Len,
7083 const int open, const int gap)
7084 {
7085 return parasail_sg_qx_table_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
7086 }
7087
7088 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_64(
7089 const parasail_profile_t * const restrict profile,
7090 const char * const restrict s2, const int s2Len,
7091 const int open, const int gap)
7092 {
7093 return parasail_sg_qx_stats_table_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
7094 }
7095
7096 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_32(
7097 const parasail_profile_t * const restrict profile,
7098 const char * const restrict s2, const int s2Len,
7099 const int open, const int gap)
7100 {
7101 return parasail_sg_qx_stats_table_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
7102 }
7103
7104 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_16(
7105 const parasail_profile_t * const restrict profile,
7106 const char * const restrict s2, const int s2Len,
7107 const int open, const int gap)
7108 {
7109 return parasail_sg_qx_stats_table_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
7110 }
7111
7112 parasail_result_t* parasail_sg_qx_stats_table_scan_profile_8(
7113 const parasail_profile_t * const restrict profile,
7114 const char * const restrict s2, const int s2Len,
7115 const int open, const int gap)
7116 {
7117 return parasail_sg_qx_stats_table_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
7118 }
7119
7120 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_64(
7121 const parasail_profile_t * const restrict profile,
7122 const char * const restrict s2, const int s2Len,
7123 const int open, const int gap)
7124 {
7125 return parasail_sg_qx_stats_table_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
7126 }
7127
7128 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_32(
7129 const parasail_profile_t * const restrict profile,
7130 const char * const restrict s2, const int s2Len,
7131 const int open, const int gap)
7132 {
7133 return parasail_sg_qx_stats_table_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
7134 }
7135
7136 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_16(
7137 const parasail_profile_t * const restrict profile,
7138 const char * const restrict s2, const int s2Len,
7139 const int open, const int gap)
7140 {
7141 return parasail_sg_qx_stats_table_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
7142 }
7143
7144 parasail_result_t* parasail_sg_qx_stats_table_striped_profile_8(
7145 const parasail_profile_t * const restrict profile,
7146 const char * const restrict s2, const int s2Len,
7147 const int open, const int gap)
7148 {
7149 return parasail_sg_qx_stats_table_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
7150 }
7151
7152 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_64(
7153 const parasail_profile_t * const restrict profile,
7154 const char * const restrict s2, const int s2Len,
7155 const int open, const int gap)
7156 {
7157 return parasail_sg_qx_rowcol_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
7158 }
7159
7160 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_32(
7161 const parasail_profile_t * const restrict profile,
7162 const char * const restrict s2, const int s2Len,
7163 const int open, const int gap)
7164 {
7165 return parasail_sg_qx_rowcol_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
7166 }
7167
7168 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_16(
7169 const parasail_profile_t * const restrict profile,
7170 const char * const restrict s2, const int s2Len,
7171 const int open, const int gap)
7172 {
7173 return parasail_sg_qx_rowcol_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
7174 }
7175
7176 parasail_result_t* parasail_sg_qx_rowcol_scan_profile_8(
7177 const parasail_profile_t * const restrict profile,
7178 const char * const restrict s2, const int s2Len,
7179 const int open, const int gap)
7180 {
7181 return parasail_sg_qx_rowcol_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
7182 }
7183
7184 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_64(
7185 const parasail_profile_t * const restrict profile,
7186 const char * const restrict s2, const int s2Len,
7187 const int open, const int gap)
7188 {
7189 return parasail_sg_qx_rowcol_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
7190 }
7191
7192 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_32(
7193 const parasail_profile_t * const restrict profile,
7194 const char * const restrict s2, const int s2Len,
7195 const int open, const int gap)
7196 {
7197 return parasail_sg_qx_rowcol_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
7198 }
7199
7200 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_16(
7201 const parasail_profile_t * const restrict profile,
7202 const char * const restrict s2, const int s2Len,
7203 const int open, const int gap)
7204 {
7205 return parasail_sg_qx_rowcol_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
7206 }
7207
7208 parasail_result_t* parasail_sg_qx_rowcol_striped_profile_8(
7209 const parasail_profile_t * const restrict profile,
7210 const char * const restrict s2, const int s2Len,
7211 const int open, const int gap)
7212 {
7213 return parasail_sg_qx_rowcol_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
7214 }
7215
7216 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_64(
7217 const parasail_profile_t * const restrict profile,
7218 const char * const restrict s2, const int s2Len,
7219 const int open, const int gap)
7220 {
7221 return parasail_sg_qx_stats_rowcol_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
7222 }
7223
7224 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_32(
7225 const parasail_profile_t * const restrict profile,
7226 const char * const restrict s2, const int s2Len,
7227 const int open, const int gap)
7228 {
7229 return parasail_sg_qx_stats_rowcol_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
7230 }
7231
7232 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_16(
7233 const parasail_profile_t * const restrict profile,
7234 const char * const restrict s2, const int s2Len,
7235 const int open, const int gap)
7236 {
7237 return parasail_sg_qx_stats_rowcol_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
7238 }
7239
7240 parasail_result_t* parasail_sg_qx_stats_rowcol_scan_profile_8(
7241 const parasail_profile_t * const restrict profile,
7242 const char * const restrict s2, const int s2Len,
7243 const int open, const int gap)
7244 {
7245 return parasail_sg_qx_stats_rowcol_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
7246 }
7247
7248 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_64(
7249 const parasail_profile_t * const restrict profile,
7250 const char * const restrict s2, const int s2Len,
7251 const int open, const int gap)
7252 {
7253 return parasail_sg_qx_stats_rowcol_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
7254 }
7255
7256 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_32(
7257 const parasail_profile_t * const restrict profile,
7258 const char * const restrict s2, const int s2Len,
7259 const int open, const int gap)
7260 {
7261 return parasail_sg_qx_stats_rowcol_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
7262 }
7263
7264 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_16(
7265 const parasail_profile_t * const restrict profile,
7266 const char * const restrict s2, const int s2Len,
7267 const int open, const int gap)
7268 {
7269 return parasail_sg_qx_stats_rowcol_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
7270 }
7271
7272 parasail_result_t* parasail_sg_qx_stats_rowcol_striped_profile_8(
7273 const parasail_profile_t * const restrict profile,
7274 const char * const restrict s2, const int s2Len,
7275 const int open, const int gap)
7276 {
7277 return parasail_sg_qx_stats_rowcol_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
7278 }
7279
7280 parasail_result_t* parasail_sg_qx_trace_scan_profile_64(
7281 const parasail_profile_t * const restrict profile,
7282 const char * const restrict s2, const int s2Len,
7283 const int open, const int gap)
7284 {
7285 return parasail_sg_qx_trace_scan_profile_64_pointer(profile, s2, s2Len, open, gap);
7286 }
7287
7288 parasail_result_t* parasail_sg_qx_trace_scan_profile_32(
7289 const parasail_profile_t * const restrict profile,
7290 const char * const restrict s2, const int s2Len,
7291 const int open, const int gap)
7292 {
7293 return parasail_sg_qx_trace_scan_profile_32_pointer(profile, s2, s2Len, open, gap);
7294 }
7295
7296 parasail_result_t* parasail_sg_qx_trace_scan_profile_16(
7297 const parasail_profile_t * const restrict profile,
7298 const char * const restrict s2, const int s2Len,
7299 const int open, const int gap)
7300 {
7301 return parasail_sg_qx_trace_scan_profile_16_pointer(profile, s2, s2Len, open, gap);
7302 }
7303
7304 parasail_result_t* parasail_sg_qx_trace_scan_profile_8(
7305 const parasail_profile_t * const restrict profile,
7306 const char * const restrict s2, const int s2Len,
7307 const int open, const int gap)
7308 {
7309 return parasail_sg_qx_trace_scan_profile_8_pointer(profile, s2, s2Len, open, gap);
7310 }
7311
7312 parasail_result_t* parasail_sg_qx_trace_striped_profile_64(
7313 const parasail_profile_t * const restrict profile,
7314 const char * const restrict s2, const int s2Len,
7315 const int open, const int gap)
7316 {
7317 return parasail_sg_qx_trace_striped_profile_64_pointer(profile, s2, s2Len, open, gap);
7318 }
7319
7320 parasail_result_t* parasail_sg_qx_trace_striped_profile_32(
7321 const parasail_profile_t * const restrict profile,
7322 const char * const restrict s2, const int s2Len,
7323 const int open, const int gap)
7324 {
7325 return parasail_sg_qx_trace_striped_profile_32_pointer(profile, s2, s2Len, open, gap);
7326 }
7327
7328 parasail_result_t* parasail_sg_qx_trace_striped_profile_16(
7329 const parasail_profile_t * const restrict profile,
7330 const char * const restrict s2, const int s2Len,
7331 const int open, const int gap)
7332 {
7333 return parasail_sg_qx_trace_striped_profile_16_pointer(profile, s2, s2Len, open, gap);
7334 }
7335
7336 parasail_result_t* parasail_sg_qx_trace_striped_profile_8(
7337 const parasail_profile_t * const restrict profile,
7338 const char * const restrict s2, const int s2Len,
7339 const int open, const int gap)
7340 {
7341 return parasail_sg_qx_trace_striped_profile_8_pointer(profile, s2, s2Len, open, gap);
7342 }
7343 #endif
7344