Skip to content

Commit a2f3759

Browse files
aratajewigcbot
authored andcommitted
Define supported SPIRV extensions and capabilities - part 2
This change defines which SPIRV extensions and capabilities are supported on which devices. It also removes ocloc test for `SPV_INTEL_arbitrary_precision_integers` extension, because this extension is not officially supported on any device.
1 parent 9a7d7fc commit a2f3759

File tree

3 files changed

+38
-64
lines changed

3 files changed

+38
-64
lines changed

IGC/AdaptorOCL/ocl_igc_interface/extensions/SPIRVExtensions.td

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ def SPV_EXT_optnone : Extension<
6262
"https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_optnone.html"
6363
>;
6464

65+
// SPV_INTEL_optnone is an old name for the same extension as SPV_EXT_optnone.
66+
// We must keep it for compatibility with SPIRV produced by older frontends.
67+
// By marking it as ExperimentalExtension we avoid advertising it in the list of supported extensions,
68+
// while it is still accepted by SPIRV validator.
69+
def SPV_INTEL_optnone : ExperimentalExtension<
70+
"SPV_INTEL_optnone",
71+
[ Capability<"OptNoneINTEL"> ],
72+
"https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_optnone.html"
73+
>;
74+
6575
def SPV_INTEL_cache_controls : Extension<
6676
"SPV_INTEL_cache_controls",
6777
[ Capability<"CacheControlsINTEL"> ],
@@ -298,14 +308,19 @@ def SPV_INTEL_bfloat16_arithmetic : ExperimentalExtension<
298308
"SPV_INTEL_bfloat16_arithmetic",
299309
[ Capability<"BFloat16ArithmeticINTEL"> ],
300310
"https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_bfloat16_arithmetic.asciidoc",
301-
isCoreChildOf<IGFX_XE3P_CORE>
311+
// isCoreChildOf<IGFX_XE3P_CORE>
312+
// This extension has been mainly implemented for XE3P, but there are existing LIT tests for some functionality from
313+
// this extension for PVC and DG2. We may consider supporting those platforms fully in the future. Since the support
314+
// for this extension is still experimental, we define support for broader set of platforms for now to avoid fails
315+
// on existing PVC and DG2 tests.
316+
AllOf<[isCoreChildOf<IGFX_XE_HPG_CORE>, Not<ExactPlatform<IGFX_METEORLAKE>>]>
302317
>;
303318

304319
def SPV_INTEL_bfloat16_conversion : Extension<
305320
"SPV_INTEL_bfloat16_conversion",
306321
[ Capability<"BFloat16ConversionINTEL"> ],
307322
"https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_bfloat16_conversion.html",
308-
isCoreChildOf<IGFX_XE3P_CORE>
323+
AllOf<[isCoreChildOf<IGFX_XE_HPG_CORE>, Not<ExactPlatform<IGFX_METEORLAKE>>]>
309324
>;
310325

311326
def SPV_INTEL_int4 : ExperimentalExtension<
@@ -349,7 +364,12 @@ def SPV_KHR_bfloat16 : ExperimentalExtension<
349364
Capability<"BFloat16DotProductKHR">,
350365
Capability<"BFloat16CooperativeMatrixKHR"> ],
351366
"https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_bfloat16.html",
352-
isCoreChildOf<IGFX_XE2_HPG_CORE>
367+
// isCoreChildOf<IGFX_XE3P_CORE>
368+
// This extension has been mainly implemented for XE3P, but there are existing LIT tests for some functionality from
369+
// this extension for PVC and DG2. We may consider supporting those platforms fully in the future. Since the support
370+
// for this extension is still experimental, we define support for broader set of platforms for now to avoid fails
371+
// on existing PVC and DG2 tests.
372+
AllOf<[isCoreChildOf<IGFX_XE_HPG_CORE>, Not<ExactPlatform<IGFX_METEORLAKE>>]>
353373
>;
354374

355375
// ----------------------------------------------

IGC/ocloc_tests/SPIRV-extenstions/SPV_INTEL_arbitrary_precision_integers/capability-arbitrary-precision-integers.ll

Lines changed: 0 additions & 58 deletions
This file was deleted.

0 commit comments

Comments
 (0)