[mlir][spirv] Fix integer dot prod capabilities
authorJakub Kuderski <kubak@google.com>
Thu, 1 Dec 2022 14:14:52 +0000 (09:14 -0500)
committerJakub Kuderski <kubak@google.com>
Thu, 1 Dec 2022 16:01:21 +0000 (11:01 -0500)
Allow the integer dot product cabailities to be used in SPIR-V <1.6 when
the SPV_KHR_integer_dot_product extension is available.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D139063

mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td

index e4d4ee5..6a89ac3 100644 (file)
@@ -802,16 +802,26 @@ def SPIRV_C_FPGARegINTEL                                : I32EnumAttrCase<"FPGAR
 }
 def SPIRV_C_DotProductInputAll                          : I32EnumAttrCase<"DotProductInputAll", 6016> {
   list<Availability> availability = [
+    Extension<[SPV_KHR_integer_dot_product]>,
+    MinVersion<SPIRV_V_1_6>
+  ];
+}
+def SPIRV_C_DotProductInput4x8Bit                       : I32EnumAttrCase<"DotProductInput4x8Bit", 6017> {
+  list<I32EnumAttrCase> implies = [SPIRV_C_Int8];
+  list<Availability> availability = [
+    Extension<[SPV_KHR_integer_dot_product]>,
     MinVersion<SPIRV_V_1_6>
   ];
 }
 def SPIRV_C_DotProductInput4x8BitPacked                 : I32EnumAttrCase<"DotProductInput4x8BitPacked", 6018> {
   list<Availability> availability = [
+    Extension<[SPV_KHR_integer_dot_product]>,
     MinVersion<SPIRV_V_1_6>
   ];
 }
 def SPIRV_C_DotProduct                                  : I32EnumAttrCase<"DotProduct", 6019> {
   list<Availability> availability = [
+    Extension<[SPV_KHR_integer_dot_product]>,
     MinVersion<SPIRV_V_1_6>
   ];
 }
@@ -976,12 +986,6 @@ def SPIRV_C_FPFastMathModeINTEL                         : I32EnumAttrCase<"FPFas
     Extension<[SPV_INTEL_fp_fast_math_mode]>
   ];
 }
-def SPIRV_C_DotProductInput4x8Bit                       : I32EnumAttrCase<"DotProductInput4x8Bit", 6017> {
-  list<I32EnumAttrCase> implies = [SPIRV_C_Int8];
-  list<Availability> availability = [
-    MinVersion<SPIRV_V_1_6>
-  ];
-}
 def SPIRV_C_GroupNonUniformRotateKHR                    : I32EnumAttrCase<"GroupNonUniformRotateKHR", 6026> {
   list<I32EnumAttrCase> implies = [SPIRV_C_GroupNonUniform];
   list<Availability> availability = [