minimap2 0.2.24.3 → 0.2.24.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/ext/minimap2/lib/simde/CONTRIBUTING.md +114 -0
  3. data/ext/minimap2/lib/simde/COPYING +20 -0
  4. data/ext/minimap2/lib/simde/README.md +333 -0
  5. data/ext/minimap2/lib/simde/amalgamate.py +58 -0
  6. data/ext/minimap2/lib/simde/meson.build +33 -0
  7. data/ext/minimap2/lib/simde/netlify.toml +20 -0
  8. data/ext/minimap2/lib/simde/simde/arm/neon/float32x2.h +140 -0
  9. data/ext/minimap2/lib/simde/simde/arm/neon/float32x4.h +137 -0
  10. data/ext/minimap2/lib/simde/simde/arm/neon/float64x1.h +142 -0
  11. data/ext/minimap2/lib/simde/simde/arm/neon/float64x2.h +145 -0
  12. data/ext/minimap2/lib/simde/simde/arm/neon/int16x4.h +140 -0
  13. data/ext/minimap2/lib/simde/simde/arm/neon/int16x8.h +145 -0
  14. data/ext/minimap2/lib/simde/simde/arm/neon/int32x2.h +140 -0
  15. data/ext/minimap2/lib/simde/simde/arm/neon/int32x4.h +143 -0
  16. data/ext/minimap2/lib/simde/simde/arm/neon/int64x1.h +137 -0
  17. data/ext/minimap2/lib/simde/simde/arm/neon/int64x2.h +141 -0
  18. data/ext/minimap2/lib/simde/simde/arm/neon/int8x16.h +147 -0
  19. data/ext/minimap2/lib/simde/simde/arm/neon/int8x8.h +141 -0
  20. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x4.h +134 -0
  21. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x8.h +138 -0
  22. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x2.h +134 -0
  23. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x4.h +137 -0
  24. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x1.h +131 -0
  25. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x2.h +135 -0
  26. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x16.h +141 -0
  27. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x8.h +135 -0
  28. data/ext/minimap2/lib/simde/simde/arm/neon.h +97 -0
  29. data/ext/minimap2/lib/simde/simde/check.h +267 -0
  30. data/ext/minimap2/lib/simde/simde/debug-trap.h +83 -0
  31. data/ext/minimap2/lib/simde/simde/hedley.h +1899 -0
  32. data/ext/minimap2/lib/simde/simde/simde-arch.h +445 -0
  33. data/ext/minimap2/lib/simde/simde/simde-common.h +697 -0
  34. data/ext/minimap2/lib/simde/simde/x86/avx.h +5385 -0
  35. data/ext/minimap2/lib/simde/simde/x86/avx2.h +2402 -0
  36. data/ext/minimap2/lib/simde/simde/x86/avx512bw.h +391 -0
  37. data/ext/minimap2/lib/simde/simde/x86/avx512f.h +3389 -0
  38. data/ext/minimap2/lib/simde/simde/x86/avx512vl.h +112 -0
  39. data/ext/minimap2/lib/simde/simde/x86/fma.h +659 -0
  40. data/ext/minimap2/lib/simde/simde/x86/mmx.h +2210 -0
  41. data/ext/minimap2/lib/simde/simde/x86/sse.h +3696 -0
  42. data/ext/minimap2/lib/simde/simde/x86/sse2.h +5991 -0
  43. data/ext/minimap2/lib/simde/simde/x86/sse3.h +343 -0
  44. data/ext/minimap2/lib/simde/simde/x86/sse4.1.h +1783 -0
  45. data/ext/minimap2/lib/simde/simde/x86/sse4.2.h +105 -0
  46. data/ext/minimap2/lib/simde/simde/x86/ssse3.h +1053 -0
  47. data/ext/minimap2/lib/simde/simde/x86/svml.h +543 -0
  48. data/ext/minimap2/lib/simde/test/CMakeLists.txt +166 -0
  49. data/ext/minimap2/lib/simde/test/arm/meson.build +4 -0
  50. data/ext/minimap2/lib/simde/test/arm/neon/meson.build +23 -0
  51. data/ext/minimap2/lib/simde/test/arm/neon/skel.c +871 -0
  52. data/ext/minimap2/lib/simde/test/arm/neon/test-neon-internal.h +134 -0
  53. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.c +39 -0
  54. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.h +10 -0
  55. data/ext/minimap2/lib/simde/test/arm/neon/vadd.c +1260 -0
  56. data/ext/minimap2/lib/simde/test/arm/neon/vdup_n.c +873 -0
  57. data/ext/minimap2/lib/simde/test/arm/neon/vmul.c +1084 -0
  58. data/ext/minimap2/lib/simde/test/arm/neon/vsub.c +1260 -0
  59. data/ext/minimap2/lib/simde/test/arm/test-arm-internal.h +18 -0
  60. data/ext/minimap2/lib/simde/test/arm/test-arm.c +20 -0
  61. data/ext/minimap2/lib/simde/test/arm/test-arm.h +8 -0
  62. data/ext/minimap2/lib/simde/test/cmake/AddCompilerFlags.cmake +171 -0
  63. data/ext/minimap2/lib/simde/test/cmake/ExtraWarningFlags.cmake +68 -0
  64. data/ext/minimap2/lib/simde/test/meson.build +64 -0
  65. data/ext/minimap2/lib/simde/test/munit/COPYING +21 -0
  66. data/ext/minimap2/lib/simde/test/munit/Makefile +55 -0
  67. data/ext/minimap2/lib/simde/test/munit/README.md +54 -0
  68. data/ext/minimap2/lib/simde/test/munit/example.c +351 -0
  69. data/ext/minimap2/lib/simde/test/munit/meson.build +37 -0
  70. data/ext/minimap2/lib/simde/test/munit/munit.c +2055 -0
  71. data/ext/minimap2/lib/simde/test/munit/munit.h +535 -0
  72. data/ext/minimap2/lib/simde/test/run-tests.c +20 -0
  73. data/ext/minimap2/lib/simde/test/run-tests.h +260 -0
  74. data/ext/minimap2/lib/simde/test/x86/avx.c +13752 -0
  75. data/ext/minimap2/lib/simde/test/x86/avx2.c +9977 -0
  76. data/ext/minimap2/lib/simde/test/x86/avx512bw.c +2664 -0
  77. data/ext/minimap2/lib/simde/test/x86/avx512f.c +10416 -0
  78. data/ext/minimap2/lib/simde/test/x86/avx512vl.c +210 -0
  79. data/ext/minimap2/lib/simde/test/x86/fma.c +2557 -0
  80. data/ext/minimap2/lib/simde/test/x86/meson.build +33 -0
  81. data/ext/minimap2/lib/simde/test/x86/mmx.c +2878 -0
  82. data/ext/minimap2/lib/simde/test/x86/skel.c +2984 -0
  83. data/ext/minimap2/lib/simde/test/x86/sse.c +5121 -0
  84. data/ext/minimap2/lib/simde/test/x86/sse2.c +9860 -0
  85. data/ext/minimap2/lib/simde/test/x86/sse3.c +486 -0
  86. data/ext/minimap2/lib/simde/test/x86/sse4.1.c +3446 -0
  87. data/ext/minimap2/lib/simde/test/x86/sse4.2.c +101 -0
  88. data/ext/minimap2/lib/simde/test/x86/ssse3.c +2084 -0
  89. data/ext/minimap2/lib/simde/test/x86/svml.c +1545 -0
  90. data/ext/minimap2/lib/simde/test/x86/test-avx.h +16 -0
  91. data/ext/minimap2/lib/simde/test/x86/test-avx512.h +25 -0
  92. data/ext/minimap2/lib/simde/test/x86/test-mmx.h +13 -0
  93. data/ext/minimap2/lib/simde/test/x86/test-sse.h +13 -0
  94. data/ext/minimap2/lib/simde/test/x86/test-sse2.h +13 -0
  95. data/ext/minimap2/lib/simde/test/x86/test-x86-internal.h +196 -0
  96. data/ext/minimap2/lib/simde/test/x86/test-x86.c +48 -0
  97. data/ext/minimap2/lib/simde/test/x86/test-x86.h +8 -0
  98. data/lib/minimap2/aligner.rb +2 -2
  99. data/lib/minimap2/ffi/constants.rb +3 -0
  100. data/lib/minimap2/version.rb +1 -1
  101. metadata +99 -3
@@ -0,0 +1,445 @@
1
+ /* Architecture detection
2
+ * Created by Evan Nemerson <evan@nemerson.com>
3
+ *
4
+ * To the extent possible under law, the authors have waived all
5
+ * copyright and related or neighboring rights to this code. For
6
+ * details, see the Creative Commons Zero 1.0 Universal license at
7
+ * <https://creativecommons.org/publicdomain/zero/1.0/>
8
+ *
9
+ * Different compilers define different preprocessor macros for the
10
+ * same architecture. This is an attempt to provide a single
11
+ * interface which is usable on any compiler.
12
+ *
13
+ * In general, a macro named SIMDE_ARCH_* is defined for each
14
+ * architecture the CPU supports. When there are multiple possible
15
+ * versions, we try to define the macro to the target version. For
16
+ * example, if you want to check for i586+, you could do something
17
+ * like:
18
+ *
19
+ * #if defined(SIMDE_ARCH_X86) && (SIMDE_ARCH_X86 >= 5)
20
+ * ...
21
+ * #endif
22
+ *
23
+ * You could also just check that SIMDE_ARCH_X86 >= 5 without checking
24
+ * if it's defined first, but some compilers may emit a warning about
25
+ * an undefined macro being used (e.g., GCC with -Wundef).
26
+ *
27
+ * This was originally created for SIMDe
28
+ * <https://github.com/nemequ/simde> (hence the prefix), but this
29
+ * header has no dependencies and may be used anywhere. It is
30
+ * originally based on information from
31
+ * <https://sourceforge.net/p/predef/wiki/Architectures/>, though it
32
+ * has been enhanced with additional information.
33
+ *
34
+ * If you improve this file, or find a bug, please file the issue at
35
+ * <https://github.com/nemequ/simde/issues>. If you copy this into
36
+ * your project, even if you change the prefix, please keep the links
37
+ * to SIMDe intact so others know where to report issues, submit
38
+ * enhancements, and find the latest version. */
39
+
40
+ #if !defined(SIMDE_ARCH_H)
41
+ #define SIMDE_ARCH_H
42
+
43
+ /* Alpha
44
+ <https://en.wikipedia.org/wiki/DEC_Alpha> */
45
+ #if defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
46
+ # if defined(__alpha_ev6__)
47
+ # define SIMDE_ARCH_ALPHA 6
48
+ # elif defined(__alpha_ev5__)
49
+ # define SIMDE_ARCH_ALPHA 5
50
+ # elif defined(__alpha_ev4__)
51
+ # define SIMDE_ARCH_ALPHA 4
52
+ # else
53
+ # define SIMDE_ARCH_ALPHA 1
54
+ # endif
55
+ #endif
56
+
57
+ /* Atmel AVR
58
+ <https://en.wikipedia.org/wiki/Atmel_AVR> */
59
+ #if defined(__AVR_ARCH__)
60
+ # define SIMDE_ARCH_AVR __AVR_ARCH__
61
+ #endif
62
+
63
+ /* AMD64 / x86_64
64
+ <https://en.wikipedia.org/wiki/X86-64> */
65
+ #if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X66) || defined(_M_AMD64)
66
+ # define SIMDE_ARCH_AMD64 1000
67
+ #endif
68
+
69
+ /* ARM
70
+ <https://en.wikipedia.org/wiki/ARM_architecture> */
71
+ #if defined(__ARM_ARCH_8A__)
72
+ # define SIMDE_ARCH_ARM 82
73
+ #elif defined(__ARM_ARCH_8R__)
74
+ # define SIMDE_ARCH_ARM 81
75
+ #elif defined(__ARM_ARCH_8__)
76
+ # define SIMDE_ARCH_ARM 80
77
+ #elif defined(__ARM_ARCH_7S__)
78
+ # define SIMDE_ARCH_ARM 74
79
+ #elif defined(__ARM_ARCH_7M__)
80
+ # define SIMDE_ARCH_ARM 73
81
+ #elif defined(__ARM_ARCH_7R__)
82
+ # define SIMDE_ARCH_ARM 72
83
+ #elif defined(__ARM_ARCH_7A__)
84
+ # define SIMDE_ARCH_ARM 71
85
+ #elif defined(__ARM_ARCH_7__)
86
+ # define SIMDE_ARCH_ARM 70
87
+ #elif defined(__ARM_ARCH)
88
+ # define SIMDE_ARCH_ARM (__ARM_ARCH * 10)
89
+ #elif defined(_M_ARM)
90
+ # define SIMDE_ARCH_ARM (_M_ARM * 10)
91
+ #elif defined(__arm__) || defined(__thumb__) || defined(__TARGET_ARCH_ARM) || defined(_ARM) || defined(_M_ARM) || defined(_M_ARM)
92
+ # define SIMDE_ARCH_ARM 1
93
+ #endif
94
+
95
+ /* AArch64
96
+ <https://en.wikipedia.org/wiki/ARM_architecture> */
97
+ #if defined(__aarch64__) || defined(_M_ARM64)
98
+ # define SIMDE_ARCH_AARCH64 1000
99
+ #endif
100
+
101
+ /* ARM SIMD ISA extensions */
102
+ #if defined(__ARM_NEON)
103
+ # if defined(SIMDE_ARCH_AARCH64)
104
+ # define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_AARCH64
105
+ # elif defined(SIMDE_ARCH_ARM)
106
+ # define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_ARM
107
+ # endif
108
+ #endif
109
+
110
+ /* Blackfin
111
+ <https://en.wikipedia.org/wiki/Blackfin> */
112
+ #if defined(__bfin) || defined(__BFIN__) || defined(__bfin__)
113
+ # define SIMDE_ARCH_BLACKFIN 1
114
+ #endif
115
+
116
+ /* CRIS
117
+ <https://en.wikipedia.org/wiki/ETRAX_CRIS> */
118
+ #if defined(__CRIS_arch_version)
119
+ # define SIMDE_ARCH_CRIS __CRIS_arch_version
120
+ #elif defined(__cris__) || defined(__cris) || defined(__CRIS) || defined(__CRIS__)
121
+ # define SIMDE_ARCH_CRIS 1
122
+ #endif
123
+
124
+ /* Convex
125
+ <https://en.wikipedia.org/wiki/Convex_Computer> */
126
+ #if defined(__convex_c38__)
127
+ # define SIMDE_ARCH_CONVEX 38
128
+ #elif defined(__convex_c34__)
129
+ # define SIMDE_ARCH_CONVEX 34
130
+ #elif defined(__convex_c32__)
131
+ # define SIMDE_ARCH_CONVEX 32
132
+ #elif defined(__convex_c2__)
133
+ # define SIMDE_ARCH_CONVEX 2
134
+ #elif defined(__convex__)
135
+ # define SIMDE_ARCH_CONVEX 1
136
+ #endif
137
+
138
+ /* Adapteva Epiphany
139
+ <https://en.wikipedia.org/wiki/Adapteva_Epiphany> */
140
+ #if defined(__epiphany__)
141
+ # define SIMDE_ARCH_EPIPHANY 1
142
+ #endif
143
+
144
+ /* Fujitsu FR-V
145
+ <https://en.wikipedia.org/wiki/FR-V_(microprocessor)> */
146
+ #if defined(__frv__)
147
+ # define SIMDE_ARCH_FRV 1
148
+ #endif
149
+
150
+ /* H8/300
151
+ <https://en.wikipedia.org/wiki/H8_Family> */
152
+ #if defined(__H8300__)
153
+ # define SIMDE_ARCH_H8300
154
+ #endif
155
+
156
+ /* HP/PA / PA-RISC
157
+ <https://en.wikipedia.org/wiki/PA-RISC> */
158
+ #if defined(__PA8000__) || defined(__HPPA20__) || defined(__RISC2_0__) || defined(_PA_RISC2_0)
159
+ # define SIMDE_ARCH_HPPA 20
160
+ #elif defined(__PA7100__) || defined(__HPPA11__) || defined(_PA_RISC1_1)
161
+ # define SIMDE_ARCH_HPPA 11
162
+ #elif defined(_PA_RISC1_0)
163
+ # define SIMDE_ARCH_HPPA 10
164
+ #elif defined(__hppa__) || defined(__HPPA__) || defined(__hppa)
165
+ # define SIMDE_ARCH_HPPA 1
166
+ #endif
167
+
168
+ /* x86
169
+ <https://en.wikipedia.org/wiki/X86> */
170
+ #if defined(_M_IX86)
171
+ # define SIMDE_ARCH_X86 (_M_IX86 / 100)
172
+ #elif defined(__I86__)
173
+ # define SIMDE_ARCH_X86 __I86__
174
+ #elif defined(i686) || defined(__i686) || defined(__i686__)
175
+ # define SIMDE_ARCH_X86 6
176
+ #elif defined(i586) || defined(__i586) || defined(__i586__)
177
+ # define SIMDE_ARCH_X86 5
178
+ #elif defined(i486) || defined(__i486) || defined(__i486__)
179
+ # define SIMDE_ARCH_X86 4
180
+ #elif defined(i386) || defined(__i386) || defined(__i386__)
181
+ # define SIMDE_ARCH_X86 3
182
+ #elif defined(_X86_) || defined(__X86__) || defined(__THW_INTEL__)
183
+ # define SIMDE_ARCH_X86 3
184
+ #endif
185
+
186
+ /* SIMD ISA extensions for x86/x86_64 */
187
+ #if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)
188
+ # if defined(_M_IX86_FP)
189
+ # define SIMDE_ARCH_X86_MMX
190
+ # if (_M_IX86_FP >= 1)
191
+ # define SIMDE_ARCH_X86_SSE 1
192
+ # endif
193
+ # if (_M_IX86_FP >= 2)
194
+ # define SIMDE_ARCH_X86_SSE2 1
195
+ # endif
196
+ # elif defined(_M_X64)
197
+ # define SIMDE_ARCH_X86_SSE 1
198
+ # define SIMDE_ARCH_X86_SSE2 1
199
+ # else
200
+ # if defined(__MMX__)
201
+ # define SIMDE_ARCH_X86_MMX 1
202
+ # endif
203
+ # if defined(__SSE__)
204
+ # define SIMDE_ARCH_X86_SSE 1
205
+ # endif
206
+ # if defined(__SSE2__)
207
+ # define SIMDE_ARCH_X86_SSE2 1
208
+ # endif
209
+ # endif
210
+ # if defined(__SSE3__)
211
+ # define SIMDE_ARCH_X86_SSE3 1
212
+ # endif
213
+ # if defined(__SSSE3__)
214
+ # define SIMDE_ARCH_X86_SSSE3 1
215
+ # endif
216
+ # if defined(__SSE4_1__)
217
+ # define SIMDE_ARCH_X86_SSE4_1 1
218
+ # endif
219
+ # if defined(__SSE4_2__)
220
+ # define SIMDE_ARCH_X86_SSE4_2 1
221
+ # endif
222
+ # if defined(__AVX__)
223
+ # define SIMDE_ARCH_X86_AVX 1
224
+ # if !defined(SIMDE_ARCH_X86_SSE3)
225
+ # define SIMDE_ARCH_X86_SSE3 1
226
+ # endif
227
+ # if !defined(SIMDE_ARCH_X86_SSE4_1)
228
+ # define SIMDE_ARCH_X86_SSE4_1 1
229
+ # endif
230
+ # if !defined(SIMDE_ARCH_X86_SSE4_1)
231
+ # define SIMDE_ARCH_X86_SSE4_2 1
232
+ # endif
233
+ # endif
234
+ # if defined(__AVX2__)
235
+ # define SIMDE_ARCH_X86_AVX2 1
236
+ # endif
237
+ # if defined(__FMA__)
238
+ # define SIMDE_ARCH_X86_FMA 1
239
+ # if !defined(SIMDE_ARCH_X86_AVX)
240
+ # define SIMDE_ARCH_X86_AVX 1
241
+ # endif
242
+ # endif
243
+ # if defined(__AVX512BW__)
244
+ # define SIMDE_ARCH_X86_AVX512BW 1
245
+ # endif
246
+ # if defined(__AVX512CD__)
247
+ # define SIMDE_ARCH_X86_AVX512CD 1
248
+ # endif
249
+ # if defined(__AVX512DQ__)
250
+ # define SIMDE_ARCH_X86_AVX512DQ 1
251
+ # endif
252
+ # if defined(__AVX512F__)
253
+ # define SIMDE_ARCH_X86_AVX512F 1
254
+ # endif
255
+ # if defined(__AVX512VL__)
256
+ # define SIMDE_ARCH_X86_AVX512VL 1
257
+ # endif
258
+ #endif
259
+
260
+ /* Itanium
261
+ <https://en.wikipedia.org/wiki/Itanium> */
262
+ #if defined(__ia64__) || defined(_IA64) || defined(__IA64__) || defined(__ia64) || defined(_M_IA64) || defined(__itanium__)
263
+ # define SIMDE_ARCH_IA64 1
264
+ #endif
265
+
266
+ /* Renesas M32R
267
+ <https://en.wikipedia.org/wiki/M32R> */
268
+ #if defined(__m32r__) || defined(__M32R__)
269
+ # define SIMDE_ARCH_M32R
270
+ #endif
271
+
272
+ /* Motorola 68000
273
+ <https://en.wikipedia.org/wiki/Motorola_68000> */
274
+ #if defined(__mc68060__) || defined(__MC68060__)
275
+ # define SIMDE_ARCH_M68K 68060
276
+ #elif defined(__mc68040__) || defined(__MC68040__)
277
+ # define SIMDE_ARCH_M68K 68040
278
+ #elif defined(__mc68030__) || defined(__MC68030__)
279
+ # define SIMDE_ARCH_M68K 68030
280
+ #elif defined(__mc68020__) || defined(__MC68020__)
281
+ # define SIMDE_ARCH_M68K 68020
282
+ #elif defined(__mc68010__) || defined(__MC68010__)
283
+ # define SIMDE_ARCH_M68K 68010
284
+ #elif defined(__mc68000__) || defined(__MC68000__)
285
+ # define SIMDE_ARCH_M68K 68000
286
+ #endif
287
+
288
+ /* Xilinx MicroBlaze
289
+ <https://en.wikipedia.org/wiki/MicroBlaze> */
290
+ #if defined(__MICROBLAZE__) || defined(__microblaze__)
291
+ # define SIMDE_ARCH_MICROBLAZE
292
+ #endif
293
+
294
+ /* MIPS
295
+ <https://en.wikipedia.org/wiki/MIPS_architecture> */
296
+ #if defined(_MIPS_ISA_MIPS64R2)
297
+ # define SIMDE_ARCH_MIPS 642
298
+ #elif defined(_MIPS_ISA_MIPS64)
299
+ # define SIMDE_ARCH_MIPS 640
300
+ #elif defined(_MIPS_ISA_MIPS32R2)
301
+ # define SIMDE_ARCH_MIPS 322
302
+ #elif defined(_MIPS_ISA_MIPS32)
303
+ # define SIMDE_ARCH_MIPS 320
304
+ #elif defined(_MIPS_ISA_MIPS4)
305
+ # define SIMDE_ARCH_MIPS 4
306
+ #elif defined(_MIPS_ISA_MIPS3)
307
+ # define SIMDE_ARCH_MIPS 3
308
+ #elif defined(_MIPS_ISA_MIPS2)
309
+ # define SIMDE_ARCH_MIPS 2
310
+ #elif defined(_MIPS_ISA_MIPS1)
311
+ # define SIMDE_ARCH_MIPS 1
312
+ #elif defined(_MIPS_ISA_MIPS) || defined(__mips) || defined(__MIPS__)
313
+ # define SIMDE_ARCH_MIPS 1
314
+ #endif
315
+
316
+ /* Matsushita MN10300
317
+ <https://en.wikipedia.org/wiki/MN103> */
318
+ #if defined(__MN10300__) || defined(__mn10300__)
319
+ # define SIMDE_ARCH_MN10300 1
320
+ #endif
321
+
322
+ /* POWER
323
+ <https://en.wikipedia.org/wiki/IBM_POWER_Instruction_Set_Architecture> */
324
+ #if defined(_M_PPC)
325
+ # define SIMDE_ARCH_POWER _M_PPC
326
+ #elif defined(_ARCH_PWR9)
327
+ # define SIMDE_ARCH_POWER 900
328
+ #elif defined(_ARCH_PWR8)
329
+ # define SIMDE_ARCH_POWER 800
330
+ #elif defined(_ARCH_PWR7)
331
+ # define SIMDE_ARCH_POWER 700
332
+ #elif defined(_ARCH_PWR6)
333
+ # define SIMDE_ARCH_POWER 600
334
+ #elif defined(_ARCH_PWR5)
335
+ # define SIMDE_ARCH_POWER 500
336
+ #elif defined(_ARCH_PWR4)
337
+ # define SIMDE_ARCH_POWER 400
338
+ #elif defined(_ARCH_440) || defined(__ppc440__)
339
+ # define SIMDE_ARCH_POWER 440
340
+ #elif defined(_ARCH_450) || defined(__ppc450__)
341
+ # define SIMDE_ARCH_POWER 450
342
+ #elif defined(_ARCH_601) || defined(__ppc601__)
343
+ # define SIMDE_ARCH_POWER 601
344
+ #elif defined(_ARCH_603) || defined(__ppc603__)
345
+ # define SIMDE_ARCH_POWER 603
346
+ #elif defined(_ARCH_604) || defined(__ppc604__)
347
+ # define SIMDE_ARCH_POWER 604
348
+ #elif defined(_ARCH_605) || defined(__ppc605__)
349
+ # define SIMDE_ARCH_POWER 605
350
+ #elif defined(_ARCH_620) || defined(__ppc620__)
351
+ # define SIMDE_ARCH_POWER 620
352
+ #elif defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC) || defined(__ppc)
353
+ # define SIMDE_ARCH_POWER 1
354
+ #endif
355
+
356
+ #if defined(__ALTIVEC__)
357
+ # define SIMDE_ARCH_POWER_ALTIVEC SIMDE_ARCH_POWER
358
+ #endif
359
+
360
+ /* SPARC
361
+ <https://en.wikipedia.org/wiki/SPARC> */
362
+ #if defined(__sparc_v9__) || defined(__sparcv9)
363
+ # define SIMDE_ARCH_SPARC 9
364
+ #elif defined(__sparc_v8__) || defined(__sparcv8)
365
+ # define SIMDE_ARCH_SPARC 8
366
+ #elif defined(__sparc_v7__) || defined(__sparcv7)
367
+ # define SIMDE_ARCH_SPARC 7
368
+ #elif defined(__sparc_v6__) || defined(__sparcv6)
369
+ # define SIMDE_ARCH_SPARC 6
370
+ #elif defined(__sparc_v5__) || defined(__sparcv5)
371
+ # define SIMDE_ARCH_SPARC 5
372
+ #elif defined(__sparc_v4__) || defined(__sparcv4)
373
+ # define SIMDE_ARCH_SPARC 4
374
+ #elif defined(__sparc_v3__) || defined(__sparcv3)
375
+ # define SIMDE_ARCH_SPARC 3
376
+ #elif defined(__sparc_v2__) || defined(__sparcv2)
377
+ # define SIMDE_ARCH_SPARC 2
378
+ #elif defined(__sparc_v1__) || defined(__sparcv1)
379
+ # define SIMDE_ARCH_SPARC 1
380
+ #elif defined(__sparc__) || defined(__sparc)
381
+ # define SIMDE_ARCH_SPARC 1
382
+ #endif
383
+
384
+ /* SuperH
385
+ <https://en.wikipedia.org/wiki/SuperH> */
386
+ #if defined(__sh5__) || defined(__SH5__)
387
+ # define SIMDE_ARCH_SUPERH 5
388
+ #elif defined(__sh4__) || defined(__SH4__)
389
+ # define SIMDE_ARCH_SUPERH 4
390
+ #elif defined(__sh3__) || defined(__SH3__)
391
+ # define SIMDE_ARCH_SUPERH 3
392
+ #elif defined(__sh2__) || defined(__SH2__)
393
+ # define SIMDE_ARCH_SUPERH 2
394
+ #elif defined(__sh1__) || defined(__SH1__)
395
+ # define SIMDE_ARCH_SUPERH 1
396
+ #elif defined(__sh__) || defined(__SH__)
397
+ # define SIMDE_ARCH_SUPERH 1
398
+ #endif
399
+
400
+ /* IBM System z
401
+ <https://en.wikipedia.org/wiki/IBM_System_z> */
402
+ #if defined(__370__) || defined(__THW_370__) || defined(__s390__) || defined(__s390x__) || defined(__zarch__) || defined(__SYSC_ZARCH__)
403
+ # define SIMDE_ARCH_SYSTEMZ
404
+ #endif
405
+
406
+ /* TMS320 DSP
407
+ <https://en.wikipedia.org/wiki/Texas_Instruments_TMS320> */
408
+ #if defined(_TMS320C6740) || defined(__TMS320C6740__)
409
+ # define SIMDE_ARCH_TMS320 6740
410
+ #elif defined(_TMS320C6700_PLUS) || defined(__TMS320C6700_PLUS__)
411
+ # define SIMDE_ARCH_TMS320 6701
412
+ #elif defined(_TMS320C6700) || defined(__TMS320C6700__)
413
+ # define SIMDE_ARCH_TMS320 6700
414
+ #elif defined(_TMS320C6600) || defined(__TMS320C6600__)
415
+ # define SIMDE_ARCH_TMS320 6600
416
+ #elif defined(_TMS320C6400_PLUS) || defined(__TMS320C6400_PLUS__)
417
+ # define SIMDE_ARCH_TMS320 6401
418
+ #elif defined(_TMS320C6400) || defined(__TMS320C6400__)
419
+ # define SIMDE_ARCH_TMS320 6400
420
+ #elif defined(_TMS320C6200) || defined(__TMS320C6200__)
421
+ # define SIMDE_ARCH_TMS320 6200
422
+ #elif defined(_TMS320C55X) || defined(__TMS320C55X__)
423
+ # define SIMDE_ARCH_TMS320 550
424
+ #elif defined(_TMS320C54X) || defined(__TMS320C54X__)
425
+ # define SIMDE_ARCH_TMS320 540
426
+ #elif defined(_TMS320C28X) || defined(__TMS320C28X__)
427
+ # define SIMDE_ARCH_TMS320 280
428
+ #endif
429
+
430
+ /* WebAssembly */
431
+ #if defined(__wasm__)
432
+ # define SIMDE_ARCH_WASM 1
433
+ #endif
434
+
435
+ #if defined(SIMDE_ARCH_WASM) && defined(__wasm_simd128__)
436
+ # define SIMDE_ARCH_WASM_SIMD128
437
+ #endif
438
+
439
+ /* Xtensa
440
+ <https://en.wikipedia.org/wiki/> */
441
+ #if defined(__xtensa__) || defined(__XTENSA__)
442
+ # define SIMDE_ARCH_XTENSA 1
443
+ #endif
444
+
445
+ #endif /* !defined(SIMDE_ARCH_H) */