Upstream AP Intel extensions
authorDmitry Sidorov <dmitry.sidorov@intel.com>
Thu, 5 Nov 2020 14:16:44 +0000 (17:16 +0300)
committerDmitry Sidorov <dmitry.sidorov@intel.com>
Wed, 31 Mar 2021 14:19:27 +0000 (17:19 +0300)
SPV_INTEL_arbitrary_precision_floating_point and
SPV_INTEL_arbitrary_precision_fixed_point extensions are
being upstreamed.

Specs:
https://github.com/intel/llvm/blob/2f6e965e686354fbb25f9c177a667a646de302eb/sycl/doc/extensions/SPIRV/SPV_INTEL_arbitrary_precision_fixed_point.asciidoc
https://github.com/intel/llvm/blob/bd86b218f749ea0e20ddc18c42db491faf54014a/sycl/doc/extensions/SPIRV/SPV_INTEL_arbitrary_precision_floating_point.asciidoc

Signed-off-by: Dmitry Sidorov <dmitry.sidorov@intel.com>
include/spirv/unified1/spirv.core.grammar.json
include/spirv/unified1/spirv.cs
include/spirv/unified1/spirv.h
include/spirv/unified1/spirv.hpp
include/spirv/unified1/spirv.hpp11
include/spirv/unified1/spirv.json
include/spirv/unified1/spirv.lua
include/spirv/unified1/spirv.py
include/spirv/unified1/spv.d
tools/buildHeaders/jsonToSpirv.cpp
tools/buildHeaders/jsonToSpirv.h

index b6eeee2..03e31c7 100644 (file)
       "version" : "None"
     },
     {
+      "opname" : "OpArbitraryFloatSinCosPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5840,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatCastINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5841,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatCastFromIntINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5842,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatCastToIntINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5843,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatAddINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5846,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatSubINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5847,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatMulINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5848,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatDivINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5849,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatGTINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5850,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatGEINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5851,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatLTINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5852,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatLEINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5853,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatEQINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5854,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatRecipINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5855,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatRSqrtINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5856,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatCbrtINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5857,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatHypotINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5858,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatSqrtINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5859,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatLogINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5860,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatLog2INTEL",
+      "class"  : "@exclude",
+      "opcode" : 5861,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatLog10INTEL",
+      "class"  : "@exclude",
+      "opcode" : 5862,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatLog1pINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5863,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatExpINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5864,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatExp2INTEL",
+      "class"  : "@exclude",
+      "opcode" : 5865,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatExp10INTEL",
+      "class"  : "@exclude",
+      "opcode" : 5866,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatExpm1INTEL",
+      "class"  : "@exclude",
+      "opcode" : 5867,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatSinINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5868,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatCosINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5869,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatSinCosINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5870,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatSinPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5871,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatCosPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5872,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatASinINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5873,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatASinPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5874,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatACosINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5875,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatACosPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5876,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatATanINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5877,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatATanPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5878,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatATan2INTEL",
+      "class"  : "@exclude",
+      "opcode" : 5879,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatPowINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5880,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatPowRINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5881,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'M2'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatPowNINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5882,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpArbitraryFloatPowNINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5882,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'A'" },
+        { "kind" : "LiteralInteger", "name" : "'M1'" },
+        { "kind" : "IdRef", "name" : "'B'" },
+        { "kind" : "LiteralInteger", "name" : "'Mout'" },
+        { "kind" : "LiteralInteger", "name" : "'EnableSubnormals'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingMode'" },
+        { "kind" : "LiteralInteger", "name" : "'RoundingAccuracy'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFloatingPointINTEL" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpLoopControlINTEL",
       "class"  : "Reserved",
       "opcode" : 5887,
       "version" : "None"
     },
     {
+      "opname" : "OpFixedSqrtINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5923,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedRecipINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5924,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedRsqrtINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5925,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedSinINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5926,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedCosINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5927,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedSinCosINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5928,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedSinPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5929,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedCosPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5930,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedSinCosPiINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5931,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedLogINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5932,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFixedExpINTEL",
+      "class"  : "@exclude",
+      "opcode" : 5933,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Input Type'" },
+        { "kind" : "IdRef", "name" : "'Input'" },
+        { "kind" : "LiteralInteger", "name" : "'S'" },
+        { "kind" : "LiteralInteger", "name" : "'I'" },
+        { "kind" : "LiteralInteger", "name" : "'rI'" },
+        { "kind" : "LiteralInteger", "name" : "'Q'" },
+        { "kind" : "LiteralInteger", "name" : "'O'" }
+      ],
+      "capabilities" : [ "ArbitraryPrecisionFixedPointINTEL" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpReadPipeBlockingINTEL",
       "class"  : "Pipe",
       "opcode" : 5946,
           "value" : 1,
           "capabilities" : [ "FunctionFloatControlINTEL" ],
           "version" : "None"
+       }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "QuantizationModes",
+      "enumerants" : [
+        {
+          "enumerant" : "TRN",
+          "value" : 0
+        },
+        {
+          "enumerant" : "TRN_ZERO",
+          "value" : 1
+        },
+        {
+          "enumerant" : "RND",
+          "value" : 2
+        },
+        {
+          "enumerant" : "RND_ZERO",
+          "value" : 3
+        },
+        {
+          "enumerant" : "RND_INF",
+          "value" : 4
+        },
+        {
+          "enumerant" : "RND_MIN_INF",
+          "value" : 5
+        },
+        {
+          "enumerant" : "RND_CONV",
+          "value" : 6
+        },
+        {
+          "enumerant" : "RND_CONV_ODD",
+          "value" : 7
         }
       ]
     },
     },
     {
       "category" : "ValueEnum",
+      "kind" : "OverflowModes",
+      "enumerants" : [
+        {
+          "enumerant" : "WRAP",
+          "value" : 0
+        },
+        {
+          "enumerant" : "SAT",
+          "value" : 1
+        },
+        {
+          "enumerant" : "SAT_ZERO",
+          "value" : 2
+        },
+        {
+          "enumerant" : "SAT_SYM",
+          "value" : 3
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
       "kind" : "LinkageType",
       "enumerants" : [
         {
           "version" : "None"
         },
         {
+          "enumerant" : "ArbitraryPrecisionFloatingPointINTEL",
+          "value" : 5845,
+          "extensions" : [ "SPV_INTEL_arbitrary_precision_floating_point" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "UnstructuredLoopControlsINTEL",
           "value" : 5886,
           "extensions" : [ "SPV_INTEL_unstructured_loop_controls" ],
           "version" : "None"
         },
         {
+          "enumerant" : "ArbitraryPrecisionFixedPointINTEL",
+          "value" : 5922,
+          "extensions" : [ "SPV_INTEL_arbitrary_precision_fixed_point" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "BlockingPipesINTEL",
           "value" : 5945,
           "extensions" : [ "SPV_INTEL_blocking_pipes" ],
index a90996c..469ad95 100644 (file)
@@ -403,6 +403,38 @@ namespace Spv
             RTN = 3,
         }
 
+        public enum FPDenormMode
+        {
+            Preserve = 0,
+            FlushToZero = 1,
+        }
+
+        public enum FPOperationMode
+        {
+            IEEE = 0,
+            ALT = 1,
+        }
+
+        public enum QuantizationModes
+        {
+            TRN = 0,
+            TRN_ZERO = 1,
+            RND = 2,
+            RND_ZERO = 3,
+            RND_INF = 4,
+            RND_MIN_INF = 5,
+            RND_CONV = 6,
+            RND_CONV_ODD = 7,
+        }
+
+        public enum OverflowModes
+        {
+            WRAP = 0,
+            SAT = 1,
+            SAT_ZERO = 2,
+            SAT_SYM = 3,
+        }
+
         public enum LinkageType
         {
             Export = 0,
@@ -1029,6 +1061,7 @@ namespace Spv
             FPGAMemoryAttributesINTEL = 5824,
             FPFastMathModeINTEL = 5837,
             ArbitraryPrecisionIntegersINTEL = 5844,
+            ArbitraryPrecisionFloatingPointINTEL = 5845,
             UnstructuredLoopControlsINTEL = 5886,
             FPGALoopControlsINTEL = 5888,
             KernelAttributesINTEL = 5892,
@@ -1037,6 +1070,7 @@ namespace Spv
             FPGAClusterAttributesINTEL = 5904,
             LoopFuseINTEL = 5906,
             FPGABufferLocationINTEL = 5920,
+            ArbitraryPrecisionFixedPointINTEL = 5922,
             USMStorageClassesINTEL = 5935,
             IOPipesINTEL = 5943,
             BlockingPipesINTEL = 5945,
@@ -1111,18 +1145,6 @@ namespace Spv
             Horizontal4Pixels = 0x00000008,
         }
 
-        public enum FPDenormMode
-        {
-            Preserve = 0,
-            FlushToZero = 1,
-        }
-
-        public enum FPOperationMode
-        {
-            IEEE = 0,
-            ALT = 1,
-        }
-
         public enum Op
         {
             OpNop = 0,
@@ -1677,7 +1699,59 @@ namespace Spv
             OpVariableLengthArrayINTEL = 5818,
             OpSaveMemoryINTEL = 5819,
             OpRestoreMemoryINTEL = 5820,
+            OpArbitraryFloatSinCosPiINTEL = 5840,
+            OpArbitraryFloatCastINTEL = 5841,
+            OpArbitraryFloatCastFromIntINTEL = 5842,
+            OpArbitraryFloatCastToIntINTEL = 5843,
+            OpArbitraryFloatAddINTEL = 5846,
+            OpArbitraryFloatSubINTEL = 5847,
+            OpArbitraryFloatMulINTEL = 5848,
+            OpArbitraryFloatDivINTEL = 5849,
+            OpArbitraryFloatGTINTEL = 5850,
+            OpArbitraryFloatGEINTEL = 5851,
+            OpArbitraryFloatLTINTEL = 5852,
+            OpArbitraryFloatLEINTEL = 5853,
+            OpArbitraryFloatEQINTEL = 5854,
+            OpArbitraryFloatRecipINTEL = 5855,
+            OpArbitraryFloatRSqrtINTEL = 5856,
+            OpArbitraryFloatCbrtINTEL = 5857,
+            OpArbitraryFloatHypotINTEL = 5858,
+            OpArbitraryFloatSqrtINTEL = 5859,
+            OpArbitraryFloatLogINTEL = 5860,
+            OpArbitraryFloatLog2INTEL = 5861,
+            OpArbitraryFloatLog10INTEL = 5862,
+            OpArbitraryFloatLog1pINTEL = 5863,
+            OpArbitraryFloatExpINTEL = 5864,
+            OpArbitraryFloatExp2INTEL = 5865,
+            OpArbitraryFloatExp10INTEL = 5866,
+            OpArbitraryFloatExpm1INTEL = 5867,
+            OpArbitraryFloatSinINTEL = 5868,
+            OpArbitraryFloatCosINTEL = 5869,
+            OpArbitraryFloatSinCosINTEL = 5870,
+            OpArbitraryFloatSinPiINTEL = 5871,
+            OpArbitraryFloatCosPiINTEL = 5872,
+            OpArbitraryFloatASinINTEL = 5873,
+            OpArbitraryFloatASinPiINTEL = 5874,
+            OpArbitraryFloatACosINTEL = 5875,
+            OpArbitraryFloatACosPiINTEL = 5876,
+            OpArbitraryFloatATanINTEL = 5877,
+            OpArbitraryFloatATanPiINTEL = 5878,
+            OpArbitraryFloatATan2INTEL = 5879,
+            OpArbitraryFloatPowINTEL = 5880,
+            OpArbitraryFloatPowRINTEL = 5881,
+            OpArbitraryFloatPowNINTEL = 5882,
             OpLoopControlINTEL = 5887,
+            OpFixedSqrtINTEL = 5923,
+            OpFixedRecipINTEL = 5924,
+            OpFixedRsqrtINTEL = 5925,
+            OpFixedSinINTEL = 5926,
+            OpFixedCosINTEL = 5927,
+            OpFixedSinCosINTEL = 5928,
+            OpFixedSinPiINTEL = 5929,
+            OpFixedCosPiINTEL = 5930,
+            OpFixedSinCosPiINTEL = 5931,
+            OpFixedLogINTEL = 5932,
+            OpFixedExpINTEL = 5933,
             OpPtrCastToCrossWorkgroupINTEL = 5934,
             OpCrossWorkgroupCastToPtrINTEL = 5938,
             OpReadPipeBlockingINTEL = 5946,
index 1bab0aa..dec3b8c 100644 (file)
@@ -410,6 +410,38 @@ typedef enum SpvFPRoundingMode_ {
     SpvFPRoundingModeMax = 0x7fffffff,
 } SpvFPRoundingMode;
 
+typedef enum SpvFPDenormMode_ {
+    SpvFPDenormModePreserve = 0,
+    SpvFPDenormModeFlushToZero = 1,
+    SpvFPDenormModeMax = 0x7fffffff,
+} SpvFPDenormMode;
+
+typedef enum SpvFPOperationMode_ {
+    SpvFPOperationModeIEEE = 0,
+    SpvFPOperationModeALT = 1,
+    SpvFPOperationModeMax = 0x7fffffff,
+} SpvFPOperationMode;
+
+typedef enum SpvQuantizationModes_ {
+    SpvQuantizationModesTRN = 0,
+    SpvQuantizationModesTRN_ZERO = 1,
+    SpvQuantizationModesRND = 2,
+    SpvQuantizationModesRND_ZERO = 3,
+    SpvQuantizationModesRND_INF = 4,
+    SpvQuantizationModesRND_MIN_INF = 5,
+    SpvQuantizationModesRND_CONV = 6,
+    SpvQuantizationModesRND_CONV_ODD = 7,
+    SpvQuantizationModesMax = 0x7fffffff,
+} SpvQuantizationModes;
+
+typedef enum SpvOverflowModes_ {
+    SpvOverflowModesWRAP = 0,
+    SpvOverflowModesSAT = 1,
+    SpvOverflowModesSAT_ZERO = 2,
+    SpvOverflowModesSAT_SYM = 3,
+    SpvOverflowModesMax = 0x7fffffff,
+} SpvOverflowModes;
+
 typedef enum SpvLinkageType_ {
     SpvLinkageTypeExport = 0,
     SpvLinkageTypeImport = 1,
@@ -1029,6 +1061,7 @@ typedef enum SpvCapability_ {
     SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
     SpvCapabilityFPFastMathModeINTEL = 5837,
     SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
+    SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
     SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
     SpvCapabilityFPGALoopControlsINTEL = 5888,
     SpvCapabilityKernelAttributesINTEL = 5892,
@@ -1037,6 +1070,7 @@ typedef enum SpvCapability_ {
     SpvCapabilityFPGAClusterAttributesINTEL = 5904,
     SpvCapabilityLoopFuseINTEL = 5906,
     SpvCapabilityFPGABufferLocationINTEL = 5920,
+    SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
     SpvCapabilityUSMStorageClassesINTEL = 5935,
     SpvCapabilityIOPipesINTEL = 5943,
     SpvCapabilityBlockingPipesINTEL = 5945,
@@ -1110,18 +1144,6 @@ typedef enum SpvFragmentShadingRateMask_ {
     SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
 } SpvFragmentShadingRateMask;
 
-typedef enum SpvFPDenormMode_ {
-    SpvFPDenormModePreserve = 0,
-    SpvFPDenormModeFlushToZero = 1,
-    SpvFPDenormModeMax = 0x7fffffff,
-} SpvFPDenormMode;
-
-typedef enum SpvFPOperationMode_ {
-    SpvFPOperationModeIEEE = 0,
-    SpvFPOperationModeALT = 1,
-    SpvFPOperationModeMax = 0x7fffffff,
-} SpvFPOperationMode;
-
 typedef enum SpvOp_ {
     SpvOpNop = 0,
     SpvOpUndef = 1,
@@ -1675,7 +1697,59 @@ typedef enum SpvOp_ {
     SpvOpVariableLengthArrayINTEL = 5818,
     SpvOpSaveMemoryINTEL = 5819,
     SpvOpRestoreMemoryINTEL = 5820,
+    SpvOpArbitraryFloatSinCosPiINTEL = 5840,
+    SpvOpArbitraryFloatCastINTEL = 5841,
+    SpvOpArbitraryFloatCastFromIntINTEL = 5842,
+    SpvOpArbitraryFloatCastToIntINTEL = 5843,
+    SpvOpArbitraryFloatAddINTEL = 5846,
+    SpvOpArbitraryFloatSubINTEL = 5847,
+    SpvOpArbitraryFloatMulINTEL = 5848,
+    SpvOpArbitraryFloatDivINTEL = 5849,
+    SpvOpArbitraryFloatGTINTEL = 5850,
+    SpvOpArbitraryFloatGEINTEL = 5851,
+    SpvOpArbitraryFloatLTINTEL = 5852,
+    SpvOpArbitraryFloatLEINTEL = 5853,
+    SpvOpArbitraryFloatEQINTEL = 5854,
+    SpvOpArbitraryFloatRecipINTEL = 5855,
+    SpvOpArbitraryFloatRSqrtINTEL = 5856,
+    SpvOpArbitraryFloatCbrtINTEL = 5857,
+    SpvOpArbitraryFloatHypotINTEL = 5858,
+    SpvOpArbitraryFloatSqrtINTEL = 5859,
+    SpvOpArbitraryFloatLogINTEL = 5860,
+    SpvOpArbitraryFloatLog2INTEL = 5861,
+    SpvOpArbitraryFloatLog10INTEL = 5862,
+    SpvOpArbitraryFloatLog1pINTEL = 5863,
+    SpvOpArbitraryFloatExpINTEL = 5864,
+    SpvOpArbitraryFloatExp2INTEL = 5865,
+    SpvOpArbitraryFloatExp10INTEL = 5866,
+    SpvOpArbitraryFloatExpm1INTEL = 5867,
+    SpvOpArbitraryFloatSinINTEL = 5868,
+    SpvOpArbitraryFloatCosINTEL = 5869,
+    SpvOpArbitraryFloatSinCosINTEL = 5870,
+    SpvOpArbitraryFloatSinPiINTEL = 5871,
+    SpvOpArbitraryFloatCosPiINTEL = 5872,
+    SpvOpArbitraryFloatASinINTEL = 5873,
+    SpvOpArbitraryFloatASinPiINTEL = 5874,
+    SpvOpArbitraryFloatACosINTEL = 5875,
+    SpvOpArbitraryFloatACosPiINTEL = 5876,
+    SpvOpArbitraryFloatATanINTEL = 5877,
+    SpvOpArbitraryFloatATanPiINTEL = 5878,
+    SpvOpArbitraryFloatATan2INTEL = 5879,
+    SpvOpArbitraryFloatPowINTEL = 5880,
+    SpvOpArbitraryFloatPowRINTEL = 5881,
+    SpvOpArbitraryFloatPowNINTEL = 5882,
     SpvOpLoopControlINTEL = 5887,
+    SpvOpFixedSqrtINTEL = 5923,
+    SpvOpFixedRecipINTEL = 5924,
+    SpvOpFixedRsqrtINTEL = 5925,
+    SpvOpFixedSinINTEL = 5926,
+    SpvOpFixedCosINTEL = 5927,
+    SpvOpFixedSinCosINTEL = 5928,
+    SpvOpFixedSinPiINTEL = 5929,
+    SpvOpFixedCosPiINTEL = 5930,
+    SpvOpFixedSinCosPiINTEL = 5931,
+    SpvOpFixedLogINTEL = 5932,
+    SpvOpFixedExpINTEL = 5933,
     SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
     SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
     SpvOpReadPipeBlockingINTEL = 5946,
@@ -2259,9 +2333,61 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
     case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+    case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
index 5df8e47..737581d 100644 (file)
@@ -406,6 +406,38 @@ enum FPRoundingMode {
     FPRoundingModeMax = 0x7fffffff,
 };
 
+enum FPDenormMode {
+    FPDenormModePreserve = 0,
+    FPDenormModeFlushToZero = 1,
+    FPDenormModeMax = 0x7fffffff,
+};
+
+enum FPOperationMode {
+    FPOperationModeIEEE = 0,
+    FPOperationModeALT = 1,
+    FPOperationModeMax = 0x7fffffff,
+};
+
+enum QuantizationModes {
+    QuantizationModesTRN = 0,
+    QuantizationModesTRN_ZERO = 1,
+    QuantizationModesRND = 2,
+    QuantizationModesRND_ZERO = 3,
+    QuantizationModesRND_INF = 4,
+    QuantizationModesRND_MIN_INF = 5,
+    QuantizationModesRND_CONV = 6,
+    QuantizationModesRND_CONV_ODD = 7,
+    QuantizationModesMax = 0x7fffffff,
+};
+
+enum OverflowModes {
+    OverflowModesWRAP = 0,
+    OverflowModesSAT = 1,
+    OverflowModesSAT_ZERO = 2,
+    OverflowModesSAT_SYM = 3,
+    OverflowModesMax = 0x7fffffff,
+};
+
 enum LinkageType {
     LinkageTypeExport = 0,
     LinkageTypeImport = 1,
@@ -1025,6 +1057,7 @@ enum Capability {
     CapabilityFPGAMemoryAttributesINTEL = 5824,
     CapabilityFPFastMathModeINTEL = 5837,
     CapabilityArbitraryPrecisionIntegersINTEL = 5844,
+    CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
     CapabilityUnstructuredLoopControlsINTEL = 5886,
     CapabilityFPGALoopControlsINTEL = 5888,
     CapabilityKernelAttributesINTEL = 5892,
@@ -1033,6 +1066,7 @@ enum Capability {
     CapabilityFPGAClusterAttributesINTEL = 5904,
     CapabilityLoopFuseINTEL = 5906,
     CapabilityFPGABufferLocationINTEL = 5920,
+    CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
     CapabilityUSMStorageClassesINTEL = 5935,
     CapabilityIOPipesINTEL = 5943,
     CapabilityBlockingPipesINTEL = 5945,
@@ -1106,18 +1140,6 @@ enum FragmentShadingRateMask {
     FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
 };
 
-enum FPDenormMode {
-    FPDenormModePreserve = 0,
-    FPDenormModeFlushToZero = 1,
-    FPDenormModeMax = 0x7fffffff,
-};
-
-enum FPOperationMode {
-    FPOperationModeIEEE = 0,
-    FPOperationModeALT = 1,
-    FPOperationModeMax = 0x7fffffff,
-};
-
 enum Op {
     OpNop = 0,
     OpUndef = 1,
@@ -1671,7 +1693,59 @@ enum Op {
     OpVariableLengthArrayINTEL = 5818,
     OpSaveMemoryINTEL = 5819,
     OpRestoreMemoryINTEL = 5820,
+    OpArbitraryFloatSinCosPiINTEL = 5840,
+    OpArbitraryFloatCastINTEL = 5841,
+    OpArbitraryFloatCastFromIntINTEL = 5842,
+    OpArbitraryFloatCastToIntINTEL = 5843,
+    OpArbitraryFloatAddINTEL = 5846,
+    OpArbitraryFloatSubINTEL = 5847,
+    OpArbitraryFloatMulINTEL = 5848,
+    OpArbitraryFloatDivINTEL = 5849,
+    OpArbitraryFloatGTINTEL = 5850,
+    OpArbitraryFloatGEINTEL = 5851,
+    OpArbitraryFloatLTINTEL = 5852,
+    OpArbitraryFloatLEINTEL = 5853,
+    OpArbitraryFloatEQINTEL = 5854,
+    OpArbitraryFloatRecipINTEL = 5855,
+    OpArbitraryFloatRSqrtINTEL = 5856,
+    OpArbitraryFloatCbrtINTEL = 5857,
+    OpArbitraryFloatHypotINTEL = 5858,
+    OpArbitraryFloatSqrtINTEL = 5859,
+    OpArbitraryFloatLogINTEL = 5860,
+    OpArbitraryFloatLog2INTEL = 5861,
+    OpArbitraryFloatLog10INTEL = 5862,
+    OpArbitraryFloatLog1pINTEL = 5863,
+    OpArbitraryFloatExpINTEL = 5864,
+    OpArbitraryFloatExp2INTEL = 5865,
+    OpArbitraryFloatExp10INTEL = 5866,
+    OpArbitraryFloatExpm1INTEL = 5867,
+    OpArbitraryFloatSinINTEL = 5868,
+    OpArbitraryFloatCosINTEL = 5869,
+    OpArbitraryFloatSinCosINTEL = 5870,
+    OpArbitraryFloatSinPiINTEL = 5871,
+    OpArbitraryFloatCosPiINTEL = 5872,
+    OpArbitraryFloatASinINTEL = 5873,
+    OpArbitraryFloatASinPiINTEL = 5874,
+    OpArbitraryFloatACosINTEL = 5875,
+    OpArbitraryFloatACosPiINTEL = 5876,
+    OpArbitraryFloatATanINTEL = 5877,
+    OpArbitraryFloatATanPiINTEL = 5878,
+    OpArbitraryFloatATan2INTEL = 5879,
+    OpArbitraryFloatPowINTEL = 5880,
+    OpArbitraryFloatPowRINTEL = 5881,
+    OpArbitraryFloatPowNINTEL = 5882,
     OpLoopControlINTEL = 5887,
+    OpFixedSqrtINTEL = 5923,
+    OpFixedRecipINTEL = 5924,
+    OpFixedRsqrtINTEL = 5925,
+    OpFixedSinINTEL = 5926,
+    OpFixedCosINTEL = 5927,
+    OpFixedSinCosINTEL = 5928,
+    OpFixedSinPiINTEL = 5929,
+    OpFixedCosPiINTEL = 5930,
+    OpFixedSinCosPiINTEL = 5931,
+    OpFixedLogINTEL = 5932,
+    OpFixedExpINTEL = 5933,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpReadPipeBlockingINTEL = 5946,
@@ -2255,9 +2329,61 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+    case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
     case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
     case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
     case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
index 539ddd6..b2a0d60 100644 (file)
@@ -406,6 +406,38 @@ enum class FPRoundingMode : unsigned {
     Max = 0x7fffffff,
 };
 
+enum class FPDenormMode : unsigned {
+    Preserve = 0,
+    FlushToZero = 1,
+    Max = 0x7fffffff,
+};
+
+enum class FPOperationMode : unsigned {
+    IEEE = 0,
+    ALT = 1,
+    Max = 0x7fffffff,
+};
+
+enum class QuantizationModes : unsigned {
+    TRN = 0,
+    TRN_ZERO = 1,
+    RND = 2,
+    RND_ZERO = 3,
+    RND_INF = 4,
+    RND_MIN_INF = 5,
+    RND_CONV = 6,
+    RND_CONV_ODD = 7,
+    Max = 0x7fffffff,
+};
+
+enum class OverflowModes : unsigned {
+    WRAP = 0,
+    SAT = 1,
+    SAT_ZERO = 2,
+    SAT_SYM = 3,
+    Max = 0x7fffffff,
+};
+
 enum class LinkageType : unsigned {
     Export = 0,
     Import = 1,
@@ -1025,6 +1057,7 @@ enum class Capability : unsigned {
     FPGAMemoryAttributesINTEL = 5824,
     FPFastMathModeINTEL = 5837,
     ArbitraryPrecisionIntegersINTEL = 5844,
+    ArbitraryPrecisionFloatingPointINTEL = 5845,
     UnstructuredLoopControlsINTEL = 5886,
     FPGALoopControlsINTEL = 5888,
     KernelAttributesINTEL = 5892,
@@ -1033,6 +1066,7 @@ enum class Capability : unsigned {
     FPGAClusterAttributesINTEL = 5904,
     LoopFuseINTEL = 5906,
     FPGABufferLocationINTEL = 5920,
+    ArbitraryPrecisionFixedPointINTEL = 5922,
     USMStorageClassesINTEL = 5935,
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
@@ -1106,18 +1140,6 @@ enum class FragmentShadingRateMask : unsigned {
     Horizontal4Pixels = 0x00000008,
 };
 
-enum class FPDenormMode : unsigned {
-    Preserve = 0,
-    FlushToZero = 1,
-    Max = 0x7fffffff,
-};
-
-enum class FPOperationMode : unsigned {
-    IEEE = 0,
-    ALT = 1,
-    Max = 0x7fffffff,
-};
-
 enum class Op : unsigned {
     OpNop = 0,
     OpUndef = 1,
@@ -1671,7 +1693,59 @@ enum class Op : unsigned {
     OpVariableLengthArrayINTEL = 5818,
     OpSaveMemoryINTEL = 5819,
     OpRestoreMemoryINTEL = 5820,
+    OpArbitraryFloatSinCosPiINTEL = 5840,
+    OpArbitraryFloatCastINTEL = 5841,
+    OpArbitraryFloatCastFromIntINTEL = 5842,
+    OpArbitraryFloatCastToIntINTEL = 5843,
+    OpArbitraryFloatAddINTEL = 5846,
+    OpArbitraryFloatSubINTEL = 5847,
+    OpArbitraryFloatMulINTEL = 5848,
+    OpArbitraryFloatDivINTEL = 5849,
+    OpArbitraryFloatGTINTEL = 5850,
+    OpArbitraryFloatGEINTEL = 5851,
+    OpArbitraryFloatLTINTEL = 5852,
+    OpArbitraryFloatLEINTEL = 5853,
+    OpArbitraryFloatEQINTEL = 5854,
+    OpArbitraryFloatRecipINTEL = 5855,
+    OpArbitraryFloatRSqrtINTEL = 5856,
+    OpArbitraryFloatCbrtINTEL = 5857,
+    OpArbitraryFloatHypotINTEL = 5858,
+    OpArbitraryFloatSqrtINTEL = 5859,
+    OpArbitraryFloatLogINTEL = 5860,
+    OpArbitraryFloatLog2INTEL = 5861,
+    OpArbitraryFloatLog10INTEL = 5862,
+    OpArbitraryFloatLog1pINTEL = 5863,
+    OpArbitraryFloatExpINTEL = 5864,
+    OpArbitraryFloatExp2INTEL = 5865,
+    OpArbitraryFloatExp10INTEL = 5866,
+    OpArbitraryFloatExpm1INTEL = 5867,
+    OpArbitraryFloatSinINTEL = 5868,
+    OpArbitraryFloatCosINTEL = 5869,
+    OpArbitraryFloatSinCosINTEL = 5870,
+    OpArbitraryFloatSinPiINTEL = 5871,
+    OpArbitraryFloatCosPiINTEL = 5872,
+    OpArbitraryFloatASinINTEL = 5873,
+    OpArbitraryFloatASinPiINTEL = 5874,
+    OpArbitraryFloatACosINTEL = 5875,
+    OpArbitraryFloatACosPiINTEL = 5876,
+    OpArbitraryFloatATanINTEL = 5877,
+    OpArbitraryFloatATanPiINTEL = 5878,
+    OpArbitraryFloatATan2INTEL = 5879,
+    OpArbitraryFloatPowINTEL = 5880,
+    OpArbitraryFloatPowRINTEL = 5881,
+    OpArbitraryFloatPowNINTEL = 5882,
     OpLoopControlINTEL = 5887,
+    OpFixedSqrtINTEL = 5923,
+    OpFixedRecipINTEL = 5924,
+    OpFixedRsqrtINTEL = 5925,
+    OpFixedSinINTEL = 5926,
+    OpFixedCosINTEL = 5927,
+    OpFixedSinCosINTEL = 5928,
+    OpFixedSinPiINTEL = 5929,
+    OpFixedCosPiINTEL = 5930,
+    OpFixedSinCosPiINTEL = 5931,
+    OpFixedLogINTEL = 5932,
+    OpFixedExpINTEL = 5933,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpReadPipeBlockingINTEL = 5946,
@@ -2255,9 +2329,61 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
     case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
+    case Op::OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
index a03be06..ace7806 100644 (file)
                 }
             },
             {
+                "Name": "FPDenormMode",
+                "Type": "Value",
+                "Values":
+                {
+                    "Preserve": 0,
+                    "FlushToZero": 1
+                }
+            },
+            {
+                "Name": "FPOperationMode",
+                "Type": "Value",
+                "Values":
+                {
+                    "IEEE": 0,
+                    "ALT": 1
+                }
+            },
+            {
+                "Name": "QuantizationModes",
+                "Type": "Value",
+                "Values":
+                {
+                    "TRN": 0,
+                    "TRN_ZERO": 1,
+                    "RND": 2,
+                    "RND_ZERO": 3,
+                    "RND_INF": 4,
+                    "RND_MIN_INF": 5,
+                    "RND_CONV": 6,
+                    "RND_CONV_ODD": 7
+                }
+            },
+            {
+                "Name": "OverflowModes",
+                "Type": "Value",
+                "Values":
+                {
+                    "WRAP": 0,
+                    "SAT": 1,
+                    "SAT_ZERO": 2,
+                    "SAT_SYM": 3
+                }
+            },
+            {
                 "Name": "LinkageType",
                 "Type": "Value",
                 "Values":
                     "FPGAMemoryAttributesINTEL": 5824,
                     "FPFastMathModeINTEL": 5837,
                     "ArbitraryPrecisionIntegersINTEL": 5844,
+                    "ArbitraryPrecisionFloatingPointINTEL": 5845,
                     "UnstructuredLoopControlsINTEL": 5886,
                     "FPGALoopControlsINTEL": 5888,
                     "KernelAttributesINTEL": 5892,
                     "FPGAClusterAttributesINTEL": 5904,
                     "LoopFuseINTEL": 5906,
                     "FPGABufferLocationINTEL": 5920,
+                    "ArbitraryPrecisionFixedPointINTEL": 5922,
                     "USMStorageClassesINTEL": 5935,
                     "IOPipesINTEL": 5943,
                     "BlockingPipesINTEL": 5945,
                 }
             },
             {
-                "Name": "FPDenormMode",
-                "Type": "Value",
-                "Values":
-                {
-                    "Preserve": 0,
-                    "FlushToZero": 1
-                }
-            },
-            {
-                "Name": "FPOperationMode",
-                "Type": "Value",
-                "Values":
-                {
-                    "IEEE": 0,
-                    "ALT": 1
-                }
-            },
-            {
                 "Name": "Op",
                 "Type": "Value",
                 "Values":
                     "OpVariableLengthArrayINTEL": 5818,
                     "OpSaveMemoryINTEL": 5819,
                     "OpRestoreMemoryINTEL": 5820,
+                    "OpArbitraryFloatSinCosPiINTEL": 5840,
+                    "OpArbitraryFloatCastINTEL": 5841,
+                    "OpArbitraryFloatCastFromIntINTEL": 5842,
+                    "OpArbitraryFloatCastToIntINTEL": 5843,
+                    "OpArbitraryFloatAddINTEL": 5846,
+                    "OpArbitraryFloatSubINTEL": 5847,
+                    "OpArbitraryFloatMulINTEL": 5848,
+                    "OpArbitraryFloatDivINTEL": 5849,
+                    "OpArbitraryFloatGTINTEL": 5850,
+                    "OpArbitraryFloatGEINTEL": 5851,
+                    "OpArbitraryFloatLTINTEL": 5852,
+                    "OpArbitraryFloatLEINTEL": 5853,
+                    "OpArbitraryFloatEQINTEL": 5854,
+                    "OpArbitraryFloatRecipINTEL": 5855,
+                    "OpArbitraryFloatRSqrtINTEL": 5856,
+                    "OpArbitraryFloatCbrtINTEL": 5857,
+                    "OpArbitraryFloatHypotINTEL": 5858,
+                    "OpArbitraryFloatSqrtINTEL": 5859,
+                    "OpArbitraryFloatLogINTEL": 5860,
+                    "OpArbitraryFloatLog2INTEL": 5861,
+                    "OpArbitraryFloatLog10INTEL": 5862,
+                    "OpArbitraryFloatLog1pINTEL": 5863,
+                    "OpArbitraryFloatExpINTEL": 5864,
+                    "OpArbitraryFloatExp2INTEL": 5865,
+                    "OpArbitraryFloatExp10INTEL": 5866,
+                    "OpArbitraryFloatExpm1INTEL": 5867,
+                    "OpArbitraryFloatSinINTEL": 5868,
+                    "OpArbitraryFloatCosINTEL": 5869,
+                    "OpArbitraryFloatSinCosINTEL": 5870,
+                    "OpArbitraryFloatSinPiINTEL": 5871,
+                    "OpArbitraryFloatCosPiINTEL": 5872,
+                    "OpArbitraryFloatASinINTEL": 5873,
+                    "OpArbitraryFloatASinPiINTEL": 5874,
+                    "OpArbitraryFloatACosINTEL": 5875,
+                    "OpArbitraryFloatACosPiINTEL": 5876,
+                    "OpArbitraryFloatATanINTEL": 5877,
+                    "OpArbitraryFloatATanPiINTEL": 5878,
+                    "OpArbitraryFloatATan2INTEL": 5879,
+                    "OpArbitraryFloatPowINTEL": 5880,
+                    "OpArbitraryFloatPowRINTEL": 5881,
+                    "OpArbitraryFloatPowNINTEL": 5882,
                     "OpLoopControlINTEL": 5887,
+                    "OpFixedSqrtINTEL": 5923,
+                    "OpFixedRecipINTEL": 5924,
+                    "OpFixedRsqrtINTEL": 5925,
+                    "OpFixedSinINTEL": 5926,
+                    "OpFixedCosINTEL": 5927,
+                    "OpFixedSinCosINTEL": 5928,
+                    "OpFixedSinPiINTEL": 5929,
+                    "OpFixedCosPiINTEL": 5930,
+                    "OpFixedSinCosPiINTEL": 5931,
+                    "OpFixedLogINTEL": 5932,
+                    "OpFixedExpINTEL": 5933,
                     "OpPtrCastToCrossWorkgroupINTEL": 5934,
                     "OpCrossWorkgroupCastToPtrINTEL": 5938,
                     "OpReadPipeBlockingINTEL": 5946,
index ed0549b..26f1b69 100644 (file)
@@ -382,6 +382,34 @@ spv = {
         RTN = 3,
     },
 
+    FPDenormMode = {
+        Preserve = 0,
+        FlushToZero = 1,
+    },
+
+    FPOperationMode = {
+        IEEE = 0,
+        ALT = 1,
+    },
+
+    QuantizationModes = {
+        TRN = 0,
+        TRN_ZERO = 1,
+        RND = 2,
+        RND_ZERO = 3,
+        RND_INF = 4,
+        RND_MIN_INF = 5,
+        RND_CONV = 6,
+        RND_CONV_ODD = 7,
+    },
+
+    OverflowModes = {
+        WRAP = 0,
+        SAT = 1,
+        SAT_ZERO = 2,
+        SAT_SYM = 3,
+    },
+
     LinkageType = {
         Export = 0,
         Import = 1,
@@ -987,6 +1015,7 @@ spv = {
         FPGAMemoryAttributesINTEL = 5824,
         FPFastMathModeINTEL = 5837,
         ArbitraryPrecisionIntegersINTEL = 5844,
+        ArbitraryPrecisionFloatingPointINTEL = 5845,
         UnstructuredLoopControlsINTEL = 5886,
         FPGALoopControlsINTEL = 5888,
         KernelAttributesINTEL = 5892,
@@ -995,6 +1024,7 @@ spv = {
         FPGAClusterAttributesINTEL = 5904,
         LoopFuseINTEL = 5906,
         FPGABufferLocationINTEL = 5920,
+        ArbitraryPrecisionFixedPointINTEL = 5922,
         USMStorageClassesINTEL = 5935,
         IOPipesINTEL = 5943,
         BlockingPipesINTEL = 5945,
@@ -1062,16 +1092,6 @@ spv = {
         Horizontal4Pixels = 0x00000008,
     },
 
-    FPDenormMode = {
-        Preserve = 0,
-        FlushToZero = 1,
-    },
-
-    FPOperationMode = {
-        IEEE = 0,
-        ALT = 1,
-    },
-
     Op = {
         OpNop = 0,
         OpUndef = 1,
@@ -1625,7 +1645,59 @@ spv = {
         OpVariableLengthArrayINTEL = 5818,
         OpSaveMemoryINTEL = 5819,
         OpRestoreMemoryINTEL = 5820,
+        OpArbitraryFloatSinCosPiINTEL = 5840,
+        OpArbitraryFloatCastINTEL = 5841,
+        OpArbitraryFloatCastFromIntINTEL = 5842,
+        OpArbitraryFloatCastToIntINTEL = 5843,
+        OpArbitraryFloatAddINTEL = 5846,
+        OpArbitraryFloatSubINTEL = 5847,
+        OpArbitraryFloatMulINTEL = 5848,
+        OpArbitraryFloatDivINTEL = 5849,
+        OpArbitraryFloatGTINTEL = 5850,
+        OpArbitraryFloatGEINTEL = 5851,
+        OpArbitraryFloatLTINTEL = 5852,
+        OpArbitraryFloatLEINTEL = 5853,
+        OpArbitraryFloatEQINTEL = 5854,
+        OpArbitraryFloatRecipINTEL = 5855,
+        OpArbitraryFloatRSqrtINTEL = 5856,
+        OpArbitraryFloatCbrtINTEL = 5857,
+        OpArbitraryFloatHypotINTEL = 5858,
+        OpArbitraryFloatSqrtINTEL = 5859,
+        OpArbitraryFloatLogINTEL = 5860,
+        OpArbitraryFloatLog2INTEL = 5861,
+        OpArbitraryFloatLog10INTEL = 5862,
+        OpArbitraryFloatLog1pINTEL = 5863,
+        OpArbitraryFloatExpINTEL = 5864,
+        OpArbitraryFloatExp2INTEL = 5865,
+        OpArbitraryFloatExp10INTEL = 5866,
+        OpArbitraryFloatExpm1INTEL = 5867,
+        OpArbitraryFloatSinINTEL = 5868,
+        OpArbitraryFloatCosINTEL = 5869,
+        OpArbitraryFloatSinCosINTEL = 5870,
+        OpArbitraryFloatSinPiINTEL = 5871,
+        OpArbitraryFloatCosPiINTEL = 5872,
+        OpArbitraryFloatASinINTEL = 5873,
+        OpArbitraryFloatASinPiINTEL = 5874,
+        OpArbitraryFloatACosINTEL = 5875,
+        OpArbitraryFloatACosPiINTEL = 5876,
+        OpArbitraryFloatATanINTEL = 5877,
+        OpArbitraryFloatATanPiINTEL = 5878,
+        OpArbitraryFloatATan2INTEL = 5879,
+        OpArbitraryFloatPowINTEL = 5880,
+        OpArbitraryFloatPowRINTEL = 5881,
+        OpArbitraryFloatPowNINTEL = 5882,
         OpLoopControlINTEL = 5887,
+        OpFixedSqrtINTEL = 5923,
+        OpFixedRecipINTEL = 5924,
+        OpFixedRsqrtINTEL = 5925,
+        OpFixedSinINTEL = 5926,
+        OpFixedCosINTEL = 5927,
+        OpFixedSinCosINTEL = 5928,
+        OpFixedSinPiINTEL = 5929,
+        OpFixedCosPiINTEL = 5930,
+        OpFixedSinCosPiINTEL = 5931,
+        OpFixedLogINTEL = 5932,
+        OpFixedExpINTEL = 5933,
         OpPtrCastToCrossWorkgroupINTEL = 5934,
         OpCrossWorkgroupCastToPtrINTEL = 5938,
         OpReadPipeBlockingINTEL = 5946,
index 90e71c4..ccfc786 100644 (file)
@@ -382,6 +382,34 @@ spv = {
         'RTN' : 3,
     },
 
+    'FPDenormMode' : {
+        'Preserve' : 0,
+        'FlushToZero' : 1,
+    },
+
+    'FPOperationMode' : {
+        'IEEE' : 0,
+        'ALT' : 1,
+    },
+
+    'QuantizationModes' : {
+        'TRN' : 0,
+        'TRN_ZERO' : 1,
+        'RND' : 2,
+        'RND_ZERO' : 3,
+        'RND_INF' : 4,
+        'RND_MIN_INF' : 5,
+        'RND_CONV' : 6,
+        'RND_CONV_ODD' : 7,
+    },
+
+    'OverflowModes' : {
+        'WRAP' : 0,
+        'SAT' : 1,
+        'SAT_ZERO' : 2,
+        'SAT_SYM' : 3,
+    },
+
     'LinkageType' : {
         'Export' : 0,
         'Import' : 1,
@@ -987,6 +1015,7 @@ spv = {
         'FPGAMemoryAttributesINTEL' : 5824,
         'FPFastMathModeINTEL' : 5837,
         'ArbitraryPrecisionIntegersINTEL' : 5844,
+        'ArbitraryPrecisionFloatingPointINTEL' : 5845,
         'UnstructuredLoopControlsINTEL' : 5886,
         'FPGALoopControlsINTEL' : 5888,
         'KernelAttributesINTEL' : 5892,
@@ -995,6 +1024,7 @@ spv = {
         'FPGAClusterAttributesINTEL' : 5904,
         'LoopFuseINTEL' : 5906,
         'FPGABufferLocationINTEL' : 5920,
+        'ArbitraryPrecisionFixedPointINTEL' : 5922,
         'USMStorageClassesINTEL' : 5935,
         'IOPipesINTEL' : 5943,
         'BlockingPipesINTEL' : 5945,
@@ -1062,16 +1092,6 @@ spv = {
         'Horizontal4Pixels' : 0x00000008,
     },
 
-    'FPDenormMode' : {
-        'Preserve' : 0,
-        'FlushToZero' : 1,
-    },
-
-    'FPOperationMode' : {
-        'IEEE' : 0,
-        'ALT' : 1,
-    },
-
     'Op' : {
         'OpNop' : 0,
         'OpUndef' : 1,
@@ -1625,7 +1645,59 @@ spv = {
         'OpVariableLengthArrayINTEL' : 5818,
         'OpSaveMemoryINTEL' : 5819,
         'OpRestoreMemoryINTEL' : 5820,
+        'OpArbitraryFloatSinCosPiINTEL' : 5840,
+        'OpArbitraryFloatCastINTEL' : 5841,
+        'OpArbitraryFloatCastFromIntINTEL' : 5842,
+        'OpArbitraryFloatCastToIntINTEL' : 5843,
+        'OpArbitraryFloatAddINTEL' : 5846,
+        'OpArbitraryFloatSubINTEL' : 5847,
+        'OpArbitraryFloatMulINTEL' : 5848,
+        'OpArbitraryFloatDivINTEL' : 5849,
+        'OpArbitraryFloatGTINTEL' : 5850,
+        'OpArbitraryFloatGEINTEL' : 5851,
+        'OpArbitraryFloatLTINTEL' : 5852,
+        'OpArbitraryFloatLEINTEL' : 5853,
+        'OpArbitraryFloatEQINTEL' : 5854,
+        'OpArbitraryFloatRecipINTEL' : 5855,
+        'OpArbitraryFloatRSqrtINTEL' : 5856,
+        'OpArbitraryFloatCbrtINTEL' : 5857,
+        'OpArbitraryFloatHypotINTEL' : 5858,
+        'OpArbitraryFloatSqrtINTEL' : 5859,
+        'OpArbitraryFloatLogINTEL' : 5860,
+        'OpArbitraryFloatLog2INTEL' : 5861,
+        'OpArbitraryFloatLog10INTEL' : 5862,
+        'OpArbitraryFloatLog1pINTEL' : 5863,
+        'OpArbitraryFloatExpINTEL' : 5864,
+        'OpArbitraryFloatExp2INTEL' : 5865,
+        'OpArbitraryFloatExp10INTEL' : 5866,
+        'OpArbitraryFloatExpm1INTEL' : 5867,
+        'OpArbitraryFloatSinINTEL' : 5868,
+        'OpArbitraryFloatCosINTEL' : 5869,
+        'OpArbitraryFloatSinCosINTEL' : 5870,
+        'OpArbitraryFloatSinPiINTEL' : 5871,
+        'OpArbitraryFloatCosPiINTEL' : 5872,
+        'OpArbitraryFloatASinINTEL' : 5873,
+        'OpArbitraryFloatASinPiINTEL' : 5874,
+        'OpArbitraryFloatACosINTEL' : 5875,
+        'OpArbitraryFloatACosPiINTEL' : 5876,
+        'OpArbitraryFloatATanINTEL' : 5877,
+        'OpArbitraryFloatATanPiINTEL' : 5878,
+        'OpArbitraryFloatATan2INTEL' : 5879,
+        'OpArbitraryFloatPowINTEL' : 5880,
+        'OpArbitraryFloatPowRINTEL' : 5881,
+        'OpArbitraryFloatPowNINTEL' : 5882,
         'OpLoopControlINTEL' : 5887,
+        'OpFixedSqrtINTEL' : 5923,
+        'OpFixedRecipINTEL' : 5924,
+        'OpFixedRsqrtINTEL' : 5925,
+        'OpFixedSinINTEL' : 5926,
+        'OpFixedCosINTEL' : 5927,
+        'OpFixedSinCosINTEL' : 5928,
+        'OpFixedSinPiINTEL' : 5929,
+        'OpFixedCosPiINTEL' : 5930,
+        'OpFixedSinCosPiINTEL' : 5931,
+        'OpFixedLogINTEL' : 5932,
+        'OpFixedExpINTEL' : 5933,
         'OpPtrCastToCrossWorkgroupINTEL' : 5934,
         'OpCrossWorkgroupCastToPtrINTEL' : 5938,
         'OpReadPipeBlockingINTEL' : 5946,
index 95c61c0..513eca1 100644 (file)
@@ -406,6 +406,38 @@ enum FPRoundingMode : uint
     RTN = 3,
 }
 
+enum FPDenormMode : uint
+{
+    Preserve = 0,
+    FlushToZero = 1,
+}
+
+enum FPOperationMode : uint
+{
+    IEEE = 0,
+    ALT = 1,
+}
+
+enum QuantizationModes : uint
+{
+    TRN = 0,
+    TRN_ZERO = 1,
+    RND = 2,
+    RND_ZERO = 3,
+    RND_INF = 4,
+    RND_MIN_INF = 5,
+    RND_CONV = 6,
+    RND_CONV_ODD = 7,
+}
+
+enum OverflowModes : uint
+{
+    WRAP = 0,
+    SAT = 1,
+    SAT_ZERO = 2,
+    SAT_SYM = 3,
+}
+
 enum LinkageType : uint
 {
     Export = 0,
@@ -1032,6 +1064,7 @@ enum Capability : uint
     FPGAMemoryAttributesINTEL = 5824,
     FPFastMathModeINTEL = 5837,
     ArbitraryPrecisionIntegersINTEL = 5844,
+    ArbitraryPrecisionFloatingPointINTEL = 5845,
     UnstructuredLoopControlsINTEL = 5886,
     FPGALoopControlsINTEL = 5888,
     KernelAttributesINTEL = 5892,
@@ -1040,6 +1073,7 @@ enum Capability : uint
     FPGAClusterAttributesINTEL = 5904,
     LoopFuseINTEL = 5906,
     FPGABufferLocationINTEL = 5920,
+    ArbitraryPrecisionFixedPointINTEL = 5922,
     USMStorageClassesINTEL = 5935,
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
@@ -1114,18 +1148,6 @@ enum FragmentShadingRateMask : uint
     Horizontal4Pixels = 0x00000008,
 }
 
-enum FPDenormMode : uint
-{
-    Preserve = 0,
-    FlushToZero = 1,
-}
-
-enum FPOperationMode : uint
-{
-    IEEE = 0,
-    ALT = 1,
-}
-
 enum Op : uint
 {
     OpNop = 0,
@@ -1680,7 +1702,59 @@ enum Op : uint
     OpVariableLengthArrayINTEL = 5818,
     OpSaveMemoryINTEL = 5819,
     OpRestoreMemoryINTEL = 5820,
+    OpArbitraryFloatSinCosPiINTEL = 5840,
+    OpArbitraryFloatCastINTEL = 5841,
+    OpArbitraryFloatCastFromIntINTEL = 5842,
+    OpArbitraryFloatCastToIntINTEL = 5843,
+    OpArbitraryFloatAddINTEL = 5846,
+    OpArbitraryFloatSubINTEL = 5847,
+    OpArbitraryFloatMulINTEL = 5848,
+    OpArbitraryFloatDivINTEL = 5849,
+    OpArbitraryFloatGTINTEL = 5850,
+    OpArbitraryFloatGEINTEL = 5851,
+    OpArbitraryFloatLTINTEL = 5852,
+    OpArbitraryFloatLEINTEL = 5853,
+    OpArbitraryFloatEQINTEL = 5854,
+    OpArbitraryFloatRecipINTEL = 5855,
+    OpArbitraryFloatRSqrtINTEL = 5856,
+    OpArbitraryFloatCbrtINTEL = 5857,
+    OpArbitraryFloatHypotINTEL = 5858,
+    OpArbitraryFloatSqrtINTEL = 5859,
+    OpArbitraryFloatLogINTEL = 5860,
+    OpArbitraryFloatLog2INTEL = 5861,
+    OpArbitraryFloatLog10INTEL = 5862,
+    OpArbitraryFloatLog1pINTEL = 5863,
+    OpArbitraryFloatExpINTEL = 5864,
+    OpArbitraryFloatExp2INTEL = 5865,
+    OpArbitraryFloatExp10INTEL = 5866,
+    OpArbitraryFloatExpm1INTEL = 5867,
+    OpArbitraryFloatSinINTEL = 5868,
+    OpArbitraryFloatCosINTEL = 5869,
+    OpArbitraryFloatSinCosINTEL = 5870,
+    OpArbitraryFloatSinPiINTEL = 5871,
+    OpArbitraryFloatCosPiINTEL = 5872,
+    OpArbitraryFloatASinINTEL = 5873,
+    OpArbitraryFloatASinPiINTEL = 5874,
+    OpArbitraryFloatACosINTEL = 5875,
+    OpArbitraryFloatACosPiINTEL = 5876,
+    OpArbitraryFloatATanINTEL = 5877,
+    OpArbitraryFloatATanPiINTEL = 5878,
+    OpArbitraryFloatATan2INTEL = 5879,
+    OpArbitraryFloatPowINTEL = 5880,
+    OpArbitraryFloatPowRINTEL = 5881,
+    OpArbitraryFloatPowNINTEL = 5882,
     OpLoopControlINTEL = 5887,
+    OpFixedSqrtINTEL = 5923,
+    OpFixedRecipINTEL = 5924,
+    OpFixedRsqrtINTEL = 5925,
+    OpFixedSinINTEL = 5926,
+    OpFixedCosINTEL = 5927,
+    OpFixedSinCosINTEL = 5928,
+    OpFixedSinPiINTEL = 5929,
+    OpFixedCosPiINTEL = 5930,
+    OpFixedSinCosPiINTEL = 5931,
+    OpFixedLogINTEL = 5932,
+    OpFixedExpINTEL = 5933,
     OpPtrCastToCrossWorkgroupINTEL = 5934,
     OpCrossWorkgroupCastToPtrINTEL = 5938,
     OpReadPipeBlockingINTEL = 5946,
index 17d2ea4..78f2133 100644 (file)
@@ -64,6 +64,8 @@ EnumValues FPFastMathParams;
 EnumValues FPRoundingModeParams;
 EnumValues FPDenormModeParams;
 EnumValues FPOperationModeParams;
+EnumValues QuantizationModesParams;
+EnumValues OverflowModesParams;
 EnumValues LinkageTypeParams;
 EnumValues DecorationParams;
 EnumValues BuiltInParams;
@@ -185,6 +187,10 @@ ClassOptionality ToOperandClassAndOptionality(const std::string& operandKind, co
             type = OperandFPDenormMode;
         } else if (operandKind == "FPOperationMode") {
             type = OperandFPOperationMode;
+        } else if (operandKind == "QuantizationModes") {
+            type = OperandQuantizationModes;
+        } else if (operandKind == "OverflowModes") {
+            type = OperandOverflowModes;
         } else if (operandKind == "LinkageType") {
             type = OperandLinkageType;
         } else if (operandKind == "AccessQualifier") {
@@ -493,6 +499,10 @@ void jsonToSpirv(const std::string& jsonPath, bool buildingHeaders)
             establishOperandClass(enumName, OperandFPDenormMode, &FPDenormModeParams, operandEnum, category);
         } else if (enumName == "FPOperationMode") {
             establishOperandClass(enumName, OperandFPOperationMode, &FPOperationModeParams, operandEnum, category);
+        } else if (enumName == "QuantizationModes") {
+            establishOperandClass(enumName, OperandQuantizationModes, &QuantizationModesParams, operandEnum, category);
+        } else if (enumName == "OverflowModes") {
+            establishOperandClass(enumName, OperandOverflowModes, &OverflowModesParams, operandEnum, category);
         } else if (enumName == "LinkageType") {
             establishOperandClass(enumName, OperandLinkageType, &LinkageTypeParams, operandEnum, category);
         } else if (enumName == "FunctionParameterAttribute") {
index 51aa763..b1b7d88 100644 (file)
@@ -93,6 +93,8 @@ enum OperandClass {
     OperandFragmentShadingRate,
     OperandFPDenormMode,
     OperandFPOperationMode,
+    OperandQuantizationModes,
+    OperandOverflowModes,
 
     OperandOpcode,