Coverage Report

Created: 2024-08-21 06:24

/src/capstonenext/cs_simple_types.h
Line
Count
Source (jump to first uncovered line)
1
/* Capstone Disassembly Engine, https://www.capstone-engine.org */
2
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2019 */
3
/* By Rot127 <unisono@quyllur.org>, 2023 */
4
5
/* This header file mirrors LLVMs MachineValueTypes.h. */
6
7
#ifndef CS_SIMPLE_TYPES_H
8
#define CS_SIMPLE_TYPES_H
9
10
#include <assert.h>
11
#include <stdbool.h>
12
13
typedef enum {
14
15
  // Simple value types that aren't explicitly part of this enumeration
16
  // are considered extended value types.
17
  CS_DATA_TYPE_INVALID_SIMPLE_VALUE_TYPE = 0,
18
19
  // If you change this numbering, you must change the values in
20
  // ValueTypes.td as well!
21
  CS_DATA_TYPE_Other = 1, // This is a non-standard value
22
  CS_DATA_TYPE_i1 = 2,  // This is a 1 bit integer value
23
  CS_DATA_TYPE_i2 = 3,  // This is a 2 bit integer value
24
  CS_DATA_TYPE_i4 = 4,  // This is a 4 bit integer value
25
  CS_DATA_TYPE_i8 = 5,  // This is an 8 bit integer value
26
  CS_DATA_TYPE_i16 = 6, // This is a 16 bit integer value
27
  CS_DATA_TYPE_i32 = 7, // This is a 32 bit integer value
28
  CS_DATA_TYPE_i64 = 8, // This is a 64 bit integer value
29
  CS_DATA_TYPE_i128 = 9,  // This is a 128 bit integer value
30
31
  CS_DATA_TYPE_FIRST_INTEGER_VALUETYPE = CS_DATA_TYPE_i1,
32
  CS_DATA_TYPE_LAST_INTEGER_VALUETYPE = CS_DATA_TYPE_i128,
33
34
  CS_DATA_TYPE_bf16 = 10, // This is a 16 bit brain floating point value
35
  CS_DATA_TYPE_f16 = 11,  // This is a 16 bit floating point value
36
  CS_DATA_TYPE_f32 = 12,  // This is a 32 bit floating point value
37
  CS_DATA_TYPE_f64 = 13,  // This is a 64 bit floating point value
38
  CS_DATA_TYPE_f80 = 14,  // This is a 80 bit floating point value
39
  CS_DATA_TYPE_f128 = 15, // This is a 128 bit floating point value
40
  CS_DATA_TYPE_ppcf128 = 16, // This is a PPC 128-bit floating point value
41
42
  CS_DATA_TYPE_FIRST_FP_VALUETYPE = CS_DATA_TYPE_bf16,
43
  CS_DATA_TYPE_LAST_FP_VALUETYPE = CS_DATA_TYPE_ppcf128,
44
45
  CS_DATA_TYPE_v1i1 = 17,     //    1 x i1
46
  CS_DATA_TYPE_v2i1 = 18,     //    2 x i1
47
  CS_DATA_TYPE_v4i1 = 19,     //    4 x i1
48
  CS_DATA_TYPE_v8i1 = 20,     //    8 x i1
49
  CS_DATA_TYPE_v16i1 = 21,    //   16 x i1
50
  CS_DATA_TYPE_v32i1 = 22,    //   32 x i1
51
  CS_DATA_TYPE_v64i1 = 23,    //   64 x i1
52
  CS_DATA_TYPE_v128i1 = 24,   //  128 x i1
53
  CS_DATA_TYPE_v256i1 = 25,   //  256 x i1
54
  CS_DATA_TYPE_v512i1 = 26,   //  512 x i1
55
  CS_DATA_TYPE_v1024i1 = 27,  // 1024 x i1
56
  CS_DATA_TYPE_v2048i1 = 28,  // 2048 x i1
57
58
  CS_DATA_TYPE_v128i2 = 29,   //  128 x i2
59
  CS_DATA_TYPE_v256i2 = 30,   //  256 x i2
60
61
  CS_DATA_TYPE_v64i4 = 31,    //   64 x i4
62
  CS_DATA_TYPE_v128i4 = 32,   //  128 x i4
63
64
  CS_DATA_TYPE_v1i8 = 33,     //    1 x i8
65
  CS_DATA_TYPE_v2i8 = 34,     //    2 x i8
66
  CS_DATA_TYPE_v4i8 = 35,     //    4 x i8
67
  CS_DATA_TYPE_v8i8 = 36,     //    8 x i8
68
  CS_DATA_TYPE_v16i8 = 37,    //   16 x i8
69
  CS_DATA_TYPE_v32i8 = 38,    //   32 x i8
70
  CS_DATA_TYPE_v64i8 = 39,    //   64 x i8
71
  CS_DATA_TYPE_v128i8 = 40,   //  128 x i8
72
  CS_DATA_TYPE_v256i8 = 41,   //  256 x i8
73
  CS_DATA_TYPE_v512i8 = 42,   //  512 x i8
74
  CS_DATA_TYPE_v1024i8 = 43,  // 1024 x i8
75
76
  CS_DATA_TYPE_v1i16 = 44,    //   1 x i16
77
  CS_DATA_TYPE_v2i16 = 45,    //   2 x i16
78
  CS_DATA_TYPE_v3i16 = 46,    //   3 x i16
79
  CS_DATA_TYPE_v4i16 = 47,    //   4 x i16
80
  CS_DATA_TYPE_v8i16 = 48,    //   8 x i16
81
  CS_DATA_TYPE_v16i16 = 49,   //  16 x i16
82
  CS_DATA_TYPE_v32i16 = 50,   //  32 x i16
83
  CS_DATA_TYPE_v64i16 = 51,   //  64 x i16
84
  CS_DATA_TYPE_v128i16 = 52,  // 128 x i16
85
  CS_DATA_TYPE_v256i16 = 53,  // 256 x i16
86
  CS_DATA_TYPE_v512i16 = 54,  // 512 x i16
87
88
  CS_DATA_TYPE_v1i32 = 55,    //    1 x i32
89
  CS_DATA_TYPE_v2i32 = 56,    //    2 x i32
90
  CS_DATA_TYPE_v3i32 = 57,    //    3 x i32
91
  CS_DATA_TYPE_v4i32 = 58,    //    4 x i32
92
  CS_DATA_TYPE_v5i32 = 59,    //    5 x i32
93
  CS_DATA_TYPE_v6i32 = 60,    //    6 x i32
94
  CS_DATA_TYPE_v7i32 = 61,    //    7 x i32
95
  CS_DATA_TYPE_v8i32 = 62,    //    8 x i32
96
  CS_DATA_TYPE_v9i32 = 63,    //    9 x i32
97
  CS_DATA_TYPE_v10i32 = 64,   //   10 x i32
98
  CS_DATA_TYPE_v11i32 = 65,   //   11 x i32
99
  CS_DATA_TYPE_v12i32 = 66,   //   12 x i32
100
  CS_DATA_TYPE_v16i32 = 67,   //   16 x i32
101
  CS_DATA_TYPE_v32i32 = 68,   //   32 x i32
102
  CS_DATA_TYPE_v64i32 = 69,   //   64 x i32
103
  CS_DATA_TYPE_v128i32 = 70,  //  128 x i32
104
  CS_DATA_TYPE_v256i32 = 71,  //  256 x i32
105
  CS_DATA_TYPE_v512i32 = 72,  //  512 x i32
106
  CS_DATA_TYPE_v1024i32 = 73, // 1024 x i32
107
  CS_DATA_TYPE_v2048i32 = 74, // 2048 x i32
108
109
  CS_DATA_TYPE_v1i64 = 75,    //   1 x i64
110
  CS_DATA_TYPE_v2i64 = 76,    //   2 x i64
111
  CS_DATA_TYPE_v3i64 = 77,    //   3 x i64
112
  CS_DATA_TYPE_v4i64 = 78,    //   4 x i64
113
  CS_DATA_TYPE_v8i64 = 79,    //   8 x i64
114
  CS_DATA_TYPE_v16i64 = 80,   //  16 x i64
115
  CS_DATA_TYPE_v32i64 = 81,   //  32 x i64
116
  CS_DATA_TYPE_v64i64 = 82,   //  64 x i64
117
  CS_DATA_TYPE_v128i64 = 83,  // 128 x i64
118
  CS_DATA_TYPE_v256i64 = 84,  // 256 x i64
119
120
  CS_DATA_TYPE_v1i128 = 85,   //  1 x i128
121
122
  CS_DATA_TYPE_FIRST_INTEGER_FIXEDLEN_VECTOR_VALUETYPE =
123
    CS_DATA_TYPE_v1i1,
124
  CS_DATA_TYPE_LAST_INTEGER_FIXEDLEN_VECTOR_VALUETYPE =
125
    CS_DATA_TYPE_v1i128,
126
127
  CS_DATA_TYPE_v1f16 = 86,     //    1 x f16
128
  CS_DATA_TYPE_v2f16 = 87,     //    2 x f16
129
  CS_DATA_TYPE_v3f16 = 88,     //    3 x f16
130
  CS_DATA_TYPE_v4f16 = 89,     //    4 x f16
131
  CS_DATA_TYPE_v8f16 = 90,     //    8 x f16
132
  CS_DATA_TYPE_v16f16 = 91,    //   16 x f16
133
  CS_DATA_TYPE_v32f16 = 92,    //   32 x f16
134
  CS_DATA_TYPE_v64f16 = 93,    //   64 x f16
135
  CS_DATA_TYPE_v128f16 = 94,   //  128 x f16
136
  CS_DATA_TYPE_v256f16 = 95,   //  256 x f16
137
  CS_DATA_TYPE_v512f16 = 96,   //  512 x f16
138
139
  CS_DATA_TYPE_v2bf16 = 97,    //    2 x bf16
140
  CS_DATA_TYPE_v3bf16 = 98,    //    3 x bf16
141
  CS_DATA_TYPE_v4bf16 = 99,    //    4 x bf16
142
  CS_DATA_TYPE_v8bf16 = 100,   //    8 x bf16
143
  CS_DATA_TYPE_v16bf16 = 101,  //   16 x bf16
144
  CS_DATA_TYPE_v32bf16 = 102,  //   32 x bf16
145
  CS_DATA_TYPE_v64bf16 = 103,  //   64 x bf16
146
  CS_DATA_TYPE_v128bf16 = 104, //  128 x bf16
147
148
  CS_DATA_TYPE_v1f32 = 105,    //    1 x f32
149
  CS_DATA_TYPE_v2f32 = 106,    //    2 x f32
150
  CS_DATA_TYPE_v3f32 = 107,    //    3 x f32
151
  CS_DATA_TYPE_v4f32 = 108,    //    4 x f32
152
  CS_DATA_TYPE_v5f32 = 109,    //    5 x f32
153
  CS_DATA_TYPE_v6f32 = 110,    //    6 x f32
154
  CS_DATA_TYPE_v7f32 = 111,    //    7 x f32
155
  CS_DATA_TYPE_v8f32 = 112,    //    8 x f32
156
  CS_DATA_TYPE_v9f32 = 113,    //    9 x f32
157
  CS_DATA_TYPE_v10f32 = 114,   //   10 x f32
158
  CS_DATA_TYPE_v11f32 = 115,   //   11 x f32
159
  CS_DATA_TYPE_v12f32 = 116,   //   12 x f32
160
  CS_DATA_TYPE_v16f32 = 117,   //   16 x f32
161
162
  CS_DATA_TYPE_v32f32 = 118,   //   32 x f32
163
  CS_DATA_TYPE_v64f32 = 119,   //   64 x f32
164
  CS_DATA_TYPE_v128f32 = 120,  //  128 x f32
165
  CS_DATA_TYPE_v256f32 = 121,  //  256 x f32
166
  CS_DATA_TYPE_v512f32 = 122,  //  512 x f32
167
  CS_DATA_TYPE_v1024f32 = 123, // 1024 x f32
168
  CS_DATA_TYPE_v2048f32 = 124, // 2048 x f32
169
170
  CS_DATA_TYPE_v1f64 = 125,    //    1 x f64
171
  CS_DATA_TYPE_v2f64 = 126,    //    2 x f64
172
  CS_DATA_TYPE_v3f64 = 127,    //    3 x f64
173
  CS_DATA_TYPE_v4f64 = 128,    //    4 x f64
174
  CS_DATA_TYPE_v8f64 = 129,    //    8 x f64
175
  CS_DATA_TYPE_v16f64 = 130,   //   16 x f64
176
  CS_DATA_TYPE_v32f64 = 131,   //   32 x f64
177
  CS_DATA_TYPE_v64f64 = 132,   //   64 x f64
178
  CS_DATA_TYPE_v128f64 = 133,  //  128 x f64
179
  CS_DATA_TYPE_v256f64 = 134,  //  256 x f64
180
181
  CS_DATA_TYPE_FIRST_FP_FIXEDLEN_VECTOR_VALUETYPE = CS_DATA_TYPE_v1f16,
182
  CS_DATA_TYPE_LAST_FP_FIXEDLEN_VECTOR_VALUETYPE = CS_DATA_TYPE_v256f64,
183
184
  CS_DATA_TYPE_FIRST_FIXEDLEN_VECTOR_VALUETYPE = CS_DATA_TYPE_v1i1,
185
  CS_DATA_TYPE_LAST_FIXEDLEN_VECTOR_VALUETYPE = CS_DATA_TYPE_v256f64,
186
187
  CS_DATA_TYPE_nxv1i1 = 135,   // n x  1 x i1
188
  CS_DATA_TYPE_nxv2i1 = 136,   // n x  2 x i1
189
  CS_DATA_TYPE_nxv4i1 = 137,   // n x  4 x i1
190
  CS_DATA_TYPE_nxv8i1 = 138,   // n x  8 x i1
191
  CS_DATA_TYPE_nxv16i1 = 139,  // n x 16 x i1
192
  CS_DATA_TYPE_nxv32i1 = 140,  // n x 32 x i1
193
  CS_DATA_TYPE_nxv64i1 = 141,  // n x 64 x i1
194
195
  CS_DATA_TYPE_nxv1i8 = 142,   // n x  1 x i8
196
  CS_DATA_TYPE_nxv2i8 = 143,   // n x  2 x i8
197
  CS_DATA_TYPE_nxv4i8 = 144,   // n x  4 x i8
198
  CS_DATA_TYPE_nxv8i8 = 145,   // n x  8 x i8
199
  CS_DATA_TYPE_nxv16i8 = 146,  // n x 16 x i8
200
  CS_DATA_TYPE_nxv32i8 = 147,  // n x 32 x i8
201
  CS_DATA_TYPE_nxv64i8 = 148,  // n x 64 x i8
202
203
  CS_DATA_TYPE_nxv1i16 = 149,  // n x  1 x i16
204
  CS_DATA_TYPE_nxv2i16 = 150,  // n x  2 x i16
205
  CS_DATA_TYPE_nxv4i16 = 151,  // n x  4 x i16
206
  CS_DATA_TYPE_nxv8i16 = 152,  // n x  8 x i16
207
  CS_DATA_TYPE_nxv16i16 = 153, // n x 16 x i16
208
  CS_DATA_TYPE_nxv32i16 = 154, // n x 32 x i16
209
210
  CS_DATA_TYPE_nxv1i32 = 155,  // n x  1 x i32
211
  CS_DATA_TYPE_nxv2i32 = 156,  // n x  2 x i32
212
  CS_DATA_TYPE_nxv4i32 = 157,  // n x  4 x i32
213
  CS_DATA_TYPE_nxv8i32 = 158,  // n x  8 x i32
214
  CS_DATA_TYPE_nxv16i32 = 159, // n x 16 x i32
215
  CS_DATA_TYPE_nxv32i32 = 160, // n x 32 x i32
216
217
  CS_DATA_TYPE_nxv1i64 = 161,  // n x  1 x i64
218
  CS_DATA_TYPE_nxv2i64 = 162,  // n x  2 x i64
219
  CS_DATA_TYPE_nxv4i64 = 163,  // n x  4 x i64
220
  CS_DATA_TYPE_nxv8i64 = 164,  // n x  8 x i64
221
  CS_DATA_TYPE_nxv16i64 = 165, // n x 16 x i64
222
  CS_DATA_TYPE_nxv32i64 = 166, // n x 32 x i64
223
224
  CS_DATA_TYPE_FIRST_INTEGER_SCALABLE_VECTOR_VALUETYPE =
225
    CS_DATA_TYPE_nxv1i1,
226
  CS_DATA_TYPE_LAST_INTEGER_SCALABLE_VECTOR_VALUETYPE =
227
    CS_DATA_TYPE_nxv32i64,
228
229
  CS_DATA_TYPE_nxv1f16 = 167,   // n x  1 x f16
230
  CS_DATA_TYPE_nxv2f16 = 168,   // n x  2 x f16
231
  CS_DATA_TYPE_nxv4f16 = 169,   // n x  4 x f16
232
  CS_DATA_TYPE_nxv8f16 = 170,   // n x  8 x f16
233
  CS_DATA_TYPE_nxv16f16 = 171,  // n x 16 x f16
234
  CS_DATA_TYPE_nxv32f16 = 172,  // n x 32 x f16
235
236
  CS_DATA_TYPE_nxv1bf16 = 173,  // n x  1 x bf16
237
  CS_DATA_TYPE_nxv2bf16 = 174,  // n x  2 x bf16
238
  CS_DATA_TYPE_nxv4bf16 = 175,  // n x  4 x bf16
239
  CS_DATA_TYPE_nxv8bf16 = 176,  // n x  8 x bf16
240
  CS_DATA_TYPE_nxv16bf16 = 177, // n x 16 x bf16
241
  CS_DATA_TYPE_nxv32bf16 = 178, // n x 32 x bf16
242
243
  CS_DATA_TYPE_nxv1f32 = 179,   // n x  1 x f32
244
  CS_DATA_TYPE_nxv2f32 = 180,   // n x  2 x f32
245
  CS_DATA_TYPE_nxv4f32 = 181,   // n x  4 x f32
246
  CS_DATA_TYPE_nxv8f32 = 182,   // n x  8 x f32
247
  CS_DATA_TYPE_nxv16f32 = 183,  // n x 16 x f32
248
249
  CS_DATA_TYPE_nxv1f64 = 184,   // n x  1 x f64
250
  CS_DATA_TYPE_nxv2f64 = 185,   // n x  2 x f64
251
  CS_DATA_TYPE_nxv4f64 = 186,   // n x  4 x f64
252
  CS_DATA_TYPE_nxv8f64 = 187,   // n x  8 x f64
253
254
  CS_DATA_TYPE_FIRST_FP_SCALABLE_VECTOR_VALUETYPE = CS_DATA_TYPE_nxv1f16,
255
  CS_DATA_TYPE_LAST_FP_SCALABLE_VECTOR_VALUETYPE = CS_DATA_TYPE_nxv8f64,
256
257
  CS_DATA_TYPE_FIRST_SCALABLE_VECTOR_VALUETYPE = CS_DATA_TYPE_nxv1i1,
258
  CS_DATA_TYPE_LAST_SCALABLE_VECTOR_VALUETYPE = CS_DATA_TYPE_nxv8f64,
259
260
  CS_DATA_TYPE_FIRST_VECTOR_VALUETYPE = CS_DATA_TYPE_v1i1,
261
  CS_DATA_TYPE_LAST_VECTOR_VALUETYPE = CS_DATA_TYPE_nxv8f64,
262
263
  CS_DATA_TYPE_x86mmx = 188, // This is an X86 MMX value
264
265
  CS_DATA_TYPE_Glue =
266
    189, // This glues nodes together during pre-RA sched
267
268
  CS_DATA_TYPE_isVoid = 190,  // This has no value
269
270
  CS_DATA_TYPE_Untyped = 191, // This value takes a register, but has
271
  // unspecified type.  The register class
272
  // will be determined by the opcode.
273
274
  CS_DATA_TYPE_funcref = 192,   // WebAssembly's funcref type
275
  CS_DATA_TYPE_externref = 193, // WebAssembly's externref type
276
  CS_DATA_TYPE_x86amx = 194,    // This is an X86 AMX value
277
  CS_DATA_TYPE_i64x8 = 195,     // 8 Consecutive GPRs (AArch64)
278
  CS_DATA_TYPE_aarch64svcount = 196,// AArch64, Value is of a scalable size
279
280
  CS_DATA_TYPE_FIRST_VALUETYPE =
281
    1,        // This is always the beginning of the list.
282
  CS_DATA_TYPE_LAST_VALUETYPE =
283
    CS_DATA_TYPE_i64x8, // This always remains at the end of the list.
284
  CS_DATA_TYPE_VALUETYPE_SIZE = CS_DATA_TYPE_LAST_VALUETYPE + 1,
285
286
  // This is the current maximum for LAST_VALUETYPE.
287
  // MVT::MAX_ALLOWED_VALUETYPE is used for asserts and to size bit vectors
288
  // This value must be a multiple of 32.
289
  CS_DATA_TYPE_MAX_ALLOWED_VALUETYPE = 224,
290
291
  // A value of type llvm::TokenTy
292
  CS_DATA_TYPE_token = 248,
293
294
  // This is MDNode or MDString.
295
  CS_DATA_TYPE_Metadata = 249,
296
297
  // An int value the size of the pointer of the current
298
  // target to any address space. This must only be used internal to
299
  // tblgen. Other than for overloading, we treat iPTRAny the same as iPTR.
300
  CS_DATA_TYPE_iPTRAny = 250,
301
302
  // A vector with any length and element size. This is used
303
  // for intrinsics that have overloadings based on vector types.
304
  // This is only for tblgen's consumption!
305
  CS_DATA_TYPE_vAny = 251,
306
307
  // Any floating-point or vector floating-point value. This is used
308
  // for intrinsics that have overloadings based on floating-point types.
309
  // This is only for tblgen's consumption!
310
  CS_DATA_TYPE_fAny = 252,
311
312
  // An integer or vector integer value of any bit width. This is
313
  // used for intrinsics that have overloadings based on integer bit widths.
314
  // This is only for tblgen's consumption!
315
  CS_DATA_TYPE_iAny = 253,
316
317
  // An int value the size of the pointer of the current
318
  // target.  This should only be used internal to tblgen!
319
  CS_DATA_TYPE_iPTR = 254,
320
321
  // Last element in enum.
322
  CS_DATA_TYPE_LAST = 255
323
} cs_data_type;
324
325
/// Return true if this is a valid simple valuetype.
326
static inline bool isValid(cs_data_type SimpleTy)
327
0
{
328
0
  return (SimpleTy >= CS_DATA_TYPE_FIRST_VALUETYPE &&
329
0
    SimpleTy <= CS_DATA_TYPE_LAST_VALUETYPE);
330
0
}
Unexecuted instantiation: ARMMapping.c:isValid
Unexecuted instantiation: AArch64Mapping.c:isValid
Unexecuted instantiation: PPCMapping.c:isValid
Unexecuted instantiation: RISCVMapping.c:isValid
Unexecuted instantiation: TriCoreMapping.c:isValid
Unexecuted instantiation: AlphaMapping.c:isValid
Unexecuted instantiation: LoongArchMapping.c:isValid
331
332
/// Return true if this is a FP or a vector FP type.
333
static inline bool isFloatingPoint(cs_data_type SimpleTy)
334
0
{
335
0
  return ((SimpleTy >= CS_DATA_TYPE_FIRST_FP_VALUETYPE &&
336
0
     SimpleTy <= CS_DATA_TYPE_LAST_FP_VALUETYPE) ||
337
0
    (SimpleTy >= CS_DATA_TYPE_FIRST_FP_FIXEDLEN_VECTOR_VALUETYPE &&
338
0
     SimpleTy <= CS_DATA_TYPE_LAST_FP_FIXEDLEN_VECTOR_VALUETYPE) ||
339
0
    (SimpleTy >= CS_DATA_TYPE_FIRST_FP_SCALABLE_VECTOR_VALUETYPE &&
340
0
     SimpleTy <= CS_DATA_TYPE_LAST_FP_SCALABLE_VECTOR_VALUETYPE));
341
0
}
Unexecuted instantiation: ARMMapping.c:isFloatingPoint
Unexecuted instantiation: AArch64Mapping.c:isFloatingPoint
Unexecuted instantiation: PPCMapping.c:isFloatingPoint
Unexecuted instantiation: RISCVMapping.c:isFloatingPoint
Unexecuted instantiation: TriCoreMapping.c:isFloatingPoint
Unexecuted instantiation: AlphaMapping.c:isFloatingPoint
Unexecuted instantiation: LoongArchMapping.c:isFloatingPoint
342
343
/// Return true if this is an integer or a vector integer type.
344
static inline bool isInteger(cs_data_type SimpleTy)
345
0
{
346
0
  return ((SimpleTy >= CS_DATA_TYPE_FIRST_INTEGER_VALUETYPE &&
347
0
     SimpleTy <= CS_DATA_TYPE_LAST_INTEGER_VALUETYPE) ||
348
0
    (SimpleTy >=
349
0
       CS_DATA_TYPE_FIRST_INTEGER_FIXEDLEN_VECTOR_VALUETYPE &&
350
0
     SimpleTy <=
351
0
       CS_DATA_TYPE_LAST_INTEGER_FIXEDLEN_VECTOR_VALUETYPE) ||
352
0
    (SimpleTy >=
353
0
       CS_DATA_TYPE_FIRST_INTEGER_SCALABLE_VECTOR_VALUETYPE &&
354
0
     SimpleTy <=
355
0
       CS_DATA_TYPE_LAST_INTEGER_SCALABLE_VECTOR_VALUETYPE));
356
0
}
Unexecuted instantiation: ARMMapping.c:isInteger
Unexecuted instantiation: AArch64Mapping.c:isInteger
Unexecuted instantiation: PPCMapping.c:isInteger
Unexecuted instantiation: RISCVMapping.c:isInteger
Unexecuted instantiation: TriCoreMapping.c:isInteger
Unexecuted instantiation: AlphaMapping.c:isInteger
Unexecuted instantiation: LoongArchMapping.c:isInteger
357
358
/// Return true if this is an integer, not including vectors.
359
static inline bool isScalarInteger(cs_data_type SimpleTy)
360
0
{
361
0
  return (SimpleTy >= CS_DATA_TYPE_FIRST_INTEGER_VALUETYPE &&
362
0
    SimpleTy <= CS_DATA_TYPE_LAST_INTEGER_VALUETYPE);
363
0
}
Unexecuted instantiation: ARMMapping.c:isScalarInteger
Unexecuted instantiation: AArch64Mapping.c:isScalarInteger
Unexecuted instantiation: PPCMapping.c:isScalarInteger
Unexecuted instantiation: RISCVMapping.c:isScalarInteger
Unexecuted instantiation: TriCoreMapping.c:isScalarInteger
Unexecuted instantiation: AlphaMapping.c:isScalarInteger
Unexecuted instantiation: LoongArchMapping.c:isScalarInteger
364
365
/// Return true if this is a vector value type.
366
static inline bool isVector(cs_data_type SimpleTy)
367
0
{
368
0
  return (SimpleTy >= CS_DATA_TYPE_FIRST_VECTOR_VALUETYPE &&
369
0
    SimpleTy <= CS_DATA_TYPE_LAST_VECTOR_VALUETYPE);
370
0
}
Unexecuted instantiation: ARMMapping.c:isVector
Unexecuted instantiation: AArch64Mapping.c:isVector
Unexecuted instantiation: PPCMapping.c:isVector
Unexecuted instantiation: RISCVMapping.c:isVector
Unexecuted instantiation: TriCoreMapping.c:isVector
Unexecuted instantiation: AlphaMapping.c:isVector
Unexecuted instantiation: LoongArchMapping.c:isVector
371
372
/// Return true if this is a vector value type where the
373
/// runtime length is machine dependent
374
static inline bool isScalableVector(cs_data_type SimpleTy)
375
0
{
376
0
  return (SimpleTy >= CS_DATA_TYPE_FIRST_SCALABLE_VECTOR_VALUETYPE &&
377
0
    SimpleTy <= CS_DATA_TYPE_LAST_SCALABLE_VECTOR_VALUETYPE);
378
0
}
Unexecuted instantiation: ARMMapping.c:isScalableVector
Unexecuted instantiation: AArch64Mapping.c:isScalableVector
Unexecuted instantiation: PPCMapping.c:isScalableVector
Unexecuted instantiation: RISCVMapping.c:isScalableVector
Unexecuted instantiation: TriCoreMapping.c:isScalableVector
Unexecuted instantiation: AlphaMapping.c:isScalableVector
Unexecuted instantiation: LoongArchMapping.c:isScalableVector
379
380
static inline bool isFixedLengthVector(cs_data_type SimpleTy)
381
0
{
382
0
  return (SimpleTy >= CS_DATA_TYPE_FIRST_FIXEDLEN_VECTOR_VALUETYPE &&
383
0
    SimpleTy <= CS_DATA_TYPE_LAST_FIXEDLEN_VECTOR_VALUETYPE);
384
0
}
Unexecuted instantiation: ARMMapping.c:isFixedLengthVector
Unexecuted instantiation: AArch64Mapping.c:isFixedLengthVector
Unexecuted instantiation: PPCMapping.c:isFixedLengthVector
Unexecuted instantiation: RISCVMapping.c:isFixedLengthVector
Unexecuted instantiation: TriCoreMapping.c:isFixedLengthVector
Unexecuted instantiation: AlphaMapping.c:isFixedLengthVector
Unexecuted instantiation: LoongArchMapping.c:isFixedLengthVector
385
386
/// Return true if this is a 16-bit vector type.
387
static inline bool is16BitVector(cs_data_type SimpleTy)
388
0
{
389
0
  return (SimpleTy == CS_DATA_TYPE_v2i8 ||
390
0
    SimpleTy == CS_DATA_TYPE_v1i16 ||
391
0
    SimpleTy == CS_DATA_TYPE_v16i1 ||
392
0
    SimpleTy == CS_DATA_TYPE_v1f16);
393
0
}
Unexecuted instantiation: ARMMapping.c:is16BitVector
Unexecuted instantiation: AArch64Mapping.c:is16BitVector
Unexecuted instantiation: PPCMapping.c:is16BitVector
Unexecuted instantiation: RISCVMapping.c:is16BitVector
Unexecuted instantiation: TriCoreMapping.c:is16BitVector
Unexecuted instantiation: AlphaMapping.c:is16BitVector
Unexecuted instantiation: LoongArchMapping.c:is16BitVector
394
395
/// Return true if this is a 32-bit vector type.
396
static inline bool is32BitVector(cs_data_type SimpleTy)
397
0
{
398
0
  return (SimpleTy == CS_DATA_TYPE_v32i1 ||
399
0
    SimpleTy == CS_DATA_TYPE_v4i8 ||
400
0
    SimpleTy == CS_DATA_TYPE_v2i16 ||
401
0
    SimpleTy == CS_DATA_TYPE_v1i32 ||
402
0
    SimpleTy == CS_DATA_TYPE_v2f16 ||
403
0
    SimpleTy == CS_DATA_TYPE_v2bf16 ||
404
0
    SimpleTy == CS_DATA_TYPE_v1f32);
405
0
}
Unexecuted instantiation: ARMMapping.c:is32BitVector
Unexecuted instantiation: AArch64Mapping.c:is32BitVector
Unexecuted instantiation: PPCMapping.c:is32BitVector
Unexecuted instantiation: RISCVMapping.c:is32BitVector
Unexecuted instantiation: TriCoreMapping.c:is32BitVector
Unexecuted instantiation: AlphaMapping.c:is32BitVector
Unexecuted instantiation: LoongArchMapping.c:is32BitVector
406
407
/// Return true if this is a 64-bit vector type.
408
static inline bool is64BitVector(cs_data_type SimpleTy)
409
0
{
410
0
  return (SimpleTy == CS_DATA_TYPE_v64i1 ||
411
0
    SimpleTy == CS_DATA_TYPE_v8i8 ||
412
0
    SimpleTy == CS_DATA_TYPE_v4i16 ||
413
0
    SimpleTy == CS_DATA_TYPE_v2i32 ||
414
0
    SimpleTy == CS_DATA_TYPE_v1i64 ||
415
0
    SimpleTy == CS_DATA_TYPE_v4f16 ||
416
0
    SimpleTy == CS_DATA_TYPE_v4bf16 ||
417
0
    SimpleTy == CS_DATA_TYPE_v2f32 ||
418
0
    SimpleTy == CS_DATA_TYPE_v1f64);
419
0
}
Unexecuted instantiation: ARMMapping.c:is64BitVector
Unexecuted instantiation: AArch64Mapping.c:is64BitVector
Unexecuted instantiation: PPCMapping.c:is64BitVector
Unexecuted instantiation: RISCVMapping.c:is64BitVector
Unexecuted instantiation: TriCoreMapping.c:is64BitVector
Unexecuted instantiation: AlphaMapping.c:is64BitVector
Unexecuted instantiation: LoongArchMapping.c:is64BitVector
420
421
/// Return true if this is a 128-bit vector type.
422
static inline bool is128BitVector(cs_data_type SimpleTy)
423
0
{
424
0
  return (SimpleTy == CS_DATA_TYPE_v128i1 ||
425
0
    SimpleTy == CS_DATA_TYPE_v16i8 ||
426
0
    SimpleTy == CS_DATA_TYPE_v8i16 ||
427
0
    SimpleTy == CS_DATA_TYPE_v4i32 ||
428
0
    SimpleTy == CS_DATA_TYPE_v2i64 ||
429
0
    SimpleTy == CS_DATA_TYPE_v1i128 ||
430
0
    SimpleTy == CS_DATA_TYPE_v8f16 ||
431
0
    SimpleTy == CS_DATA_TYPE_v8bf16 ||
432
0
    SimpleTy == CS_DATA_TYPE_v4f32 ||
433
0
    SimpleTy == CS_DATA_TYPE_v2f64);
434
0
}
Unexecuted instantiation: ARMMapping.c:is128BitVector
Unexecuted instantiation: AArch64Mapping.c:is128BitVector
Unexecuted instantiation: PPCMapping.c:is128BitVector
Unexecuted instantiation: RISCVMapping.c:is128BitVector
Unexecuted instantiation: TriCoreMapping.c:is128BitVector
Unexecuted instantiation: AlphaMapping.c:is128BitVector
Unexecuted instantiation: LoongArchMapping.c:is128BitVector
435
436
/// Return true if this is a 256-bit vector type.
437
static inline bool is256BitVector(cs_data_type SimpleTy)
438
0
{
439
0
  return (SimpleTy == CS_DATA_TYPE_v16f16 ||
440
0
    SimpleTy == CS_DATA_TYPE_v16bf16 ||
441
0
    SimpleTy == CS_DATA_TYPE_v8f32 ||
442
0
    SimpleTy == CS_DATA_TYPE_v4f64 ||
443
0
    SimpleTy == CS_DATA_TYPE_v32i8 ||
444
0
    SimpleTy == CS_DATA_TYPE_v16i16 ||
445
0
    SimpleTy == CS_DATA_TYPE_v8i32 ||
446
0
    SimpleTy == CS_DATA_TYPE_v4i64 ||
447
0
    SimpleTy == CS_DATA_TYPE_v256i1 ||
448
0
    SimpleTy == CS_DATA_TYPE_v128i2 ||
449
0
    SimpleTy == CS_DATA_TYPE_v64i4);
450
0
}
Unexecuted instantiation: ARMMapping.c:is256BitVector
Unexecuted instantiation: AArch64Mapping.c:is256BitVector
Unexecuted instantiation: PPCMapping.c:is256BitVector
Unexecuted instantiation: RISCVMapping.c:is256BitVector
Unexecuted instantiation: TriCoreMapping.c:is256BitVector
Unexecuted instantiation: AlphaMapping.c:is256BitVector
Unexecuted instantiation: LoongArchMapping.c:is256BitVector
451
452
/// Return true if this is a 512-bit vector type.
453
static inline bool is512BitVector(cs_data_type SimpleTy)
454
0
{
455
0
  return (SimpleTy == CS_DATA_TYPE_v32f16 ||
456
0
    SimpleTy == CS_DATA_TYPE_v32bf16 ||
457
0
    SimpleTy == CS_DATA_TYPE_v16f32 ||
458
0
    SimpleTy == CS_DATA_TYPE_v8f64 ||
459
0
    SimpleTy == CS_DATA_TYPE_v512i1 ||
460
0
    SimpleTy == CS_DATA_TYPE_v256i2 ||
461
0
    SimpleTy == CS_DATA_TYPE_v128i4 ||
462
0
    SimpleTy == CS_DATA_TYPE_v64i8 ||
463
0
    SimpleTy == CS_DATA_TYPE_v32i16 ||
464
0
    SimpleTy == CS_DATA_TYPE_v16i32 ||
465
0
    SimpleTy == CS_DATA_TYPE_v8i64);
466
0
}
Unexecuted instantiation: ARMMapping.c:is512BitVector
Unexecuted instantiation: AArch64Mapping.c:is512BitVector
Unexecuted instantiation: PPCMapping.c:is512BitVector
Unexecuted instantiation: RISCVMapping.c:is512BitVector
Unexecuted instantiation: TriCoreMapping.c:is512BitVector
Unexecuted instantiation: AlphaMapping.c:is512BitVector
Unexecuted instantiation: LoongArchMapping.c:is512BitVector
467
468
/// Return true if this is a 1024-bit vector type.
469
static inline bool is1024BitVector(cs_data_type SimpleTy)
470
0
{
471
0
  return (SimpleTy == CS_DATA_TYPE_v1024i1 ||
472
0
    SimpleTy == CS_DATA_TYPE_v128i8 ||
473
0
    SimpleTy == CS_DATA_TYPE_v64i16 ||
474
0
    SimpleTy == CS_DATA_TYPE_v32i32 ||
475
0
    SimpleTy == CS_DATA_TYPE_v16i64 ||
476
0
    SimpleTy == CS_DATA_TYPE_v64f16 ||
477
0
    SimpleTy == CS_DATA_TYPE_v32f32 ||
478
0
    SimpleTy == CS_DATA_TYPE_v16f64 ||
479
0
    SimpleTy == CS_DATA_TYPE_v64bf16);
480
0
}
Unexecuted instantiation: ARMMapping.c:is1024BitVector
Unexecuted instantiation: AArch64Mapping.c:is1024BitVector
Unexecuted instantiation: PPCMapping.c:is1024BitVector
Unexecuted instantiation: RISCVMapping.c:is1024BitVector
Unexecuted instantiation: TriCoreMapping.c:is1024BitVector
Unexecuted instantiation: AlphaMapping.c:is1024BitVector
Unexecuted instantiation: LoongArchMapping.c:is1024BitVector
481
482
/// Return true if this is a 2048-bit vector type.
483
static inline bool is2048BitVector(cs_data_type SimpleTy)
484
0
{
485
0
  return (SimpleTy == CS_DATA_TYPE_v256i8 ||
486
0
    SimpleTy == CS_DATA_TYPE_v128i16 ||
487
0
    SimpleTy == CS_DATA_TYPE_v64i32 ||
488
0
    SimpleTy == CS_DATA_TYPE_v32i64 ||
489
0
    SimpleTy == CS_DATA_TYPE_v128f16 ||
490
0
    SimpleTy == CS_DATA_TYPE_v64f32 ||
491
0
    SimpleTy == CS_DATA_TYPE_v32f64 ||
492
0
    SimpleTy == CS_DATA_TYPE_v128bf16 ||
493
0
    SimpleTy == CS_DATA_TYPE_v2048i1);
494
0
}
Unexecuted instantiation: ARMMapping.c:is2048BitVector
Unexecuted instantiation: AArch64Mapping.c:is2048BitVector
Unexecuted instantiation: PPCMapping.c:is2048BitVector
Unexecuted instantiation: RISCVMapping.c:is2048BitVector
Unexecuted instantiation: TriCoreMapping.c:is2048BitVector
Unexecuted instantiation: AlphaMapping.c:is2048BitVector
Unexecuted instantiation: LoongArchMapping.c:is2048BitVector
495
496
static inline cs_data_type getVectorElementType(cs_data_type SimpleTy)
497
0
{
498
0
  switch (SimpleTy) {
499
0
  default:
500
0
    assert(0 && "Not a vector MVT!");
501
0
  case CS_DATA_TYPE_v1i1:
502
0
  case CS_DATA_TYPE_v2i1:
503
0
  case CS_DATA_TYPE_v4i1:
504
0
  case CS_DATA_TYPE_v8i1:
505
0
  case CS_DATA_TYPE_v16i1:
506
0
  case CS_DATA_TYPE_v32i1:
507
0
  case CS_DATA_TYPE_v64i1:
508
0
  case CS_DATA_TYPE_v128i1:
509
0
  case CS_DATA_TYPE_v256i1:
510
0
  case CS_DATA_TYPE_v512i1:
511
0
  case CS_DATA_TYPE_v1024i1:
512
0
  case CS_DATA_TYPE_v2048i1:
513
0
  case CS_DATA_TYPE_nxv1i1:
514
0
  case CS_DATA_TYPE_nxv2i1:
515
0
  case CS_DATA_TYPE_nxv4i1:
516
0
  case CS_DATA_TYPE_nxv8i1:
517
0
  case CS_DATA_TYPE_nxv16i1:
518
0
  case CS_DATA_TYPE_nxv32i1:
519
0
  case CS_DATA_TYPE_nxv64i1:
520
0
    return CS_DATA_TYPE_i1;
521
0
  case CS_DATA_TYPE_v128i2:
522
0
  case CS_DATA_TYPE_v256i2:
523
0
    return CS_DATA_TYPE_i2;
524
0
  case CS_DATA_TYPE_v64i4:
525
0
  case CS_DATA_TYPE_v128i4:
526
0
    return CS_DATA_TYPE_i4;
527
0
  case CS_DATA_TYPE_v1i8:
528
0
  case CS_DATA_TYPE_v2i8:
529
0
  case CS_DATA_TYPE_v4i8:
530
0
  case CS_DATA_TYPE_v8i8:
531
0
  case CS_DATA_TYPE_v16i8:
532
0
  case CS_DATA_TYPE_v32i8:
533
0
  case CS_DATA_TYPE_v64i8:
534
0
  case CS_DATA_TYPE_v128i8:
535
0
  case CS_DATA_TYPE_v256i8:
536
0
  case CS_DATA_TYPE_v512i8:
537
0
  case CS_DATA_TYPE_v1024i8:
538
0
  case CS_DATA_TYPE_nxv1i8:
539
0
  case CS_DATA_TYPE_nxv2i8:
540
0
  case CS_DATA_TYPE_nxv4i8:
541
0
  case CS_DATA_TYPE_nxv8i8:
542
0
  case CS_DATA_TYPE_nxv16i8:
543
0
  case CS_DATA_TYPE_nxv32i8:
544
0
  case CS_DATA_TYPE_nxv64i8:
545
0
    return CS_DATA_TYPE_i8;
546
0
  case CS_DATA_TYPE_v1i16:
547
0
  case CS_DATA_TYPE_v2i16:
548
0
  case CS_DATA_TYPE_v3i16:
549
0
  case CS_DATA_TYPE_v4i16:
550
0
  case CS_DATA_TYPE_v8i16:
551
0
  case CS_DATA_TYPE_v16i16:
552
0
  case CS_DATA_TYPE_v32i16:
553
0
  case CS_DATA_TYPE_v64i16:
554
0
  case CS_DATA_TYPE_v128i16:
555
0
  case CS_DATA_TYPE_v256i16:
556
0
  case CS_DATA_TYPE_v512i16:
557
0
  case CS_DATA_TYPE_nxv1i16:
558
0
  case CS_DATA_TYPE_nxv2i16:
559
0
  case CS_DATA_TYPE_nxv4i16:
560
0
  case CS_DATA_TYPE_nxv8i16:
561
0
  case CS_DATA_TYPE_nxv16i16:
562
0
  case CS_DATA_TYPE_nxv32i16:
563
0
    return CS_DATA_TYPE_i16;
564
0
  case CS_DATA_TYPE_v1i32:
565
0
  case CS_DATA_TYPE_v2i32:
566
0
  case CS_DATA_TYPE_v3i32:
567
0
  case CS_DATA_TYPE_v4i32:
568
0
  case CS_DATA_TYPE_v5i32:
569
0
  case CS_DATA_TYPE_v6i32:
570
0
  case CS_DATA_TYPE_v7i32:
571
0
  case CS_DATA_TYPE_v8i32:
572
0
  case CS_DATA_TYPE_v9i32:
573
0
  case CS_DATA_TYPE_v10i32:
574
0
  case CS_DATA_TYPE_v11i32:
575
0
  case CS_DATA_TYPE_v12i32:
576
0
  case CS_DATA_TYPE_v16i32:
577
0
  case CS_DATA_TYPE_v32i32:
578
0
  case CS_DATA_TYPE_v64i32:
579
0
  case CS_DATA_TYPE_v128i32:
580
0
  case CS_DATA_TYPE_v256i32:
581
0
  case CS_DATA_TYPE_v512i32:
582
0
  case CS_DATA_TYPE_v1024i32:
583
0
  case CS_DATA_TYPE_v2048i32:
584
0
  case CS_DATA_TYPE_nxv1i32:
585
0
  case CS_DATA_TYPE_nxv2i32:
586
0
  case CS_DATA_TYPE_nxv4i32:
587
0
  case CS_DATA_TYPE_nxv8i32:
588
0
  case CS_DATA_TYPE_nxv16i32:
589
0
  case CS_DATA_TYPE_nxv32i32:
590
0
    return CS_DATA_TYPE_i32;
591
0
  case CS_DATA_TYPE_v1i64:
592
0
  case CS_DATA_TYPE_v2i64:
593
0
  case CS_DATA_TYPE_v3i64:
594
0
  case CS_DATA_TYPE_v4i64:
595
0
  case CS_DATA_TYPE_v8i64:
596
0
  case CS_DATA_TYPE_v16i64:
597
0
  case CS_DATA_TYPE_v32i64:
598
0
  case CS_DATA_TYPE_v64i64:
599
0
  case CS_DATA_TYPE_v128i64:
600
0
  case CS_DATA_TYPE_v256i64:
601
0
  case CS_DATA_TYPE_nxv1i64:
602
0
  case CS_DATA_TYPE_nxv2i64:
603
0
  case CS_DATA_TYPE_nxv4i64:
604
0
  case CS_DATA_TYPE_nxv8i64:
605
0
  case CS_DATA_TYPE_nxv16i64:
606
0
  case CS_DATA_TYPE_nxv32i64:
607
0
    return CS_DATA_TYPE_i64;
608
0
  case CS_DATA_TYPE_v1i128:
609
0
    return CS_DATA_TYPE_i128;
610
0
  case CS_DATA_TYPE_v1f16:
611
0
  case CS_DATA_TYPE_v2f16:
612
0
  case CS_DATA_TYPE_v3f16:
613
0
  case CS_DATA_TYPE_v4f16:
614
0
  case CS_DATA_TYPE_v8f16:
615
0
  case CS_DATA_TYPE_v16f16:
616
0
  case CS_DATA_TYPE_v32f16:
617
0
  case CS_DATA_TYPE_v64f16:
618
0
  case CS_DATA_TYPE_v128f16:
619
0
  case CS_DATA_TYPE_v256f16:
620
0
  case CS_DATA_TYPE_v512f16:
621
0
  case CS_DATA_TYPE_nxv1f16:
622
0
  case CS_DATA_TYPE_nxv2f16:
623
0
  case CS_DATA_TYPE_nxv4f16:
624
0
  case CS_DATA_TYPE_nxv8f16:
625
0
  case CS_DATA_TYPE_nxv16f16:
626
0
  case CS_DATA_TYPE_nxv32f16:
627
0
    return CS_DATA_TYPE_f16;
628
0
  case CS_DATA_TYPE_v2bf16:
629
0
  case CS_DATA_TYPE_v3bf16:
630
0
  case CS_DATA_TYPE_v4bf16:
631
0
  case CS_DATA_TYPE_v8bf16:
632
0
  case CS_DATA_TYPE_v16bf16:
633
0
  case CS_DATA_TYPE_v32bf16:
634
0
  case CS_DATA_TYPE_v64bf16:
635
0
  case CS_DATA_TYPE_v128bf16:
636
0
  case CS_DATA_TYPE_nxv1bf16:
637
0
  case CS_DATA_TYPE_nxv2bf16:
638
0
  case CS_DATA_TYPE_nxv4bf16:
639
0
  case CS_DATA_TYPE_nxv8bf16:
640
0
  case CS_DATA_TYPE_nxv16bf16:
641
0
  case CS_DATA_TYPE_nxv32bf16:
642
0
    return CS_DATA_TYPE_bf16;
643
0
  case CS_DATA_TYPE_v1f32:
644
0
  case CS_DATA_TYPE_v2f32:
645
0
  case CS_DATA_TYPE_v3f32:
646
0
  case CS_DATA_TYPE_v4f32:
647
0
  case CS_DATA_TYPE_v5f32:
648
0
  case CS_DATA_TYPE_v6f32:
649
0
  case CS_DATA_TYPE_v7f32:
650
0
  case CS_DATA_TYPE_v8f32:
651
0
  case CS_DATA_TYPE_v9f32:
652
0
  case CS_DATA_TYPE_v10f32:
653
0
  case CS_DATA_TYPE_v11f32:
654
0
  case CS_DATA_TYPE_v12f32:
655
0
  case CS_DATA_TYPE_v16f32:
656
0
  case CS_DATA_TYPE_v32f32:
657
0
  case CS_DATA_TYPE_v64f32:
658
0
  case CS_DATA_TYPE_v128f32:
659
0
  case CS_DATA_TYPE_v256f32:
660
0
  case CS_DATA_TYPE_v512f32:
661
0
  case CS_DATA_TYPE_v1024f32:
662
0
  case CS_DATA_TYPE_v2048f32:
663
0
  case CS_DATA_TYPE_nxv1f32:
664
0
  case CS_DATA_TYPE_nxv2f32:
665
0
  case CS_DATA_TYPE_nxv4f32:
666
0
  case CS_DATA_TYPE_nxv8f32:
667
0
  case CS_DATA_TYPE_nxv16f32:
668
0
    return CS_DATA_TYPE_f32;
669
0
  case CS_DATA_TYPE_v1f64:
670
0
  case CS_DATA_TYPE_v2f64:
671
0
  case CS_DATA_TYPE_v3f64:
672
0
  case CS_DATA_TYPE_v4f64:
673
0
  case CS_DATA_TYPE_v8f64:
674
0
  case CS_DATA_TYPE_v16f64:
675
0
  case CS_DATA_TYPE_v32f64:
676
0
  case CS_DATA_TYPE_v64f64:
677
0
  case CS_DATA_TYPE_v128f64:
678
0
  case CS_DATA_TYPE_v256f64:
679
0
  case CS_DATA_TYPE_nxv1f64:
680
0
  case CS_DATA_TYPE_nxv2f64:
681
0
  case CS_DATA_TYPE_nxv4f64:
682
0
  case CS_DATA_TYPE_nxv8f64:
683
0
    return CS_DATA_TYPE_f64;
684
0
  }
685
0
}
Unexecuted instantiation: ARMMapping.c:getVectorElementType
Unexecuted instantiation: AArch64Mapping.c:getVectorElementType
Unexecuted instantiation: PPCMapping.c:getVectorElementType
Unexecuted instantiation: RISCVMapping.c:getVectorElementType
Unexecuted instantiation: TriCoreMapping.c:getVectorElementType
Unexecuted instantiation: AlphaMapping.c:getVectorElementType
Unexecuted instantiation: LoongArchMapping.c:getVectorElementType
686
687
/// Given a vector type, return the minimum number of elements it contains.
688
static inline unsigned getVectorMinNumElements(cs_data_type SimpleTy)
689
0
{
690
0
  switch (SimpleTy) {
691
0
  default:
692
0
    assert(0 && "Not a vector MVT!");
693
0
  case CS_DATA_TYPE_v2048i1:
694
0
  case CS_DATA_TYPE_v2048i32:
695
0
  case CS_DATA_TYPE_v2048f32:
696
0
    return 2048;
697
0
  case CS_DATA_TYPE_v1024i1:
698
0
  case CS_DATA_TYPE_v1024i8:
699
0
  case CS_DATA_TYPE_v1024i32:
700
0
  case CS_DATA_TYPE_v1024f32:
701
0
    return 1024;
702
0
  case CS_DATA_TYPE_v512i1:
703
0
  case CS_DATA_TYPE_v512i8:
704
0
  case CS_DATA_TYPE_v512i16:
705
0
  case CS_DATA_TYPE_v512i32:
706
0
  case CS_DATA_TYPE_v512f16:
707
0
  case CS_DATA_TYPE_v512f32:
708
0
    return 512;
709
0
  case CS_DATA_TYPE_v256i1:
710
0
  case CS_DATA_TYPE_v256i2:
711
0
  case CS_DATA_TYPE_v256i8:
712
0
  case CS_DATA_TYPE_v256i16:
713
0
  case CS_DATA_TYPE_v256f16:
714
0
  case CS_DATA_TYPE_v256i32:
715
0
  case CS_DATA_TYPE_v256i64:
716
0
  case CS_DATA_TYPE_v256f32:
717
0
  case CS_DATA_TYPE_v256f64:
718
0
    return 256;
719
0
  case CS_DATA_TYPE_v128i1:
720
0
  case CS_DATA_TYPE_v128i2:
721
0
  case CS_DATA_TYPE_v128i4:
722
0
  case CS_DATA_TYPE_v128i8:
723
0
  case CS_DATA_TYPE_v128i16:
724
0
  case CS_DATA_TYPE_v128i32:
725
0
  case CS_DATA_TYPE_v128i64:
726
0
  case CS_DATA_TYPE_v128f16:
727
0
  case CS_DATA_TYPE_v128bf16:
728
0
  case CS_DATA_TYPE_v128f32:
729
0
  case CS_DATA_TYPE_v128f64:
730
0
    return 128;
731
0
  case CS_DATA_TYPE_v64i1:
732
0
  case CS_DATA_TYPE_v64i4:
733
0
  case CS_DATA_TYPE_v64i8:
734
0
  case CS_DATA_TYPE_v64i16:
735
0
  case CS_DATA_TYPE_v64i32:
736
0
  case CS_DATA_TYPE_v64i64:
737
0
  case CS_DATA_TYPE_v64f16:
738
0
  case CS_DATA_TYPE_v64bf16:
739
0
  case CS_DATA_TYPE_v64f32:
740
0
  case CS_DATA_TYPE_v64f64:
741
0
  case CS_DATA_TYPE_nxv64i1:
742
0
  case CS_DATA_TYPE_nxv64i8:
743
0
    return 64;
744
0
  case CS_DATA_TYPE_v32i1:
745
0
  case CS_DATA_TYPE_v32i8:
746
0
  case CS_DATA_TYPE_v32i16:
747
0
  case CS_DATA_TYPE_v32i32:
748
0
  case CS_DATA_TYPE_v32i64:
749
0
  case CS_DATA_TYPE_v32f16:
750
0
  case CS_DATA_TYPE_v32bf16:
751
0
  case CS_DATA_TYPE_v32f32:
752
0
  case CS_DATA_TYPE_v32f64:
753
0
  case CS_DATA_TYPE_nxv32i1:
754
0
  case CS_DATA_TYPE_nxv32i8:
755
0
  case CS_DATA_TYPE_nxv32i16:
756
0
  case CS_DATA_TYPE_nxv32i32:
757
0
  case CS_DATA_TYPE_nxv32i64:
758
0
  case CS_DATA_TYPE_nxv32f16:
759
0
  case CS_DATA_TYPE_nxv32bf16:
760
0
    return 32;
761
0
  case CS_DATA_TYPE_v16i1:
762
0
  case CS_DATA_TYPE_v16i8:
763
0
  case CS_DATA_TYPE_v16i16:
764
0
  case CS_DATA_TYPE_v16i32:
765
0
  case CS_DATA_TYPE_v16i64:
766
0
  case CS_DATA_TYPE_v16f16:
767
0
  case CS_DATA_TYPE_v16bf16:
768
0
  case CS_DATA_TYPE_v16f32:
769
0
  case CS_DATA_TYPE_v16f64:
770
0
  case CS_DATA_TYPE_nxv16i1:
771
0
  case CS_DATA_TYPE_nxv16i8:
772
0
  case CS_DATA_TYPE_nxv16i16:
773
0
  case CS_DATA_TYPE_nxv16i32:
774
0
  case CS_DATA_TYPE_nxv16i64:
775
0
  case CS_DATA_TYPE_nxv16f16:
776
0
  case CS_DATA_TYPE_nxv16bf16:
777
0
  case CS_DATA_TYPE_nxv16f32:
778
0
    return 16;
779
0
  case CS_DATA_TYPE_v12i32:
780
0
  case CS_DATA_TYPE_v12f32:
781
0
    return 12;
782
0
  case CS_DATA_TYPE_v11i32:
783
0
  case CS_DATA_TYPE_v11f32:
784
0
    return 11;
785
0
  case CS_DATA_TYPE_v10i32:
786
0
  case CS_DATA_TYPE_v10f32:
787
0
    return 10;
788
0
  case CS_DATA_TYPE_v9i32:
789
0
  case CS_DATA_TYPE_v9f32:
790
0
    return 9;
791
0
  case CS_DATA_TYPE_v8i1:
792
0
  case CS_DATA_TYPE_v8i8:
793
0
  case CS_DATA_TYPE_v8i16:
794
0
  case CS_DATA_TYPE_v8i32:
795
0
  case CS_DATA_TYPE_v8i64:
796
0
  case CS_DATA_TYPE_v8f16:
797
0
  case CS_DATA_TYPE_v8bf16:
798
0
  case CS_DATA_TYPE_v8f32:
799
0
  case CS_DATA_TYPE_v8f64:
800
0
  case CS_DATA_TYPE_nxv8i1:
801
0
  case CS_DATA_TYPE_nxv8i8:
802
0
  case CS_DATA_TYPE_nxv8i16:
803
0
  case CS_DATA_TYPE_nxv8i32:
804
0
  case CS_DATA_TYPE_nxv8i64:
805
0
  case CS_DATA_TYPE_nxv8f16:
806
0
  case CS_DATA_TYPE_nxv8bf16:
807
0
  case CS_DATA_TYPE_nxv8f32:
808
0
  case CS_DATA_TYPE_nxv8f64:
809
0
    return 8;
810
0
  case CS_DATA_TYPE_v7i32:
811
0
  case CS_DATA_TYPE_v7f32:
812
0
    return 7;
813
0
  case CS_DATA_TYPE_v6i32:
814
0
  case CS_DATA_TYPE_v6f32:
815
0
    return 6;
816
0
  case CS_DATA_TYPE_v5i32:
817
0
  case CS_DATA_TYPE_v5f32:
818
0
    return 5;
819
0
  case CS_DATA_TYPE_v4i1:
820
0
  case CS_DATA_TYPE_v4i8:
821
0
  case CS_DATA_TYPE_v4i16:
822
0
  case CS_DATA_TYPE_v4i32:
823
0
  case CS_DATA_TYPE_v4i64:
824
0
  case CS_DATA_TYPE_v4f16:
825
0
  case CS_DATA_TYPE_v4bf16:
826
0
  case CS_DATA_TYPE_v4f32:
827
0
  case CS_DATA_TYPE_v4f64:
828
0
  case CS_DATA_TYPE_nxv4i1:
829
0
  case CS_DATA_TYPE_nxv4i8:
830
0
  case CS_DATA_TYPE_nxv4i16:
831
0
  case CS_DATA_TYPE_nxv4i32:
832
0
  case CS_DATA_TYPE_nxv4i64:
833
0
  case CS_DATA_TYPE_nxv4f16:
834
0
  case CS_DATA_TYPE_nxv4bf16:
835
0
  case CS_DATA_TYPE_nxv4f32:
836
0
  case CS_DATA_TYPE_nxv4f64:
837
0
    return 4;
838
0
  case CS_DATA_TYPE_v3i16:
839
0
  case CS_DATA_TYPE_v3i32:
840
0
  case CS_DATA_TYPE_v3i64:
841
0
  case CS_DATA_TYPE_v3f16:
842
0
  case CS_DATA_TYPE_v3bf16:
843
0
  case CS_DATA_TYPE_v3f32:
844
0
  case CS_DATA_TYPE_v3f64:
845
0
    return 3;
846
0
  case CS_DATA_TYPE_v2i1:
847
0
  case CS_DATA_TYPE_v2i8:
848
0
  case CS_DATA_TYPE_v2i16:
849
0
  case CS_DATA_TYPE_v2i32:
850
0
  case CS_DATA_TYPE_v2i64:
851
0
  case CS_DATA_TYPE_v2f16:
852
0
  case CS_DATA_TYPE_v2bf16:
853
0
  case CS_DATA_TYPE_v2f32:
854
0
  case CS_DATA_TYPE_v2f64:
855
0
  case CS_DATA_TYPE_nxv2i1:
856
0
  case CS_DATA_TYPE_nxv2i8:
857
0
  case CS_DATA_TYPE_nxv2i16:
858
0
  case CS_DATA_TYPE_nxv2i32:
859
0
  case CS_DATA_TYPE_nxv2i64:
860
0
  case CS_DATA_TYPE_nxv2f16:
861
0
  case CS_DATA_TYPE_nxv2bf16:
862
0
  case CS_DATA_TYPE_nxv2f32:
863
0
  case CS_DATA_TYPE_nxv2f64:
864
0
    return 2;
865
0
  case CS_DATA_TYPE_v1i1:
866
0
  case CS_DATA_TYPE_v1i8:
867
0
  case CS_DATA_TYPE_v1i16:
868
0
  case CS_DATA_TYPE_v1i32:
869
0
  case CS_DATA_TYPE_v1i64:
870
0
  case CS_DATA_TYPE_v1i128:
871
0
  case CS_DATA_TYPE_v1f16:
872
0
  case CS_DATA_TYPE_v1f32:
873
0
  case CS_DATA_TYPE_v1f64:
874
0
  case CS_DATA_TYPE_nxv1i1:
875
0
  case CS_DATA_TYPE_nxv1i8:
876
0
  case CS_DATA_TYPE_nxv1i16:
877
0
  case CS_DATA_TYPE_nxv1i32:
878
0
  case CS_DATA_TYPE_nxv1i64:
879
0
  case CS_DATA_TYPE_nxv1f16:
880
0
  case CS_DATA_TYPE_nxv1bf16:
881
0
  case CS_DATA_TYPE_nxv1f32:
882
0
  case CS_DATA_TYPE_nxv1f64:
883
0
    return 1;
884
0
  }
885
0
}
Unexecuted instantiation: ARMMapping.c:getVectorMinNumElements
Unexecuted instantiation: AArch64Mapping.c:getVectorMinNumElements
Unexecuted instantiation: PPCMapping.c:getVectorMinNumElements
Unexecuted instantiation: RISCVMapping.c:getVectorMinNumElements
Unexecuted instantiation: TriCoreMapping.c:getVectorMinNumElements
Unexecuted instantiation: AlphaMapping.c:getVectorMinNumElements
Unexecuted instantiation: LoongArchMapping.c:getVectorMinNumElements
886
887
#endif // CS_SIMPLE_TYPES_H