From 1e770e7de8373a8dd49f23416cf7ca4001d01040 Mon Sep 17 00:00:00 2001
From: Jebrim <jebscapeplugin@gmail.com>
Date: Wed, 27 May 2026 10:48:38 -0500
Subject: [PATCH 17/26] Add Pred as a new SPIR-V source language (#606)

* Add Pred as a new SPIR-V source language

* Update spirv.bf

* Update spirv.core.grammar.json

* Update spirv.cs

* Update spirv.hpp

* Update spirv.hpp11

* Update spirv.json

* Update spirv.lua

* Update spirv.py

* Update spv.d

* Update spir-v.xml
---
 include/spirv/spir-v.xml                       | 3 ++-
 include/spirv/unified1/spirv.bf                | 1 +
 include/spirv/unified1/spirv.core.grammar.json | 5 +++++
 include/spirv/unified1/spirv.cs                | 1 +
 include/spirv/unified1/spirv.h                 | 2 ++
 include/spirv/unified1/spirv.hpp               | 2 ++
 include/spirv/unified1/spirv.hpp11             | 2 ++
 include/spirv/unified1/spirv.json              | 3 ++-
 include/spirv/unified1/spirv.lua               | 1 +
 include/spirv/unified1/spirv.py                | 1 +
 include/spirv/unified1/spv.d                   | 1 +
 11 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 69a2c2a..1463dd6 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -82,7 +82,8 @@
         <id value="47"  vendor="ARM" comment="Contact Christopher Gautier, christopher.gautier@arm.com"/>
         <id value="48"  vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
         <id value="49"  vendor="Icyllis Milica" tool="Arc3D Shader Compiler" comment="Contact Icyllis Milica, https://github.com/BloCamLimb/Arc3D"/>
-        <unused start="50" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+        <id value="50"  vendor="Isochron" tool="Pred" comment="Contact Justin Ead, jebrim@isochrontechnologies.com"/>
+        <unused start="51" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
     </ids>
 
     <!-- SECTION: SPIR-V Opcodes and Enumerants -->
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index 9497023..fb9644e 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -56,6 +56,7 @@ namespace Spv
             Slang = 11,
             Zig = 12,
             Rust = 13,
+            Pred = 14,
             Max = 0x7fffffff,
         }
 
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 4f96982..9e1adee 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -12684,6 +12684,11 @@
           "enumerant" : "Rust",
           "value" : 13,
           "version" : "1.0"
+        },
+        {
+          "enumerant" : "Pred",
+          "value" : 14,
+          "version" : "1.0"
         }
       ]
     },
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 7631bf2..d0f69b9 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -55,6 +55,7 @@ namespace Spv
             Slang = 11,
             Zig = 12,
             Rust = 13,
+            Pred = 14,
             Max = 0x7fffffff,
         }
 
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 5ab265f..966ad68 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -63,6 +63,7 @@ typedef enum SpvSourceLanguage_ {
     SpvSourceLanguageSlang = 11,
     SpvSourceLanguageZig = 12,
     SpvSourceLanguageRust = 13,
+    SpvSourceLanguagePred = 14,
     SpvSourceLanguageMax = 0x7fffffff,
 } SpvSourceLanguage;
 
@@ -3564,6 +3565,7 @@ inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
     case SpvSourceLanguageSlang: return "Slang";
     case SpvSourceLanguageZig: return "Zig";
     case SpvSourceLanguageRust: return "Rust";
+    case SpvSourceLanguagePred: return "Pred";
     default: return "Unknown";
     }
 }
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 33b4a8b..517b7cf 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -59,6 +59,7 @@ enum SourceLanguage {
     SourceLanguageSlang = 11,
     SourceLanguageZig = 12,
     SourceLanguageRust = 13,
+    SourceLanguagePred = 14,
     SourceLanguageMax = 0x7fffffff,
 };
 
@@ -3560,6 +3561,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
     case SourceLanguageSlang: return "Slang";
     case SourceLanguageZig: return "Zig";
     case SourceLanguageRust: return "Rust";
+    case SourceLanguagePred: return "Pred";
     default: return "Unknown";
     }
 }
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index eb15ea2..4fa5f8f 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -59,6 +59,7 @@ enum class SourceLanguage : unsigned {
     Slang = 11,
     Zig = 12,
     Rust = 13,
+    Pred = 14,
     Max = 0x7fffffff,
 };
 
@@ -3560,6 +3561,7 @@ inline const char* SourceLanguageToString(SourceLanguage value) {
     case SourceLanguage::Slang: return "Slang";
     case SourceLanguage::Zig: return "Zig";
     case SourceLanguage::Rust: return "Rust";
+    case SourceLanguage::Pred: return "Pred";
     default: return "Unknown";
     }
 }
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 35f85d9..43a7891 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -65,7 +65,8 @@
                     "WGSL": 10,
                     "Slang": 11,
                     "Zig": 12,
-                    "Rust": 13
+                    "Rust": 13,
+                    "Pred": 14
                 }
             },
             {
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index f244e9a..bb4c52f 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -50,6 +50,7 @@ spv = {
         Slang = 11,
         Zig = 12,
         Rust = 13,
+        Pred = 14,
         Max = 0x7fffffff,
     },
 
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index af0e61f..e01e462 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -50,6 +50,7 @@ spv = {
         'Slang' : 11,
         'Zig' : 12,
         'Rust' : 13,
+        'Pred' : 14,
     },
 
     'ExecutionModel' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 1ed7d76..3e631ef 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -58,6 +58,7 @@ enum SourceLanguage : uint
     Slang = 11,
     Zig = 12,
     Rust = 13,
+    Pred = 14,
     Max = 0x7fffffff,
 }
 
-- 
2.54.0

