minimap2 0.2.25.1 → 0.2.25.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/ext/Rakefile +2 -2
  3. data/lib/minimap2/version.rb +1 -1
  4. metadata +1 -97
  5. data/ext/minimap2/lib/simde/CONTRIBUTING.md +0 -114
  6. data/ext/minimap2/lib/simde/COPYING +0 -20
  7. data/ext/minimap2/lib/simde/README.md +0 -333
  8. data/ext/minimap2/lib/simde/amalgamate.py +0 -58
  9. data/ext/minimap2/lib/simde/meson.build +0 -33
  10. data/ext/minimap2/lib/simde/netlify.toml +0 -20
  11. data/ext/minimap2/lib/simde/simde/arm/neon/float32x2.h +0 -140
  12. data/ext/minimap2/lib/simde/simde/arm/neon/float32x4.h +0 -137
  13. data/ext/minimap2/lib/simde/simde/arm/neon/float64x1.h +0 -142
  14. data/ext/minimap2/lib/simde/simde/arm/neon/float64x2.h +0 -145
  15. data/ext/minimap2/lib/simde/simde/arm/neon/int16x4.h +0 -140
  16. data/ext/minimap2/lib/simde/simde/arm/neon/int16x8.h +0 -145
  17. data/ext/minimap2/lib/simde/simde/arm/neon/int32x2.h +0 -140
  18. data/ext/minimap2/lib/simde/simde/arm/neon/int32x4.h +0 -143
  19. data/ext/minimap2/lib/simde/simde/arm/neon/int64x1.h +0 -137
  20. data/ext/minimap2/lib/simde/simde/arm/neon/int64x2.h +0 -141
  21. data/ext/minimap2/lib/simde/simde/arm/neon/int8x16.h +0 -147
  22. data/ext/minimap2/lib/simde/simde/arm/neon/int8x8.h +0 -141
  23. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x4.h +0 -134
  24. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x8.h +0 -138
  25. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x2.h +0 -134
  26. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x4.h +0 -137
  27. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x1.h +0 -131
  28. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x2.h +0 -135
  29. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x16.h +0 -141
  30. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x8.h +0 -135
  31. data/ext/minimap2/lib/simde/simde/arm/neon.h +0 -97
  32. data/ext/minimap2/lib/simde/simde/check.h +0 -267
  33. data/ext/minimap2/lib/simde/simde/debug-trap.h +0 -83
  34. data/ext/minimap2/lib/simde/simde/hedley.h +0 -1899
  35. data/ext/minimap2/lib/simde/simde/simde-arch.h +0 -445
  36. data/ext/minimap2/lib/simde/simde/simde-common.h +0 -697
  37. data/ext/minimap2/lib/simde/simde/x86/avx.h +0 -5385
  38. data/ext/minimap2/lib/simde/simde/x86/avx2.h +0 -2402
  39. data/ext/minimap2/lib/simde/simde/x86/avx512bw.h +0 -391
  40. data/ext/minimap2/lib/simde/simde/x86/avx512f.h +0 -3389
  41. data/ext/minimap2/lib/simde/simde/x86/avx512vl.h +0 -112
  42. data/ext/minimap2/lib/simde/simde/x86/fma.h +0 -659
  43. data/ext/minimap2/lib/simde/simde/x86/mmx.h +0 -2210
  44. data/ext/minimap2/lib/simde/simde/x86/sse.h +0 -3696
  45. data/ext/minimap2/lib/simde/simde/x86/sse2.h +0 -5991
  46. data/ext/minimap2/lib/simde/simde/x86/sse3.h +0 -343
  47. data/ext/minimap2/lib/simde/simde/x86/sse4.1.h +0 -1783
  48. data/ext/minimap2/lib/simde/simde/x86/sse4.2.h +0 -105
  49. data/ext/minimap2/lib/simde/simde/x86/ssse3.h +0 -1053
  50. data/ext/minimap2/lib/simde/simde/x86/svml.h +0 -543
  51. data/ext/minimap2/lib/simde/test/CMakeLists.txt +0 -166
  52. data/ext/minimap2/lib/simde/test/arm/meson.build +0 -4
  53. data/ext/minimap2/lib/simde/test/arm/neon/meson.build +0 -23
  54. data/ext/minimap2/lib/simde/test/arm/neon/skel.c +0 -871
  55. data/ext/minimap2/lib/simde/test/arm/neon/test-neon-internal.h +0 -134
  56. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.c +0 -39
  57. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.h +0 -10
  58. data/ext/minimap2/lib/simde/test/arm/neon/vadd.c +0 -1260
  59. data/ext/minimap2/lib/simde/test/arm/neon/vdup_n.c +0 -873
  60. data/ext/minimap2/lib/simde/test/arm/neon/vmul.c +0 -1084
  61. data/ext/minimap2/lib/simde/test/arm/neon/vsub.c +0 -1260
  62. data/ext/minimap2/lib/simde/test/arm/test-arm-internal.h +0 -18
  63. data/ext/minimap2/lib/simde/test/arm/test-arm.c +0 -20
  64. data/ext/minimap2/lib/simde/test/arm/test-arm.h +0 -8
  65. data/ext/minimap2/lib/simde/test/cmake/AddCompilerFlags.cmake +0 -171
  66. data/ext/minimap2/lib/simde/test/cmake/ExtraWarningFlags.cmake +0 -68
  67. data/ext/minimap2/lib/simde/test/meson.build +0 -64
  68. data/ext/minimap2/lib/simde/test/munit/COPYING +0 -21
  69. data/ext/minimap2/lib/simde/test/munit/Makefile +0 -55
  70. data/ext/minimap2/lib/simde/test/munit/README.md +0 -54
  71. data/ext/minimap2/lib/simde/test/munit/example.c +0 -351
  72. data/ext/minimap2/lib/simde/test/munit/meson.build +0 -37
  73. data/ext/minimap2/lib/simde/test/munit/munit.c +0 -2055
  74. data/ext/minimap2/lib/simde/test/munit/munit.h +0 -535
  75. data/ext/minimap2/lib/simde/test/run-tests.c +0 -20
  76. data/ext/minimap2/lib/simde/test/run-tests.h +0 -260
  77. data/ext/minimap2/lib/simde/test/x86/avx.c +0 -13752
  78. data/ext/minimap2/lib/simde/test/x86/avx2.c +0 -9977
  79. data/ext/minimap2/lib/simde/test/x86/avx512bw.c +0 -2664
  80. data/ext/minimap2/lib/simde/test/x86/avx512f.c +0 -10416
  81. data/ext/minimap2/lib/simde/test/x86/avx512vl.c +0 -210
  82. data/ext/minimap2/lib/simde/test/x86/fma.c +0 -2557
  83. data/ext/minimap2/lib/simde/test/x86/meson.build +0 -33
  84. data/ext/minimap2/lib/simde/test/x86/mmx.c +0 -2878
  85. data/ext/minimap2/lib/simde/test/x86/skel.c +0 -2984
  86. data/ext/minimap2/lib/simde/test/x86/sse.c +0 -5121
  87. data/ext/minimap2/lib/simde/test/x86/sse2.c +0 -9860
  88. data/ext/minimap2/lib/simde/test/x86/sse3.c +0 -486
  89. data/ext/minimap2/lib/simde/test/x86/sse4.1.c +0 -3446
  90. data/ext/minimap2/lib/simde/test/x86/sse4.2.c +0 -101
  91. data/ext/minimap2/lib/simde/test/x86/ssse3.c +0 -2084
  92. data/ext/minimap2/lib/simde/test/x86/svml.c +0 -1545
  93. data/ext/minimap2/lib/simde/test/x86/test-avx.h +0 -16
  94. data/ext/minimap2/lib/simde/test/x86/test-avx512.h +0 -25
  95. data/ext/minimap2/lib/simde/test/x86/test-mmx.h +0 -13
  96. data/ext/minimap2/lib/simde/test/x86/test-sse.h +0 -13
  97. data/ext/minimap2/lib/simde/test/x86/test-sse2.h +0 -13
  98. data/ext/minimap2/lib/simde/test/x86/test-x86-internal.h +0 -196
  99. data/ext/minimap2/lib/simde/test/x86/test-x86.c +0 -48
  100. data/ext/minimap2/lib/simde/test/x86/test-x86.h +0 -8
@@ -1,543 +0,0 @@
1
- /* Permission is hereby granted, free of charge, to any person
2
- * obtaining a copy of this software and associated documentation
3
- * files (the "Software"), to deal in the Software without
4
- * restriction, including without limitation the rights to use, copy,
5
- * modify, merge, publish, distribute, sublicense, and/or sell copies
6
- * of the Software, and to permit persons to whom the Software is
7
- * furnished to do so, subject to the following conditions:
8
- *
9
- * The above copyright notice and this permission notice shall be
10
- * included in all copies or substantial portions of the Software.
11
- *
12
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
16
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
17
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- * SOFTWARE.
20
- *
21
- * Copyright:
22
- * 2020 Evan Nemerson <evan@nemerson.com>
23
- */
24
-
25
- #if !defined(SIMDE__SVML_H)
26
- # if !defined(SIMDE__SVML_H)
27
- # define SIMDE__SVML_H
28
- # endif
29
- # include "avx2.h"
30
-
31
- HEDLEY_DIAGNOSTIC_PUSH
32
- SIMDE_DISABLE_UNWANTED_DIAGNOSTICS
33
-
34
- # if defined(SIMDE_SVML_NATIVE)
35
- # undef SIMDE_SVML_NATIVE
36
- # endif
37
- # if defined(__INTEL_COMPILER) && !defined(SIMDE_SVML_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
38
- # define SIMDE_SVML_NATIVE
39
- # elif defined(SIMDE_ARCH_ARM_NEON) && !defined(SIMDE_SVML_NO_NEON) && !defined(SIMDE_NO_NEON)
40
- # define SIMDE_SVML_NEON
41
- # elif defined(SIMDE_ARCH_WASM_SIMD128)
42
- # define SIMDE_SVML_WASM_SIMD128
43
- # endif
44
-
45
- # if defined(SIMDE_SVML_NATIVE)
46
- # if defined(SIMDE_ARCH_X86_SSE)
47
- # define SIMDE_SVML_SSE
48
- # endif
49
- # if defined(SIMDE_ARCH_X86_SSE2)
50
- # define SIMDE_SVML_SSE2
51
- # endif
52
- # if defined(SIMDE_ARCH_X86_SSE3)
53
- # define SIMDE_SVML_SSE3
54
- # endif
55
- # if defined(SIMDE_ARCH_X86_SSSE3)
56
- # define SIMDE_SVML_SSSE3
57
- # endif
58
- # if defined(SIMDE_ARCH_X86_SSE4_1)
59
- # define SIMDE_SVML_SSE4_1
60
- # endif
61
- # if defined(SIMDE_ARCH_X86_SSE4_2)
62
- # define SIMDE_SVML_SSE4_2
63
- # endif
64
- # if defined(SIMDE_ARCH_X86_AVX)
65
- # define SIMDE_SVML_SSE
66
- # endif
67
- # if defined(SIMDE_ARCH_X86_AVX2)
68
- # define SIMDE_SVML_SSE
69
- # endif
70
- # else
71
- # if defined(SIMDE_SVML_NEON)
72
- # include <arm_neon.h>
73
- # endif
74
-
75
- # if defined(SIMDE_SVML_WASM_SIMD128)
76
- # if !defined(__wasm_unimplemented_simd128__)
77
- # define __wasm_unimplemented_simd128__
78
- # endif
79
- # include <wasm_simd128.h>
80
- # endif
81
-
82
- # if !defined(HEDLEY_INTEL_VERSION) && !defined(HEDLEY_EMSCRIPTEN_VERSION) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_ATOMICS__)
83
- # include <stdatomic.h>
84
- # elif defined(_WIN32)
85
- # include <windows.h>
86
- # endif
87
- # endif
88
-
89
- SIMDE__BEGIN_DECLS
90
-
91
- SIMDE__FUNCTION_ATTRIBUTES
92
- simde__m128i
93
- simde_mm_div_epi8 (simde__m128i a, simde__m128i b) {
94
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
95
- return _mm_div_epi8(a, b);
96
- #else
97
- simde__m128i_private
98
- r_,
99
- a_ = simde__m128i_to_private(a),
100
- b_ = simde__m128i_to_private(b);
101
-
102
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
103
- r_.i8 = a_.i8 / b_.i8;
104
- #elif defined(SIMDE_SVML_WASM_SIMD128)
105
- r_.wasm_v128 = wasm_i8x4_div(a_.wasm_v128, b_.wasm_v128);
106
- #else
107
- SIMDE__VECTORIZE
108
- for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) {
109
- r_.i8[i] = a_.i8[i] / b_.i8[i];
110
- }
111
- #endif
112
-
113
- return simde__m128i_from_private(r_);
114
- #endif
115
- }
116
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
117
- # define _mm_div_epi8(a, b) simde_mm_div_epi8((a), (b))
118
- #endif
119
-
120
- SIMDE__FUNCTION_ATTRIBUTES
121
- simde__m128i
122
- simde_mm_div_epi16 (simde__m128i a, simde__m128i b) {
123
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
124
- return _mm_div_epi16(a, b);
125
- #else
126
- simde__m128i_private
127
- r_,
128
- a_ = simde__m128i_to_private(a),
129
- b_ = simde__m128i_to_private(b);
130
-
131
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
132
- r_.i16 = a_.i16 / b_.i16;
133
- #elif defined(SIMDE_SVML_WASM_SIMD128)
134
- r_.wasm_v128 = wasm_i16x4_div(a_.wasm_v128, b_.wasm_v128);
135
- #else
136
- SIMDE__VECTORIZE
137
- for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) {
138
- r_.i16[i] = a_.i16[i] / b_.i16[i];
139
- }
140
- #endif
141
-
142
- return simde__m128i_from_private(r_);
143
- #endif
144
- }
145
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
146
- # define _mm_div_epi16(a, b) simde_mm_div_epi16((a), (b))
147
- #endif
148
-
149
- SIMDE__FUNCTION_ATTRIBUTES
150
- simde__m128i
151
- simde_mm_div_epi32 (simde__m128i a, simde__m128i b) {
152
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
153
- return _mm_div_epi32(a, b);
154
- #else
155
- simde__m128i_private
156
- r_,
157
- a_ = simde__m128i_to_private(a),
158
- b_ = simde__m128i_to_private(b);
159
-
160
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
161
- r_.i32 = a_.i32 / b_.i32;
162
- #elif defined(SIMDE_SVML_WASM_SIMD128)
163
- r_.wasm_v128 = wasm_i32x4_div(a_.wasm_v128, b_.wasm_v128);
164
- #else
165
- SIMDE__VECTORIZE
166
- for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) {
167
- r_.i32[i] = a_.i32[i] / b_.i32[i];
168
- }
169
- #endif
170
-
171
- return simde__m128i_from_private(r_);
172
- #endif
173
- }
174
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
175
- # define _mm_div_epi32(a, b) simde_mm_div_epi32((a), (b))
176
- #endif
177
-
178
- SIMDE__FUNCTION_ATTRIBUTES
179
- simde__m128i
180
- simde_mm_div_epi64 (simde__m128i a, simde__m128i b) {
181
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
182
- return _mm_div_epi64(a, b);
183
- #else
184
- simde__m128i_private
185
- r_,
186
- a_ = simde__m128i_to_private(a),
187
- b_ = simde__m128i_to_private(b);
188
-
189
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
190
- r_.i64 = a_.i64 / b_.i64;
191
- #elif defined(SIMDE_SVML_WASM_SIMD128)
192
- r_.wasm_v128 = wasm_i64x4_div(a_.wasm_v128, b_.wasm_v128);
193
- #else
194
- SIMDE__VECTORIZE
195
- for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) {
196
- r_.i64[i] = a_.i64[i] / b_.i64[i];
197
- }
198
- #endif
199
-
200
- return simde__m128i_from_private(r_);
201
- #endif
202
- }
203
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
204
- # define _mm_div_epi64(a, b) simde_mm_div_epi64((a), (b))
205
- #endif
206
-
207
- SIMDE__FUNCTION_ATTRIBUTES
208
- simde__m128i
209
- simde_mm_div_epu8 (simde__m128i a, simde__m128i b) {
210
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
211
- return _mm_div_epu8(a, b);
212
- #else
213
- simde__m128i_private
214
- r_,
215
- a_ = simde__m128i_to_private(a),
216
- b_ = simde__m128i_to_private(b);
217
-
218
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
219
- r_.u8 = a_.u8 / b_.u8;
220
- #elif defined(SIMDE_SVML_WASM_SIMD128)
221
- r_.wasm_v128 = wasm_u8x16_div(a_.wasm_v128, b_.wasm_v128);
222
- #else
223
- SIMDE__VECTORIZE
224
- for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) {
225
- r_.u8[i] = a_.u8[i] / b_.u8[i];
226
- }
227
- #endif
228
-
229
- return simde__m128i_from_private(r_);
230
- #endif
231
- }
232
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
233
- # define _mm_div_epu8(a, b) simde_mm_div_epu8((a), (b))
234
- #endif
235
-
236
- SIMDE__FUNCTION_ATTRIBUTES
237
- simde__m128i
238
- simde_mm_div_epu16 (simde__m128i a, simde__m128i b) {
239
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
240
- return _mm_div_epu16(a, b);
241
- #else
242
- simde__m128i_private
243
- r_,
244
- a_ = simde__m128i_to_private(a),
245
- b_ = simde__m128i_to_private(b);
246
-
247
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
248
- r_.u16 = a_.u16 / b_.u16;
249
- #elif defined(SIMDE_SVML_WASM_SIMD128)
250
- r_.wasm_v128 = wasm_u16x16_div(a_.wasm_v128, b_.wasm_v128);
251
- #else
252
- SIMDE__VECTORIZE
253
- for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) {
254
- r_.u16[i] = a_.u16[i] / b_.u16[i];
255
- }
256
- #endif
257
-
258
- return simde__m128i_from_private(r_);
259
- #endif
260
- }
261
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
262
- # define _mm_div_epu16(a, b) simde_mm_div_epu16((a), (b))
263
- #endif
264
-
265
- SIMDE__FUNCTION_ATTRIBUTES
266
- simde__m128i
267
- simde_mm_div_epu32 (simde__m128i a, simde__m128i b) {
268
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
269
- return _mm_div_epu32(a, b);
270
- #else
271
- simde__m128i_private
272
- r_,
273
- a_ = simde__m128i_to_private(a),
274
- b_ = simde__m128i_to_private(b);
275
-
276
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
277
- r_.u32 = a_.u32 / b_.u32;
278
- #elif defined(SIMDE_SVML_WASM_SIMD128)
279
- r_.wasm_v128 = wasm_u32x16_div(a_.wasm_v128, b_.wasm_v128);
280
- #else
281
- SIMDE__VECTORIZE
282
- for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) {
283
- r_.u32[i] = a_.u32[i] / b_.u32[i];
284
- }
285
- #endif
286
-
287
- return simde__m128i_from_private(r_);
288
- #endif
289
- }
290
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
291
- # define _mm_div_epu32(a, b) simde_mm_div_epu32((a), (b))
292
- #endif
293
-
294
- SIMDE__FUNCTION_ATTRIBUTES
295
- simde__m128i
296
- simde_mm_div_epu64 (simde__m128i a, simde__m128i b) {
297
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_SSE2)
298
- return _mm_div_epu64(a, b);
299
- #else
300
- simde__m128i_private
301
- r_,
302
- a_ = simde__m128i_to_private(a),
303
- b_ = simde__m128i_to_private(b);
304
-
305
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
306
- r_.u64 = a_.u64 / b_.u64;
307
- #elif defined(SIMDE_SVML_WASM_SIMD128)
308
- r_.wasm_v128 = wasm_u64x16_div(a_.wasm_v128, b_.wasm_v128);
309
- #else
310
- SIMDE__VECTORIZE
311
- for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) {
312
- r_.u64[i] = a_.u64[i] / b_.u64[i];
313
- }
314
- #endif
315
-
316
- return simde__m128i_from_private(r_);
317
- #endif
318
- }
319
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
320
- # define _mm_div_epu64(a, b) simde_mm_div_epu64((a), (b))
321
- #endif
322
-
323
- SIMDE__FUNCTION_ATTRIBUTES
324
- simde__m256i
325
- simde_mm256_div_epi8 (simde__m256i a, simde__m256i b) {
326
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
327
- return _mm256_div_epi32(a, b);
328
- #else
329
- simde__m256i_private
330
- r_,
331
- a_ = simde__m256i_to_private(a),
332
- b_ = simde__m256i_to_private(b);
333
-
334
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
335
- r_.i8 = a_.i8 / b_.i8;
336
- #else
337
- SIMDE__VECTORIZE
338
- for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) {
339
- r_.i8[i] = a_.i8[i] / b_.i8[i];
340
- }
341
- #endif
342
-
343
- return simde__m256i_from_private(r_);
344
- #endif
345
- }
346
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
347
- # define _mm256_div_epi8(a, b) simde_mm256_div_epi8((a), (b))
348
- #endif
349
-
350
- SIMDE__FUNCTION_ATTRIBUTES
351
- simde__m256i
352
- simde_mm256_div_epi16 (simde__m256i a, simde__m256i b) {
353
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
354
- return _mm256_div_epi16(a, b);
355
- #else
356
- simde__m256i_private
357
- r_,
358
- a_ = simde__m256i_to_private(a),
359
- b_ = simde__m256i_to_private(b);
360
-
361
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
362
- r_.i16 = a_.i16 / b_.i16;
363
- #else
364
- SIMDE__VECTORIZE
365
- for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) {
366
- r_.i16[i] = a_.i16[i] / b_.i16[i];
367
- }
368
- #endif
369
-
370
- return simde__m256i_from_private(r_);
371
- #endif
372
- }
373
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
374
- # define _mm256_div_epi16(a, b) simde_mm256_div_epi16((a), (b))
375
- #endif
376
-
377
- SIMDE__FUNCTION_ATTRIBUTES
378
- simde__m256i
379
- simde_mm256_div_epi32 (simde__m256i a, simde__m256i b) {
380
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
381
- return _mm256_div_epi32(a, b);
382
- #else
383
- simde__m256i_private
384
- r_,
385
- a_ = simde__m256i_to_private(a),
386
- b_ = simde__m256i_to_private(b);
387
-
388
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
389
- r_.i32 = a_.i32 / b_.i32;
390
- #else
391
- SIMDE__VECTORIZE
392
- for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) {
393
- r_.i32[i] = a_.i32[i] / b_.i32[i];
394
- }
395
- #endif
396
-
397
- return simde__m256i_from_private(r_);
398
- #endif
399
- }
400
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
401
- # define _mm256_div_epi32(a, b) simde_mm256_div_epi32((a), (b))
402
- #endif
403
-
404
- SIMDE__FUNCTION_ATTRIBUTES
405
- simde__m256i
406
- simde_mm256_div_epi64 (simde__m256i a, simde__m256i b) {
407
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
408
- return _mm256_div_epi64(a, b);
409
- #else
410
- simde__m256i_private
411
- r_,
412
- a_ = simde__m256i_to_private(a),
413
- b_ = simde__m256i_to_private(b);
414
-
415
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
416
- r_.i64 = a_.i64 / b_.i64;
417
- #else
418
- SIMDE__VECTORIZE
419
- for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) {
420
- r_.i64[i] = a_.i64[i] / b_.i64[i];
421
- }
422
- #endif
423
-
424
- return simde__m256i_from_private(r_);
425
- #endif
426
- }
427
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
428
- # define _mm256_div_epi64(a, b) simde_mm256_div_epi64((a), (b))
429
- #endif
430
-
431
- SIMDE__FUNCTION_ATTRIBUTES
432
- simde__m256i
433
- simde_mm256_div_epu8 (simde__m256i a, simde__m256i b) {
434
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
435
- return _mm256_div_epi32(a, b);
436
- #else
437
- simde__m256i_private
438
- r_,
439
- a_ = simde__m256i_to_private(a),
440
- b_ = simde__m256i_to_private(b);
441
-
442
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
443
- r_.u8 = a_.u8 / b_.u8;
444
- #else
445
- SIMDE__VECTORIZE
446
- for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) {
447
- r_.u8[i] = a_.u8[i] / b_.u8[i];
448
- }
449
- #endif
450
-
451
- return simde__m256i_from_private(r_);
452
- #endif
453
- }
454
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
455
- # define _mm256_div_epu8(a, b) simde_mm256_div_epu8((a), (b))
456
- #endif
457
-
458
- SIMDE__FUNCTION_ATTRIBUTES
459
- simde__m256i
460
- simde_mm256_div_epu16 (simde__m256i a, simde__m256i b) {
461
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
462
- return _mm256_div_epi16(a, b);
463
- #else
464
- simde__m256i_private
465
- r_,
466
- a_ = simde__m256i_to_private(a),
467
- b_ = simde__m256i_to_private(b);
468
-
469
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
470
- r_.u16 = a_.u16 / b_.u16;
471
- #else
472
- SIMDE__VECTORIZE
473
- for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) {
474
- r_.u16[i] = a_.u16[i] / b_.u16[i];
475
- }
476
- #endif
477
-
478
- return simde__m256i_from_private(r_);
479
- #endif
480
- }
481
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
482
- # define _mm256_div_epu16(a, b) simde_mm256_div_epu16((a), (b))
483
- #endif
484
-
485
- SIMDE__FUNCTION_ATTRIBUTES
486
- simde__m256i
487
- simde_mm256_div_epu32 (simde__m256i a, simde__m256i b) {
488
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
489
- return _mm256_div_epi32(a, b);
490
- #else
491
- simde__m256i_private
492
- r_,
493
- a_ = simde__m256i_to_private(a),
494
- b_ = simde__m256i_to_private(b);
495
-
496
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
497
- r_.u32 = a_.u32 / b_.u32;
498
- #else
499
- SIMDE__VECTORIZE
500
- for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) {
501
- r_.u32[i] = a_.u32[i] / b_.u32[i];
502
- }
503
- #endif
504
-
505
- return simde__m256i_from_private(r_);
506
- #endif
507
- }
508
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
509
- # define _mm256_div_epu32(a, b) simde_mm256_div_epu32((a), (b))
510
- #endif
511
-
512
- SIMDE__FUNCTION_ATTRIBUTES
513
- simde__m256i
514
- simde_mm256_div_epu64 (simde__m256i a, simde__m256i b) {
515
- #if defined(SIMDE_SVML_NATIVE) && defined(SIMDE_SVML_AVX)
516
- return _mm256_div_epi64(a, b);
517
- #else
518
- simde__m256i_private
519
- r_,
520
- a_ = simde__m256i_to_private(a),
521
- b_ = simde__m256i_to_private(b);
522
-
523
- #if defined(SIMDE_VECTOR_SUBSCRIPT_OPS)
524
- r_.u64 = a_.u64 / b_.u64;
525
- #else
526
- SIMDE__VECTORIZE
527
- for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) {
528
- r_.u64[i] = a_.u64[i] / b_.u64[i];
529
- }
530
- #endif
531
-
532
- return simde__m256i_from_private(r_);
533
- #endif
534
- }
535
- #if defined(SIMDE_SVML_ENABLE_NATIVE_ALIASES)
536
- # define _mm256_div_epu64(a, b) simde_mm256_div_epu64((a), (b))
537
- #endif
538
-
539
- SIMDE__END_DECLS
540
-
541
- HEDLEY_DIAGNOSTIC_POP
542
-
543
- #endif /* !defined(SIMDE__SVML_H) */
@@ -1,166 +0,0 @@
1
- cmake_minimum_required(VERSION 3.0)
2
-
3
- project(simde-tests)
4
-
5
- set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
6
- include (ExtraWarningFlags)
7
-
8
- enable_testing()
9
-
10
- option(BUILD_CPP_TESTS "Build C++ tests" ON)
11
- option(ALWAYS_BUILD_NATIVE_TESTS "Build 'native' tests even if the native instructions aren't available" OFF)
12
-
13
- if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/munit/munit.c")
14
- find_program(GIT git)
15
- if(GIT)
16
- execute_process(COMMAND ${GIT} submodule update --init --recursive)
17
- else()
18
- message (FATAL_ERROR "It looks like you don't have submodules checked out. Please run `git submodule update --init --recursive'")
19
- endif()
20
- endif()
21
-
22
- if(CMAKE_BUILD_TYPE STREQUAL "")
23
- set(CMAKE_BUILD_TYPE "Debug")
24
- elseif(CMAKE_BUILD_TYPE STREQUAL "Coverage")
25
- set(orig_req_libs "${CMAKE_REQUIRED_LIBRARIES}")
26
- set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};--coverage")
27
- check_c_compiler_flag("--coverage" CFLAG___coverage)
28
- set(CMAKE_REQUIRED_LIBRARIES "${orig_req_libs}")
29
-
30
- if(CFLAG___coverage)
31
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
32
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_C_FLAGS} --coverage")
33
- add_definitions("-DSIMDE_NO_INLINE")
34
- else()
35
- set(CMAKE_BUILD_TYPE "Debug")
36
- endif()
37
- endif()
38
-
39
- add_library(munit STATIC munit/munit.c)
40
-
41
- include(CheckFunctionExists)
42
- check_function_exists(clock_gettime CLOCK_GETTIME_RES)
43
- if(CLOCK_GETTIME_RES)
44
- set(CLOCK_GETTIME_EXISTS yes)
45
- else()
46
- set(orig_req_libs "${CMAKE_REQUIRED_LIBRARIES}")
47
- set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};rt")
48
-
49
- check_function_exists(clock_gettime CLOCK_GETTIME_LIBRT_RES)
50
- if(CLOCK_GETTIME_LIBRT_RES)
51
- set(CLOCK_GETTIME_EXISTS yes)
52
- set(CLOCK_GETTIME_LIBRARY "rt")
53
- endif()
54
-
55
- set(CMAKE_REQUIRED_LIBRARIES "${orig_req_libs}")
56
- unset(orig_req_libs)
57
- endif()
58
-
59
- check_function_exists(fegetround FEGETROUND_EXISTS)
60
- if(NOT FEGETROUND_EXISTS)
61
- unset(FEGETROUND_EXISTS CACHE)
62
- list(APPEND CMAKE_REQUIRED_LIBRARIES m)
63
- check_function_exists(fegetround FEGETROUND_EXISTS)
64
- if(FEGETROUND_EXISTS)
65
- set(NEED_LIBM True)
66
- else()
67
- message(FATAL_ERROR "Unable to find fegetround")
68
- endif()
69
- endif(NOT FEGETROUND_EXISTS)
70
-
71
- set_property(TARGET munit PROPERTY C_STANDARD "99")
72
- if("${CLOCK_GETTIME_EXISTS}")
73
- target_compile_definitions(munit PRIVATE "MUNIT_ALLOW_CLOCK_GETTIME")
74
- target_link_libraries(munit "${CLOCK_GETTIME_LIBRARY}")
75
- endif()
76
-
77
- if("${OPENMP_SIMD_FLAGS}" STREQUAL "")
78
- foreach(omp_simd_flag "-fopenmp-simd" "-qopenmp-simd")
79
- string (REGEX REPLACE "[^a-zA-Z0-9]+" "_" omp_simd_flag_name "CFLAG_${omp_simd_flag}")
80
- check_c_compiler_flag("${omp_simd_flag}" "${omp_simd_flag_name}")
81
-
82
- if(${omp_simd_flag_name})
83
- set(OPENMP_SIMD_FLAGS "-DSIMDE_ENABLE_OPENMP ${omp_simd_flag}")
84
- break()
85
- endif()
86
- endforeach()
87
- endif()
88
-
89
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENMP_SIMD_FLAGS}")
90
-
91
- set(TEST_SOURCES_C
92
- x86/mmx.c
93
- x86/sse.c
94
- x86/sse2.c
95
- x86/sse3.c
96
- x86/ssse3.c
97
- x86/sse4.1.c
98
- x86/sse4.2.c
99
- x86/avx.c
100
- x86/avx2.c
101
- x86/avx512f.c
102
- x86/avx512bw.c
103
- x86/avx512vl.c
104
- x86/fma.c
105
- x86/svml.c
106
-
107
- arm/neon/vadd.c
108
- arm/neon/vdup_n.c
109
- arm/neon/vmul.c
110
- arm/neon/vsub.c)
111
-
112
- set(TEST_RUNNER_SOURCES
113
- run-tests.c
114
- x86/test-x86.c
115
- arm/neon/test-neon.c
116
- arm/test-arm.c)
117
- add_executable(run-tests ${TEST_RUNNER_SOURCES})
118
- set_property(TARGET run-tests PROPERTY C_STANDARD "99")
119
- target_link_libraries(run-tests munit)
120
- target_add_compiler_flags (munit "-w")
121
- if(NEED_LIBM)
122
- target_link_libraries(run-tests m)
123
- endif(NEED_LIBM)
124
-
125
- set(TEST_SOURCES_CPP)
126
- if(BUILD_CPP_TESTS)
127
- foreach(csource ${TEST_SOURCES_C})
128
- configure_file("${csource}" "${CMAKE_CURRENT_BINARY_DIR}/${csource}pp")
129
- list(APPEND TEST_SOURCES_CPP "${CMAKE_CURRENT_BINARY_DIR}/${csource}pp")
130
- endforeach()
131
-
132
- add_definitions(-DSIMDE_BUILD_CPP_TESTS)
133
- endif(BUILD_CPP_TESTS)
134
-
135
- foreach(native native emul)
136
- add_library(simde-test-${native} STATIC ${TEST_SOURCES_C} ${TEST_SOURCES_CPP})
137
-
138
- target_include_directories(simde-test-${native} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..")
139
- set_property(TARGET simde-test-${native} PROPERTY C_STANDARD "99")
140
-
141
- if(ALWAYS_BUILD_NATIVE_TESTS)
142
- target_compile_definitions(simde-test-${native} PRIVATE SIMDE_ALWAYS_BUILD_NATIVE_TESTS)
143
- endif(ALWAYS_BUILD_NATIVE_TESTS)
144
-
145
- target_link_libraries(run-tests simde-test-${native})
146
- endforeach(native native emul)
147
- target_compile_definitions(simde-test-emul PRIVATE SIMDE_NO_NATIVE)
148
-
149
- foreach(tst
150
- "/x86/mmx"
151
- "/x86/sse"
152
- "/x86/sse2"
153
- "/x86/sse3"
154
- "/x86/ssse3"
155
- "/x86/sse4.1"
156
- "/x86/sse4.2"
157
- "/x86/avx"
158
- "/x86/fma"
159
- "/x86/avx2"
160
- "/x86/avx512f"
161
- "/x86/avx512bw"
162
- "/x86/avx512vl"
163
- "/x86/svml"
164
- )
165
- add_test(NAME "${tst}/${variant}" COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:run-tests> "${tst}")
166
- endforeach()
@@ -1,4 +0,0 @@
1
- subdir('neon')
2
-
3
- simde_tests_arm = static_library('simde-tests-arm', 'test-arm.c',
4
- link_with: [simde_tests_arm_neon])