Skip to content

Commit a0b316f

Browse files
vmaksimosys-ce-bb
authored andcommitted
Introduce SPIR-V 1.6 version (#2505)
Recognize SPIR-V 1.6 modules and allow specifying the `--spirv-max-version=1.6` option. This does not implement any SPIR-V 1.6 functionality yet, so mark it as "experimental". Original commit: KhronosGroup/SPIRV-LLVM-Translator@e1f7ebee5ed8b90
1 parent 3c370d7 commit a0b316f

File tree

4 files changed

+10
-5
lines changed

4 files changed

+10
-5
lines changed

llvm-spirv/include/LLVMSPIRVOpts.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ enum class VersionNumber : uint32_t {
6464
SPIRV_1_3 = 0x00010300,
6565
SPIRV_1_4 = 0x00010400,
6666
SPIRV_1_5 = 0x00010500,
67+
SPIRV_1_6 = 0x00010600,
6768
MinimumVersion = SPIRV_1_0,
68-
MaximumVersion = SPIRV_1_5
69+
MaximumVersion = SPIRV_1_6
6970
};
7071

7172
inline constexpr std::string_view formatVersionNumber(uint32_t Version) {
@@ -82,6 +83,8 @@ inline constexpr std::string_view formatVersionNumber(uint32_t Version) {
8283
return "1.4";
8384
case static_cast<uint32_t>(VersionNumber::SPIRV_1_5):
8485
return "1.5";
86+
case static_cast<uint32_t>(VersionNumber::SPIRV_1_6):
87+
return "1.6";
8588
}
8689
return "unknown";
8790
}

llvm-spirv/test/negative/spirv-version-controls-1.spt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
119734787 67072 393230 12 0
1+
119734787 67328 393230 12 0
22
2 Capability Addresses
33
2 Capability Kernel
44
5 ExtInstImport 1 "OpenCL.std"
@@ -29,4 +29,4 @@
2929

3030
; RUN: not llvm-spirv %s -to-binary -o - 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
3131
;
32-
; CHECK-ERROR: Invalid SPIR-V module: unsupported SPIR-V version number 'unknown (67072)'. Range of supported/known SPIR-V versions is 1.0 (65536) - 1.5 (66816)
32+
; CHECK-ERROR: Invalid SPIR-V module: unsupported SPIR-V version number 'unknown (67328)'. Range of supported/known SPIR-V versions is 1.0 (65536) - 1.6 (67072)

llvm-spirv/test/negative/spirv-version-controls-2.spt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@
2929

3030
; RUN: not llvm-spirv %s -to-binary -o - 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
3131
;
32-
; CHECK-ERROR: Invalid SPIR-V module: unsupported SPIR-V version number 'unknown (1024)'. Range of supported/known SPIR-V versions is 1.0 (65536) - 1.5 (66816)
32+
; CHECK-ERROR: Invalid SPIR-V module: unsupported SPIR-V version number 'unknown (1024)'. Range of supported/known SPIR-V versions is 1.0 (65536) - 1.6 (67072)

llvm-spirv/tools/llvm-spirv/llvm-spirv.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ static cl::opt<VersionNumber> MaxSPIRVVersion(
112112
clEnumValN(VersionNumber::SPIRV_1_2, "1.2", "SPIR-V 1.2"),
113113
clEnumValN(VersionNumber::SPIRV_1_3, "1.3", "SPIR-V 1.3"),
114114
clEnumValN(VersionNumber::SPIRV_1_4, "1.4", "SPIR-V 1.4"),
115-
clEnumValN(VersionNumber::SPIRV_1_5, "1.5", "SPIR-V 1.5")),
115+
clEnumValN(VersionNumber::SPIRV_1_5, "1.5", "SPIR-V 1.5"),
116+
clEnumValN(VersionNumber::SPIRV_1_6, "1.6",
117+
"SPIR-V 1.6 (experimental)")),
116118
cl::init(VersionNumber::MaximumVersion));
117119

118120
static cl::list<std::string>

0 commit comments

Comments
 (0)