File tree 1 file changed +10
-4
lines changed
1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -1458,16 +1458,22 @@ int Target::natural_vector_size(const Halide::Type &t) const {
1458
1458
}
1459
1459
} else if (arch == Target::X86) {
1460
1460
if (is_integer && (has_feature (Halide::Target::AVX512_Skylake) ||
1461
- has_feature (Halide::Target::AVX512_Cannonlake))) {
1462
- // AVX512BW exists on Skylake and Cannonlake
1461
+ has_feature (Halide::Target::AVX512_Cannonlake) ||
1462
+ has_feature (Halide::Target::AVX512_Zen4) ||
1463
+ has_feature (Halide::Target::AVX512_SapphireRapids))) {
1464
+ // AVX512BW exists on any of these avx512 variants
1463
1465
return 64 / data_size;
1464
1466
} else if (t.is_float () && (has_feature (Halide::Target::AVX512) ||
1465
1467
has_feature (Halide::Target::AVX512_KNL) ||
1466
1468
has_feature (Halide::Target::AVX512_Skylake) ||
1467
- has_feature (Halide::Target::AVX512_Cannonlake))) {
1469
+ has_feature (Halide::Target::AVX512_Cannonlake) ||
1470
+ has_feature (Halide::Target::AVX512_Zen4) ||
1471
+ has_feature (Halide::Target::AVX512_SapphireRapids))) {
1468
1472
// AVX512F is on all AVX512 architectures
1469
1473
return 64 / data_size;
1470
- } else if (has_feature (Halide::Target::AVX2)) {
1474
+ } else if (has_feature (Halide::Target::AVX2) ||
1475
+ has_feature (Halide::Target::AVX512) ||
1476
+ has_feature (Halide::Target::AVX512_KNL)) {
1471
1477
// AVX2 uses 256-bit vectors for everything.
1472
1478
return 32 / data_size;
1473
1479
} else if (!is_integer && has_feature (Halide::Target::AVX)) {
You can’t perform that action at this time.
0 commit comments