Merge pull request #162 from vkushwaha-nv/SPV_EXT_shader_atomic_float

Add changes for SPV_EXT_shader_atomic_float
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 8270746..3fd7da5 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -7060,6 +7060,22 @@
         "capabilities" : [ "RayQueryProvisionalKHR" ],
         "extensions" : [ "SPV_KHR_ray_query" ],
         "version" : "None"
+    },
+    {
+      "opname" : "OpAtomicFAddEXT",
+      "class"  : "Atomic",
+      "opcode" : 6035,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",             "name" : "'Pointer'" },
+        { "kind" : "IdScope",           "name" : "'Memory'" },
+        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
+        { "kind" : "IdRef",             "name" : "'Value'" }
+      ],
+      "capabilities" : [ "AtomicFloat32AddEXT", "AtomicFloat64AddEXT" ],
+      "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+      "version" : "None"
     }
   ],
   "operand_kinds" : [
@@ -11539,6 +11555,20 @@
           "value" : 5948,
           "extensions" : [ "SPV_INTEL_fpga_reg" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "AtomicFloat32AddEXT",
+          "value" : 6033,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "AtomicFloat64AddEXT",
+          "value" : 6034,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
+          "version" : "None"
         }
       ]
     },
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index d04c1b4..cae5abe 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -976,6 +976,8 @@
             FPGAKernelAttributesINTEL = 5897,
             BlockingPipesINTEL = 5945,
             FPGARegINTEL = 5948,
+            AtomicFloat32AddEXT = 6033,
+            AtomicFloat64AddEXT = 6034,
         }
 
         public enum RayFlagsShift
@@ -1589,6 +1591,7 @@
             OpRayQueryGetWorldRayOriginKHR = 6030,
             OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
             OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+            OpAtomicFAddEXT = 6035,
         }
     }
 }
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 449d199..25db3b8 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -976,6 +976,8 @@
     SpvCapabilityFPGAKernelAttributesINTEL = 5897,
     SpvCapabilityBlockingPipesINTEL = 5945,
     SpvCapabilityFPGARegINTEL = 5948,
+    SpvCapabilityAtomicFloat32AddEXT = 6033,
+    SpvCapabilityAtomicFloat64AddEXT = 6034,
     SpvCapabilityMax = 0x7fffffff,
 } SpvCapability;
 
@@ -1588,6 +1590,7 @@
     SpvOpRayQueryGetWorldRayOriginKHR = 6030,
     SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
     SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+    SpvOpAtomicFAddEXT = 6035,
     SpvOpMax = 0x7fffffff,
 } SpvOp;
 
@@ -2149,6 +2152,7 @@
     case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
     }
 }
 #endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 34c6d55..35482ea 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -972,6 +972,8 @@
     CapabilityFPGAKernelAttributesINTEL = 5897,
     CapabilityBlockingPipesINTEL = 5945,
     CapabilityFPGARegINTEL = 5948,
+    CapabilityAtomicFloat32AddEXT = 6033,
+    CapabilityAtomicFloat64AddEXT = 6034,
     CapabilityMax = 0x7fffffff,
 };
 
@@ -1584,6 +1586,7 @@
     OpRayQueryGetWorldRayOriginKHR = 6030,
     OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
     OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+    OpAtomicFAddEXT = 6035,
     OpMax = 0x7fffffff,
 };
 
@@ -2145,6 +2148,7 @@
     case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
     case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
     case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+    case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
     }
 }
 #endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index b707160..a9e726c 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -972,6 +972,8 @@
     FPGAKernelAttributesINTEL = 5897,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
+    AtomicFloat32AddEXT = 6033,
+    AtomicFloat64AddEXT = 6034,
     Max = 0x7fffffff,
 };
 
@@ -1584,6 +1586,7 @@
     OpRayQueryGetWorldRayOriginKHR = 6030,
     OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
     OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+    OpAtomicFAddEXT = 6035,
     Max = 0x7fffffff,
 };
 
@@ -2145,6 +2148,7 @@
     case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
     }
 }
 #endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 25c1901..fbc1aa5 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -961,7 +961,9 @@
                     "KernelAttributesINTEL": 5892,
                     "FPGAKernelAttributesINTEL": 5897,
                     "BlockingPipesINTEL": 5945,
-                    "FPGARegINTEL": 5948
+                    "FPGARegINTEL": 5948,
+                    "AtomicFloat32AddEXT": 6033,
+                    "AtomicFloat64AddEXT": 6034
                 }
             },
             {
@@ -1574,7 +1576,8 @@
                     "OpRayQueryGetWorldRayDirectionKHR": 6029,
                     "OpRayQueryGetWorldRayOriginKHR": 6030,
                     "OpRayQueryGetIntersectionObjectToWorldKHR": 6031,
-                    "OpRayQueryGetIntersectionWorldToObjectKHR": 6032
+                    "OpRayQueryGetIntersectionWorldToObjectKHR": 6032,
+                    "OpAtomicFAddEXT": 6035
                 }
             }
         ]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 6f35225..24ad285 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -934,6 +934,8 @@
         FPGAKernelAttributesINTEL = 5897,
         BlockingPipesINTEL = 5945,
         FPGARegINTEL = 5948,
+        AtomicFloat32AddEXT = 6033,
+        AtomicFloat64AddEXT = 6034,
     },
 
     RayFlagsShift = {
@@ -1541,6 +1543,7 @@
         OpRayQueryGetWorldRayOriginKHR = 6030,
         OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
         OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+        OpAtomicFAddEXT = 6035,
     },
 
 }
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 4a32b29..eb8bfbb 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -934,6 +934,8 @@
         'FPGAKernelAttributesINTEL' : 5897,
         'BlockingPipesINTEL' : 5945,
         'FPGARegINTEL' : 5948,
+        'AtomicFloat32AddEXT' : 6033,
+        'AtomicFloat64AddEXT' : 6034,
     },
 
     'RayFlagsShift' : {
@@ -1541,6 +1543,7 @@
         'OpRayQueryGetWorldRayOriginKHR' : 6030,
         'OpRayQueryGetIntersectionObjectToWorldKHR' : 6031,
         'OpRayQueryGetIntersectionWorldToObjectKHR' : 6032,
+        'OpAtomicFAddEXT' : 6035,
     },
 
 }
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 8714d0e..8dfbc2f 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -979,6 +979,8 @@
     FPGAKernelAttributesINTEL = 5897,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
+    AtomicFloat32AddEXT = 6033,
+    AtomicFloat64AddEXT = 6034,
 }
 
 enum RayFlagsShift : uint
@@ -1592,6 +1594,7 @@
     OpRayQueryGetWorldRayOriginKHR = 6030,
     OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
     OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
+    OpAtomicFAddEXT = 6035,
 }