3
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE
5
# define CV_CPU_FORCE_SSE 1
6
# define CV_CPU_HAS_SUPPORT_SSE 1
7
# define CV_CPU_CALL_SSE(fn, args) return (cpu_baseline::fn args)
8
# define CV_CPU_CALL_SSE_(fn, args) return (opt_SSE::fn args)
9
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE
11
# define CV_CPU_FORCE_SSE 0
12
# define CV_CPU_HAS_SUPPORT_SSE (cv::checkHardwareSupport(CV_CPU_SSE))
13
# define CV_CPU_CALL_SSE(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args)
14
# define CV_CPU_CALL_SSE_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args)
17
# define CV_CPU_FORCE_SSE 0
18
# define CV_CPU_HAS_SUPPORT_SSE 0
19
# define CV_CPU_CALL_SSE(fn, args)
20
# define CV_CPU_CALL_SSE_(fn, args)
22
#define __CV_CPU_DISPATCH_CHAIN_SSE(fn, args, mode, ...) CV_CPU_CALL_SSE(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
24
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE2
25
# define CV_TRY_SSE2 1
26
# define CV_CPU_FORCE_SSE2 1
27
# define CV_CPU_HAS_SUPPORT_SSE2 1
28
# define CV_CPU_CALL_SSE2(fn, args) return (cpu_baseline::fn args)
29
# define CV_CPU_CALL_SSE2_(fn, args) return (opt_SSE2::fn args)
30
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE2
31
# define CV_TRY_SSE2 1
32
# define CV_CPU_FORCE_SSE2 0
33
# define CV_CPU_HAS_SUPPORT_SSE2 (cv::checkHardwareSupport(CV_CPU_SSE2))
34
# define CV_CPU_CALL_SSE2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args)
35
# define CV_CPU_CALL_SSE2_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args)
37
# define CV_TRY_SSE2 0
38
# define CV_CPU_FORCE_SSE2 0
39
# define CV_CPU_HAS_SUPPORT_SSE2 0
40
# define CV_CPU_CALL_SSE2(fn, args)
41
# define CV_CPU_CALL_SSE2_(fn, args)
43
#define __CV_CPU_DISPATCH_CHAIN_SSE2(fn, args, mode, ...) CV_CPU_CALL_SSE2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
45
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE3
46
# define CV_TRY_SSE3 1
47
# define CV_CPU_FORCE_SSE3 1
48
# define CV_CPU_HAS_SUPPORT_SSE3 1
49
# define CV_CPU_CALL_SSE3(fn, args) return (cpu_baseline::fn args)
50
# define CV_CPU_CALL_SSE3_(fn, args) return (opt_SSE3::fn args)
51
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE3
52
# define CV_TRY_SSE3 1
53
# define CV_CPU_FORCE_SSE3 0
54
# define CV_CPU_HAS_SUPPORT_SSE3 (cv::checkHardwareSupport(CV_CPU_SSE3))
55
# define CV_CPU_CALL_SSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args)
56
# define CV_CPU_CALL_SSE3_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args)
58
# define CV_TRY_SSE3 0
59
# define CV_CPU_FORCE_SSE3 0
60
# define CV_CPU_HAS_SUPPORT_SSE3 0
61
# define CV_CPU_CALL_SSE3(fn, args)
62
# define CV_CPU_CALL_SSE3_(fn, args)
64
#define __CV_CPU_DISPATCH_CHAIN_SSE3(fn, args, mode, ...) CV_CPU_CALL_SSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
66
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSSE3
67
# define CV_TRY_SSSE3 1
68
# define CV_CPU_FORCE_SSSE3 1
69
# define CV_CPU_HAS_SUPPORT_SSSE3 1
70
# define CV_CPU_CALL_SSSE3(fn, args) return (cpu_baseline::fn args)
71
# define CV_CPU_CALL_SSSE3_(fn, args) return (opt_SSSE3::fn args)
72
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSSE3
73
# define CV_TRY_SSSE3 1
74
# define CV_CPU_FORCE_SSSE3 0
75
# define CV_CPU_HAS_SUPPORT_SSSE3 (cv::checkHardwareSupport(CV_CPU_SSSE3))
76
# define CV_CPU_CALL_SSSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args)
77
# define CV_CPU_CALL_SSSE3_(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args)
79
# define CV_TRY_SSSE3 0
80
# define CV_CPU_FORCE_SSSE3 0
81
# define CV_CPU_HAS_SUPPORT_SSSE3 0
82
# define CV_CPU_CALL_SSSE3(fn, args)
83
# define CV_CPU_CALL_SSSE3_(fn, args)
85
#define __CV_CPU_DISPATCH_CHAIN_SSSE3(fn, args, mode, ...) CV_CPU_CALL_SSSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
87
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_1
88
# define CV_TRY_SSE4_1 1
89
# define CV_CPU_FORCE_SSE4_1 1
90
# define CV_CPU_HAS_SUPPORT_SSE4_1 1
91
# define CV_CPU_CALL_SSE4_1(fn, args) return (cpu_baseline::fn args)
92
# define CV_CPU_CALL_SSE4_1_(fn, args) return (opt_SSE4_1::fn args)
93
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_1
94
# define CV_TRY_SSE4_1 1
95
# define CV_CPU_FORCE_SSE4_1 0
96
# define CV_CPU_HAS_SUPPORT_SSE4_1 (cv::checkHardwareSupport(CV_CPU_SSE4_1))
97
# define CV_CPU_CALL_SSE4_1(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args)
98
# define CV_CPU_CALL_SSE4_1_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args)
100
# define CV_TRY_SSE4_1 0
101
# define CV_CPU_FORCE_SSE4_1 0
102
# define CV_CPU_HAS_SUPPORT_SSE4_1 0
103
# define CV_CPU_CALL_SSE4_1(fn, args)
104
# define CV_CPU_CALL_SSE4_1_(fn, args)
106
#define __CV_CPU_DISPATCH_CHAIN_SSE4_1(fn, args, mode, ...) CV_CPU_CALL_SSE4_1(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
108
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_2
109
# define CV_TRY_SSE4_2 1
110
# define CV_CPU_FORCE_SSE4_2 1
111
# define CV_CPU_HAS_SUPPORT_SSE4_2 1
112
# define CV_CPU_CALL_SSE4_2(fn, args) return (cpu_baseline::fn args)
113
# define CV_CPU_CALL_SSE4_2_(fn, args) return (opt_SSE4_2::fn args)
114
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_2
115
# define CV_TRY_SSE4_2 1
116
# define CV_CPU_FORCE_SSE4_2 0
117
# define CV_CPU_HAS_SUPPORT_SSE4_2 (cv::checkHardwareSupport(CV_CPU_SSE4_2))
118
# define CV_CPU_CALL_SSE4_2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args)
119
# define CV_CPU_CALL_SSE4_2_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args)
121
# define CV_TRY_SSE4_2 0
122
# define CV_CPU_FORCE_SSE4_2 0
123
# define CV_CPU_HAS_SUPPORT_SSE4_2 0
124
# define CV_CPU_CALL_SSE4_2(fn, args)
125
# define CV_CPU_CALL_SSE4_2_(fn, args)
127
#define __CV_CPU_DISPATCH_CHAIN_SSE4_2(fn, args, mode, ...) CV_CPU_CALL_SSE4_2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
129
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_POPCNT
130
# define CV_TRY_POPCNT 1
131
# define CV_CPU_FORCE_POPCNT 1
132
# define CV_CPU_HAS_SUPPORT_POPCNT 1
133
# define CV_CPU_CALL_POPCNT(fn, args) return (cpu_baseline::fn args)
134
# define CV_CPU_CALL_POPCNT_(fn, args) return (opt_POPCNT::fn args)
135
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_POPCNT
136
# define CV_TRY_POPCNT 1
137
# define CV_CPU_FORCE_POPCNT 0
138
# define CV_CPU_HAS_SUPPORT_POPCNT (cv::checkHardwareSupport(CV_CPU_POPCNT))
139
# define CV_CPU_CALL_POPCNT(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args)
140
# define CV_CPU_CALL_POPCNT_(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args)
142
# define CV_TRY_POPCNT 0
143
# define CV_CPU_FORCE_POPCNT 0
144
# define CV_CPU_HAS_SUPPORT_POPCNT 0
145
# define CV_CPU_CALL_POPCNT(fn, args)
146
# define CV_CPU_CALL_POPCNT_(fn, args)
148
#define __CV_CPU_DISPATCH_CHAIN_POPCNT(fn, args, mode, ...) CV_CPU_CALL_POPCNT(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
150
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX
151
# define CV_TRY_AVX 1
152
# define CV_CPU_FORCE_AVX 1
153
# define CV_CPU_HAS_SUPPORT_AVX 1
154
# define CV_CPU_CALL_AVX(fn, args) return (cpu_baseline::fn args)
155
# define CV_CPU_CALL_AVX_(fn, args) return (opt_AVX::fn args)
156
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX
157
# define CV_TRY_AVX 1
158
# define CV_CPU_FORCE_AVX 0
159
# define CV_CPU_HAS_SUPPORT_AVX (cv::checkHardwareSupport(CV_CPU_AVX))
160
# define CV_CPU_CALL_AVX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args)
161
# define CV_CPU_CALL_AVX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args)
163
# define CV_TRY_AVX 0
164
# define CV_CPU_FORCE_AVX 0
165
# define CV_CPU_HAS_SUPPORT_AVX 0
166
# define CV_CPU_CALL_AVX(fn, args)
167
# define CV_CPU_CALL_AVX_(fn, args)
169
#define __CV_CPU_DISPATCH_CHAIN_AVX(fn, args, mode, ...) CV_CPU_CALL_AVX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
171
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FP16
172
# define CV_TRY_FP16 1
173
# define CV_CPU_FORCE_FP16 1
174
# define CV_CPU_HAS_SUPPORT_FP16 1
175
# define CV_CPU_CALL_FP16(fn, args) return (cpu_baseline::fn args)
176
# define CV_CPU_CALL_FP16_(fn, args) return (opt_FP16::fn args)
177
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FP16
178
# define CV_TRY_FP16 1
179
# define CV_CPU_FORCE_FP16 0
180
# define CV_CPU_HAS_SUPPORT_FP16 (cv::checkHardwareSupport(CV_CPU_FP16))
181
# define CV_CPU_CALL_FP16(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args)
182
# define CV_CPU_CALL_FP16_(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args)
184
# define CV_TRY_FP16 0
185
# define CV_CPU_FORCE_FP16 0
186
# define CV_CPU_HAS_SUPPORT_FP16 0
187
# define CV_CPU_CALL_FP16(fn, args)
188
# define CV_CPU_CALL_FP16_(fn, args)
190
#define __CV_CPU_DISPATCH_CHAIN_FP16(fn, args, mode, ...) CV_CPU_CALL_FP16(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
192
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX2
193
# define CV_TRY_AVX2 1
194
# define CV_CPU_FORCE_AVX2 1
195
# define CV_CPU_HAS_SUPPORT_AVX2 1
196
# define CV_CPU_CALL_AVX2(fn, args) return (cpu_baseline::fn args)
197
# define CV_CPU_CALL_AVX2_(fn, args) return (opt_AVX2::fn args)
198
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX2
199
# define CV_TRY_AVX2 1
200
# define CV_CPU_FORCE_AVX2 0
201
# define CV_CPU_HAS_SUPPORT_AVX2 (cv::checkHardwareSupport(CV_CPU_AVX2))
202
# define CV_CPU_CALL_AVX2(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args)
203
# define CV_CPU_CALL_AVX2_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args)
205
# define CV_TRY_AVX2 0
206
# define CV_CPU_FORCE_AVX2 0
207
# define CV_CPU_HAS_SUPPORT_AVX2 0
208
# define CV_CPU_CALL_AVX2(fn, args)
209
# define CV_CPU_CALL_AVX2_(fn, args)
211
#define __CV_CPU_DISPATCH_CHAIN_AVX2(fn, args, mode, ...) CV_CPU_CALL_AVX2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
213
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FMA3
214
# define CV_TRY_FMA3 1
215
# define CV_CPU_FORCE_FMA3 1
216
# define CV_CPU_HAS_SUPPORT_FMA3 1
217
# define CV_CPU_CALL_FMA3(fn, args) return (cpu_baseline::fn args)
218
# define CV_CPU_CALL_FMA3_(fn, args) return (opt_FMA3::fn args)
219
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FMA3
220
# define CV_TRY_FMA3 1
221
# define CV_CPU_FORCE_FMA3 0
222
# define CV_CPU_HAS_SUPPORT_FMA3 (cv::checkHardwareSupport(CV_CPU_FMA3))
223
# define CV_CPU_CALL_FMA3(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args)
224
# define CV_CPU_CALL_FMA3_(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args)
226
# define CV_TRY_FMA3 0
227
# define CV_CPU_FORCE_FMA3 0
228
# define CV_CPU_HAS_SUPPORT_FMA3 0
229
# define CV_CPU_CALL_FMA3(fn, args)
230
# define CV_CPU_CALL_FMA3_(fn, args)
232
#define __CV_CPU_DISPATCH_CHAIN_FMA3(fn, args, mode, ...) CV_CPU_CALL_FMA3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
234
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX_512F
235
# define CV_TRY_AVX_512F 1
236
# define CV_CPU_FORCE_AVX_512F 1
237
# define CV_CPU_HAS_SUPPORT_AVX_512F 1
238
# define CV_CPU_CALL_AVX_512F(fn, args) return (cpu_baseline::fn args)
239
# define CV_CPU_CALL_AVX_512F_(fn, args) return (opt_AVX_512F::fn args)
240
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX_512F
241
# define CV_TRY_AVX_512F 1
242
# define CV_CPU_FORCE_AVX_512F 0
243
# define CV_CPU_HAS_SUPPORT_AVX_512F (cv::checkHardwareSupport(CV_CPU_AVX_512F))
244
# define CV_CPU_CALL_AVX_512F(fn, args) if (CV_CPU_HAS_SUPPORT_AVX_512F) return (opt_AVX_512F::fn args)
245
# define CV_CPU_CALL_AVX_512F_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX_512F) return (opt_AVX_512F::fn args)
247
# define CV_TRY_AVX_512F 0
248
# define CV_CPU_FORCE_AVX_512F 0
249
# define CV_CPU_HAS_SUPPORT_AVX_512F 0
250
# define CV_CPU_CALL_AVX_512F(fn, args)
251
# define CV_CPU_CALL_AVX_512F_(fn, args)
253
#define __CV_CPU_DISPATCH_CHAIN_AVX_512F(fn, args, mode, ...) CV_CPU_CALL_AVX_512F(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
255
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_COMMON
256
# define CV_TRY_AVX512_COMMON 1
257
# define CV_CPU_FORCE_AVX512_COMMON 1
258
# define CV_CPU_HAS_SUPPORT_AVX512_COMMON 1
259
# define CV_CPU_CALL_AVX512_COMMON(fn, args) return (cpu_baseline::fn args)
260
# define CV_CPU_CALL_AVX512_COMMON_(fn, args) return (opt_AVX512_COMMON::fn args)
261
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_COMMON
262
# define CV_TRY_AVX512_COMMON 1
263
# define CV_CPU_FORCE_AVX512_COMMON 0
264
# define CV_CPU_HAS_SUPPORT_AVX512_COMMON (cv::checkHardwareSupport(CV_CPU_AVX512_COMMON))
265
# define CV_CPU_CALL_AVX512_COMMON(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_COMMON) return (opt_AVX512_COMMON::fn args)
266
# define CV_CPU_CALL_AVX512_COMMON_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_COMMON) return (opt_AVX512_COMMON::fn args)
268
# define CV_TRY_AVX512_COMMON 0
269
# define CV_CPU_FORCE_AVX512_COMMON 0
270
# define CV_CPU_HAS_SUPPORT_AVX512_COMMON 0
271
# define CV_CPU_CALL_AVX512_COMMON(fn, args)
272
# define CV_CPU_CALL_AVX512_COMMON_(fn, args)
274
#define __CV_CPU_DISPATCH_CHAIN_AVX512_COMMON(fn, args, mode, ...) CV_CPU_CALL_AVX512_COMMON(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
276
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_KNL
277
# define CV_TRY_AVX512_KNL 1
278
# define CV_CPU_FORCE_AVX512_KNL 1
279
# define CV_CPU_HAS_SUPPORT_AVX512_KNL 1
280
# define CV_CPU_CALL_AVX512_KNL(fn, args) return (cpu_baseline::fn args)
281
# define CV_CPU_CALL_AVX512_KNL_(fn, args) return (opt_AVX512_KNL::fn args)
282
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_KNL
283
# define CV_TRY_AVX512_KNL 1
284
# define CV_CPU_FORCE_AVX512_KNL 0
285
# define CV_CPU_HAS_SUPPORT_AVX512_KNL (cv::checkHardwareSupport(CV_CPU_AVX512_KNL))
286
# define CV_CPU_CALL_AVX512_KNL(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_KNL) return (opt_AVX512_KNL::fn args)
287
# define CV_CPU_CALL_AVX512_KNL_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_KNL) return (opt_AVX512_KNL::fn args)
289
# define CV_TRY_AVX512_KNL 0
290
# define CV_CPU_FORCE_AVX512_KNL 0
291
# define CV_CPU_HAS_SUPPORT_AVX512_KNL 0
292
# define CV_CPU_CALL_AVX512_KNL(fn, args)
293
# define CV_CPU_CALL_AVX512_KNL_(fn, args)
295
#define __CV_CPU_DISPATCH_CHAIN_AVX512_KNL(fn, args, mode, ...) CV_CPU_CALL_AVX512_KNL(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
297
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_KNM
298
# define CV_TRY_AVX512_KNM 1
299
# define CV_CPU_FORCE_AVX512_KNM 1
300
# define CV_CPU_HAS_SUPPORT_AVX512_KNM 1
301
# define CV_CPU_CALL_AVX512_KNM(fn, args) return (cpu_baseline::fn args)
302
# define CV_CPU_CALL_AVX512_KNM_(fn, args) return (opt_AVX512_KNM::fn args)
303
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_KNM
304
# define CV_TRY_AVX512_KNM 1
305
# define CV_CPU_FORCE_AVX512_KNM 0
306
# define CV_CPU_HAS_SUPPORT_AVX512_KNM (cv::checkHardwareSupport(CV_CPU_AVX512_KNM))
307
# define CV_CPU_CALL_AVX512_KNM(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_KNM) return (opt_AVX512_KNM::fn args)
308
# define CV_CPU_CALL_AVX512_KNM_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_KNM) return (opt_AVX512_KNM::fn args)
310
# define CV_TRY_AVX512_KNM 0
311
# define CV_CPU_FORCE_AVX512_KNM 0
312
# define CV_CPU_HAS_SUPPORT_AVX512_KNM 0
313
# define CV_CPU_CALL_AVX512_KNM(fn, args)
314
# define CV_CPU_CALL_AVX512_KNM_(fn, args)
316
#define __CV_CPU_DISPATCH_CHAIN_AVX512_KNM(fn, args, mode, ...) CV_CPU_CALL_AVX512_KNM(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
318
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_SKX
319
# define CV_TRY_AVX512_SKX 1
320
# define CV_CPU_FORCE_AVX512_SKX 1
321
# define CV_CPU_HAS_SUPPORT_AVX512_SKX 1
322
# define CV_CPU_CALL_AVX512_SKX(fn, args) return (cpu_baseline::fn args)
323
# define CV_CPU_CALL_AVX512_SKX_(fn, args) return (opt_AVX512_SKX::fn args)
324
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_SKX
325
# define CV_TRY_AVX512_SKX 1
326
# define CV_CPU_FORCE_AVX512_SKX 0
327
# define CV_CPU_HAS_SUPPORT_AVX512_SKX (cv::checkHardwareSupport(CV_CPU_AVX512_SKX))
328
# define CV_CPU_CALL_AVX512_SKX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_SKX) return (opt_AVX512_SKX::fn args)
329
# define CV_CPU_CALL_AVX512_SKX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_SKX) return (opt_AVX512_SKX::fn args)
331
# define CV_TRY_AVX512_SKX 0
332
# define CV_CPU_FORCE_AVX512_SKX 0
333
# define CV_CPU_HAS_SUPPORT_AVX512_SKX 0
334
# define CV_CPU_CALL_AVX512_SKX(fn, args)
335
# define CV_CPU_CALL_AVX512_SKX_(fn, args)
337
#define __CV_CPU_DISPATCH_CHAIN_AVX512_SKX(fn, args, mode, ...) CV_CPU_CALL_AVX512_SKX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
339
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_CNL
340
# define CV_TRY_AVX512_CNL 1
341
# define CV_CPU_FORCE_AVX512_CNL 1
342
# define CV_CPU_HAS_SUPPORT_AVX512_CNL 1
343
# define CV_CPU_CALL_AVX512_CNL(fn, args) return (cpu_baseline::fn args)
344
# define CV_CPU_CALL_AVX512_CNL_(fn, args) return (opt_AVX512_CNL::fn args)
345
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_CNL
346
# define CV_TRY_AVX512_CNL 1
347
# define CV_CPU_FORCE_AVX512_CNL 0
348
# define CV_CPU_HAS_SUPPORT_AVX512_CNL (cv::checkHardwareSupport(CV_CPU_AVX512_CNL))
349
# define CV_CPU_CALL_AVX512_CNL(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_CNL) return (opt_AVX512_CNL::fn args)
350
# define CV_CPU_CALL_AVX512_CNL_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_CNL) return (opt_AVX512_CNL::fn args)
352
# define CV_TRY_AVX512_CNL 0
353
# define CV_CPU_FORCE_AVX512_CNL 0
354
# define CV_CPU_HAS_SUPPORT_AVX512_CNL 0
355
# define CV_CPU_CALL_AVX512_CNL(fn, args)
356
# define CV_CPU_CALL_AVX512_CNL_(fn, args)
358
#define __CV_CPU_DISPATCH_CHAIN_AVX512_CNL(fn, args, mode, ...) CV_CPU_CALL_AVX512_CNL(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
360
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_CLX
361
# define CV_TRY_AVX512_CLX 1
362
# define CV_CPU_FORCE_AVX512_CLX 1
363
# define CV_CPU_HAS_SUPPORT_AVX512_CLX 1
364
# define CV_CPU_CALL_AVX512_CLX(fn, args) return (cpu_baseline::fn args)
365
# define CV_CPU_CALL_AVX512_CLX_(fn, args) return (opt_AVX512_CLX::fn args)
366
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_CLX
367
# define CV_TRY_AVX512_CLX 1
368
# define CV_CPU_FORCE_AVX512_CLX 0
369
# define CV_CPU_HAS_SUPPORT_AVX512_CLX (cv::checkHardwareSupport(CV_CPU_AVX512_CLX))
370
# define CV_CPU_CALL_AVX512_CLX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_CLX) return (opt_AVX512_CLX::fn args)
371
# define CV_CPU_CALL_AVX512_CLX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_CLX) return (opt_AVX512_CLX::fn args)
373
# define CV_TRY_AVX512_CLX 0
374
# define CV_CPU_FORCE_AVX512_CLX 0
375
# define CV_CPU_HAS_SUPPORT_AVX512_CLX 0
376
# define CV_CPU_CALL_AVX512_CLX(fn, args)
377
# define CV_CPU_CALL_AVX512_CLX_(fn, args)
379
#define __CV_CPU_DISPATCH_CHAIN_AVX512_CLX(fn, args, mode, ...) CV_CPU_CALL_AVX512_CLX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
381
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_ICL
382
# define CV_TRY_AVX512_ICL 1
383
# define CV_CPU_FORCE_AVX512_ICL 1
384
# define CV_CPU_HAS_SUPPORT_AVX512_ICL 1
385
# define CV_CPU_CALL_AVX512_ICL(fn, args) return (cpu_baseline::fn args)
386
# define CV_CPU_CALL_AVX512_ICL_(fn, args) return (opt_AVX512_ICL::fn args)
387
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_ICL
388
# define CV_TRY_AVX512_ICL 1
389
# define CV_CPU_FORCE_AVX512_ICL 0
390
# define CV_CPU_HAS_SUPPORT_AVX512_ICL (cv::checkHardwareSupport(CV_CPU_AVX512_ICL))
391
# define CV_CPU_CALL_AVX512_ICL(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_ICL) return (opt_AVX512_ICL::fn args)
392
# define CV_CPU_CALL_AVX512_ICL_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_ICL) return (opt_AVX512_ICL::fn args)
394
# define CV_TRY_AVX512_ICL 0
395
# define CV_CPU_FORCE_AVX512_ICL 0
396
# define CV_CPU_HAS_SUPPORT_AVX512_ICL 0
397
# define CV_CPU_CALL_AVX512_ICL(fn, args)
398
# define CV_CPU_CALL_AVX512_ICL_(fn, args)
400
#define __CV_CPU_DISPATCH_CHAIN_AVX512_ICL(fn, args, mode, ...) CV_CPU_CALL_AVX512_ICL(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
402
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_NEON
403
# define CV_TRY_NEON 1
404
# define CV_CPU_FORCE_NEON 1
405
# define CV_CPU_HAS_SUPPORT_NEON 1
406
# define CV_CPU_CALL_NEON(fn, args) return (cpu_baseline::fn args)
407
# define CV_CPU_CALL_NEON_(fn, args) return (opt_NEON::fn args)
408
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_NEON
409
# define CV_TRY_NEON 1
410
# define CV_CPU_FORCE_NEON 0
411
# define CV_CPU_HAS_SUPPORT_NEON (cv::checkHardwareSupport(CV_CPU_NEON))
412
# define CV_CPU_CALL_NEON(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args)
413
# define CV_CPU_CALL_NEON_(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args)
415
# define CV_TRY_NEON 0
416
# define CV_CPU_FORCE_NEON 0
417
# define CV_CPU_HAS_SUPPORT_NEON 0
418
# define CV_CPU_CALL_NEON(fn, args)
419
# define CV_CPU_CALL_NEON_(fn, args)
421
#define __CV_CPU_DISPATCH_CHAIN_NEON(fn, args, mode, ...) CV_CPU_CALL_NEON(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
423
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_MSA
424
# define CV_TRY_MSA 1
425
# define CV_CPU_FORCE_MSA 1
426
# define CV_CPU_HAS_SUPPORT_MSA 1
427
# define CV_CPU_CALL_MSA(fn, args) return (cpu_baseline::fn args)
428
# define CV_CPU_CALL_MSA_(fn, args) return (opt_MSA::fn args)
429
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_MSA
430
# define CV_TRY_MSA 1
431
# define CV_CPU_FORCE_MSA 0
432
# define CV_CPU_HAS_SUPPORT_MSA (cv::checkHardwareSupport(CV_CPU_MSA))
433
# define CV_CPU_CALL_MSA(fn, args) if (CV_CPU_HAS_SUPPORT_MSA) return (opt_MSA::fn args)
434
# define CV_CPU_CALL_MSA_(fn, args) if (CV_CPU_HAS_SUPPORT_MSA) return (opt_MSA::fn args)
436
# define CV_TRY_MSA 0
437
# define CV_CPU_FORCE_MSA 0
438
# define CV_CPU_HAS_SUPPORT_MSA 0
439
# define CV_CPU_CALL_MSA(fn, args)
440
# define CV_CPU_CALL_MSA_(fn, args)
442
#define __CV_CPU_DISPATCH_CHAIN_MSA(fn, args, mode, ...) CV_CPU_CALL_MSA(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
444
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX
445
# define CV_TRY_VSX 1
446
# define CV_CPU_FORCE_VSX 1
447
# define CV_CPU_HAS_SUPPORT_VSX 1
448
# define CV_CPU_CALL_VSX(fn, args) return (cpu_baseline::fn args)
449
# define CV_CPU_CALL_VSX_(fn, args) return (opt_VSX::fn args)
450
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX
451
# define CV_TRY_VSX 1
452
# define CV_CPU_FORCE_VSX 0
453
# define CV_CPU_HAS_SUPPORT_VSX (cv::checkHardwareSupport(CV_CPU_VSX))
454
# define CV_CPU_CALL_VSX(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args)
455
# define CV_CPU_CALL_VSX_(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args)
457
# define CV_TRY_VSX 0
458
# define CV_CPU_FORCE_VSX 0
459
# define CV_CPU_HAS_SUPPORT_VSX 0
460
# define CV_CPU_CALL_VSX(fn, args)
461
# define CV_CPU_CALL_VSX_(fn, args)
463
#define __CV_CPU_DISPATCH_CHAIN_VSX(fn, args, mode, ...) CV_CPU_CALL_VSX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
465
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX3
466
# define CV_TRY_VSX3 1
467
# define CV_CPU_FORCE_VSX3 1
468
# define CV_CPU_HAS_SUPPORT_VSX3 1
469
# define CV_CPU_CALL_VSX3(fn, args) return (cpu_baseline::fn args)
470
# define CV_CPU_CALL_VSX3_(fn, args) return (opt_VSX3::fn args)
471
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX3
472
# define CV_TRY_VSX3 1
473
# define CV_CPU_FORCE_VSX3 0
474
# define CV_CPU_HAS_SUPPORT_VSX3 (cv::checkHardwareSupport(CV_CPU_VSX3))
475
# define CV_CPU_CALL_VSX3(fn, args) if (CV_CPU_HAS_SUPPORT_VSX3) return (opt_VSX3::fn args)
476
# define CV_CPU_CALL_VSX3_(fn, args) if (CV_CPU_HAS_SUPPORT_VSX3) return (opt_VSX3::fn args)
478
# define CV_TRY_VSX3 0
479
# define CV_CPU_FORCE_VSX3 0
480
# define CV_CPU_HAS_SUPPORT_VSX3 0
481
# define CV_CPU_CALL_VSX3(fn, args)
482
# define CV_CPU_CALL_VSX3_(fn, args)
484
#define __CV_CPU_DISPATCH_CHAIN_VSX3(fn, args, mode, ...) CV_CPU_CALL_VSX3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
486
#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_RVV
487
# define CV_TRY_RVV 1
488
# define CV_CPU_FORCE_RVV 1
489
# define CV_CPU_HAS_SUPPORT_RVV 1
490
# define CV_CPU_CALL_RVV(fn, args) return (cpu_baseline::fn args)
491
# define CV_CPU_CALL_RVV_(fn, args) return (opt_RVV::fn args)
492
#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_RVV
493
# define CV_TRY_RVV 1
494
# define CV_CPU_FORCE_RVV 0
495
# define CV_CPU_HAS_SUPPORT_RVV (cv::checkHardwareSupport(CV_CPU_RVV))
496
# define CV_CPU_CALL_RVV(fn, args) if (CV_CPU_HAS_SUPPORT_RVV) return (opt_RVV::fn args)
497
# define CV_CPU_CALL_RVV_(fn, args) if (CV_CPU_HAS_SUPPORT_RVV) return (opt_RVV::fn args)
499
# define CV_TRY_RVV 0
500
# define CV_CPU_FORCE_RVV 0
501
# define CV_CPU_HAS_SUPPORT_RVV 0
502
# define CV_CPU_CALL_RVV(fn, args)
503
# define CV_CPU_CALL_RVV_(fn, args)
505
#define __CV_CPU_DISPATCH_CHAIN_RVV(fn, args, mode, ...) CV_CPU_CALL_RVV(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__))
507
#define CV_CPU_CALL_BASELINE(fn, args) return (cpu_baseline::fn args)
508
#define __CV_CPU_DISPATCH_CHAIN_BASELINE(fn, args, mode, ...) CV_CPU_CALL_BASELINE(fn, args)