@@ -180,28 +180,10 @@ version(LDC)
180
180
enum LDC_with_SSE42 = false ;
181
181
enum LDC_with_CRC32 = false ;
182
182
enum LDC_with_AVX = false ;
183
+ enum LDC_with_F16C = false ;
183
184
enum LDC_with_AVX2 = false ;
184
185
enum LDC_with_SHA = false ;
185
186
enum LDC_with_BMI2 = false ;
186
-
187
- enum LDC_with_AVX512F = false ;
188
- enum LDC_with_AVX512CD = false ;
189
- enum LDC_with_AVX512ER = false ;
190
- enum LDC_with_AVX512PF = false ;
191
- enum LDC_with_AVX512BW = false ;
192
- enum LDC_with_AVX512DQ = false ;
193
- enum LDC_with_AVX512VL = false ;
194
- enum LDC_with_AVX512IFMA = false ;
195
- enum LDC_with_AVX512VBMI = false ;
196
- enum LDC_with_AVX512VBMI2 = false ;
197
-
198
- enum LDC_with_AVX512FP16 = false ;
199
- enum LDC_with_AVX512BF16 = false ;
200
- enum LDC_with_AVX512VNNI = false ;
201
- enum LDC_with_AVX512BITALG = false ;
202
-
203
- enum LDC_with_AVX512VP2INTERSECT = false ;
204
- enum LDC_with_AVX512VPOPCNTDQ = false ;
205
187
}
206
188
else version (AArch64 )
207
189
{
@@ -217,28 +199,10 @@ version(LDC)
217
199
enum LDC_with_SSE42 = false ;
218
200
enum LDC_with_CRC32 = false ;
219
201
enum LDC_with_AVX = false ;
202
+ enum LDC_with_F16C = false ;
220
203
enum LDC_with_AVX2 = false ;
221
204
enum LDC_with_SHA = false ;
222
205
enum LDC_with_BMI2 = false ;
223
-
224
- enum LDC_with_AVX512F = false ;
225
- enum LDC_with_AVX512CD = false ;
226
- enum LDC_with_AVX512ER = false ;
227
- enum LDC_with_AVX512PF = false ;
228
- enum LDC_with_AVX512BW = false ;
229
- enum LDC_with_AVX512DQ = false ;
230
- enum LDC_with_AVX512VL = false ;
231
- enum LDC_with_AVX512IFMA = false ;
232
- enum LDC_with_AVX512VBMI = false ;
233
- enum LDC_with_AVX512VBMI2 = false ;
234
-
235
- enum LDC_with_AVX512FP16 = false ;
236
- enum LDC_with_AVX512BF16 = false ;
237
- enum LDC_with_AVX512VNNI = false ;
238
- enum LDC_with_AVX512BITALG = false ;
239
-
240
- enum LDC_with_AVX512VP2INTERSECT = false ;
241
- enum LDC_with_AVX512VPOPCNTDQ = false ;
242
206
}
243
207
else static if (some_x86)
244
208
{
@@ -276,30 +240,10 @@ version(LDC)
276
240
}
277
241
278
242
enum LDC_with_AVX = __traits(targetHasFeature, " avx" ) && LDC_with_ia32_builtins;
243
+ enum LDC_with_F16C = __traits(targetHasFeature, " f16c" ) && LDC_with_ia32_builtins;
279
244
enum LDC_with_AVX2 = __traits(targetHasFeature, " avx2" ) && LDC_with_ia32_builtins;
280
245
enum LDC_with_SHA = __traits(targetHasFeature, " sha" ) && LDC_with_ia32_builtins;
281
246
enum LDC_with_BMI2 = __traits(targetHasFeature, " bmi2" ) && LDC_with_ia32_builtins;
282
-
283
- // All of the feature flags at https://github.com/cetio/sim-d/blob/main/source/simd/features.d
284
- // but I haven't added them because I don't feel inclined, these suffice.
285
- enum LDC_with_AVX512F = __traits(targetHasFeature, " avx512f" ) && LDC_with_ia32_builtins;
286
- enum LDC_with_AVX512CD = __traits(targetHasFeature, " avx512cd" ) && LDC_with_ia32_builtins;
287
- enum LDC_with_AVX512ER = __traits(targetHasFeature, " avx512er" ) && LDC_with_ia32_builtins;
288
- enum LDC_with_AVX512PF = __traits(targetHasFeature, " avx512pf" ) && LDC_with_ia32_builtins;
289
- enum LDC_with_AVX512BW = __traits(targetHasFeature, " avx512bw" ) && LDC_with_ia32_builtins;
290
- enum LDC_with_AVX512DQ = __traits(targetHasFeature, " avx512dq" ) && LDC_with_ia32_builtins;
291
- enum LDC_with_AVX512VL = __traits(targetHasFeature, " avx512vl" ) && LDC_with_ia32_builtins;
292
- enum LDC_with_AVX512IFMA = __traits(targetHasFeature, " avx512ifma" ) && LDC_with_ia32_builtins;
293
- enum LDC_with_AVX512VBMI = __traits(targetHasFeature, " avx512vbmi" ) && LDC_with_ia32_builtins;
294
- enum LDC_with_AVX512VBMI2 = __traits(targetHasFeature, " avx512vbmi2" ) && LDC_with_ia32_builtins;
295
-
296
- enum LDC_with_AVX512FP16 = (__VERSION__ > 2101 ) && __traits(targetHasFeature, " avx512fp16" ) && LDC_with_ia32_builtins;
297
- enum LDC_with_AVX512BF16 = __traits(targetHasFeature, " avx512bf16" ) && LDC_with_ia32_builtins;
298
- enum LDC_with_AVX512VNNI = __traits(targetHasFeature, " avx512vnni" ) && LDC_with_ia32_builtins;
299
- enum LDC_with_AVX512BITALG = __traits(targetHasFeature, " avx512bitalg" ) && LDC_with_ia32_builtins;
300
-
301
- enum LDC_with_AVX512VP2INTERSECT = __traits(targetHasFeature, " avx512vp2intersect" ) && LDC_with_ia32_builtins;
302
- enum LDC_with_AVX512VPOPCNTDQ = __traits(targetHasFeature, " avx512vpopcntdq" ) && LDC_with_ia32_builtins;
303
247
}
304
248
else
305
249
{
@@ -314,28 +258,10 @@ version(LDC)
314
258
enum LDC_with_SSE42 = false ;
315
259
enum LDC_with_CRC32 = false ;
316
260
enum LDC_with_AVX = false ;
261
+ enum LDC_with_F16C = false ;
317
262
enum LDC_with_AVX2 = false ;
318
263
enum LDC_with_SHA = false ;
319
264
enum LDC_with_BMI2 = false ;
320
-
321
- enum LDC_with_AVX512F = false ;
322
- enum LDC_with_AVX512CD = false ;
323
- enum LDC_with_AVX512ER = false ;
324
- enum LDC_with_AVX512PF = false ;
325
- enum LDC_with_AVX512BW = false ;
326
- enum LDC_with_AVX512DQ = false ;
327
- enum LDC_with_AVX512VL = false ;
328
- enum LDC_with_AVX512IFMA = false ;
329
- enum LDC_with_AVX512VBMI = false ;
330
- enum LDC_with_AVX512VBMI2 = false ;
331
-
332
- enum LDC_with_AVX512FP16 = false ;
333
- enum LDC_with_AVX512BF16 = false ;
334
- enum LDC_with_AVX512VNNI = false ;
335
- enum LDC_with_AVX512BITALG = false ;
336
-
337
- enum LDC_with_AVX512VP2INTERSECT = false ;
338
- enum LDC_with_AVX512VPOPCNTDQ = false ;
339
265
}
340
266
341
267
// Should we use inline x86 assembly with DMD syntax, in LDC?
@@ -368,29 +294,11 @@ else
368
294
enum LDC_with_SSE42 = false ;
369
295
enum LDC_with_CRC32 = false ;
370
296
enum LDC_with_AVX = false ;
297
+ enum LDC_with_F16C = false ;
371
298
enum LDC_with_AVX2 = false ;
372
299
enum LDC_with_SHA = false ;
373
300
enum LDC_with_BMI2 = false ;
374
301
375
- enum LDC_with_AVX512F = false ;
376
- enum LDC_with_AVX512CD = false ;
377
- enum LDC_with_AVX512ER = false ;
378
- enum LDC_with_AVX512PF = false ;
379
- enum LDC_with_AVX512BW = false ;
380
- enum LDC_with_AVX512DQ = false ;
381
- enum LDC_with_AVX512VL = false ;
382
- enum LDC_with_AVX512IFMA = false ;
383
- enum LDC_with_AVX512VBMI = false ;
384
- enum LDC_with_AVX512VBMI2 = false ;
385
-
386
- enum LDC_with_AVX512FP16 = false ;
387
- enum LDC_with_AVX512BF16 = false ;
388
- enum LDC_with_AVX512VNNI = false ;
389
- enum LDC_with_AVX512BITALG = false ;
390
-
391
- enum LDC_with_AVX512VP2INTERSECT = false ;
392
- enum LDC_with_AVX512VPOPCNTDQ = false ;
393
-
394
302
enum LDC_with_InlineIREx = false ;
395
303
enum bool LDC_with_optimizations = false ;
396
304
enum bool LDC_with_32b_x86_asm = false ;
0 commit comments