summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Kessenich <cepheus@frii.com>2017-02-15 11:34:58 -0700
committerJohn Kessenich <cepheus@frii.com>2017-02-15 11:34:58 -0700
commitfba846ccaed62a98e6c9885277767a6f32a9e7fd (patch)
tree3e643c395db5cc960c858eb1fa63dd949aead14f
parentc470b68225a04965bf87d35e143ae92f831e8110 (diff)
downloadSPIRV-Headers-fba846ccaed62a98e6c9885277767a6f32a9e7fd.tar.gz
SPIRV-Headers-fba846ccaed62a98e6c9885277767a6f32a9e7fd.tar.bz2
SPIRV-Headers-fba846ccaed62a98e6c9885277767a6f32a9e7fd.zip
New revisions of SPIR-V 1.0 and 1.1, and both extended instruction sets.
This includes SPV_KHR_subgroup_vote tokens.
-rw-r--r--include/spirv/1.0/extinst.opencl.std.100.grammar.json1279
-rw-r--r--include/spirv/1.0/spirv.core.grammar.json46
-rw-r--r--include/spirv/1.0/spirv.h11
-rw-r--r--include/spirv/1.0/spirv.hpp11
-rw-r--r--include/spirv/1.0/spirv.hpp1111
-rw-r--r--include/spirv/1.0/spirv.json13
-rw-r--r--include/spirv/1.0/spirv.lua9
-rw-r--r--include/spirv/1.0/spirv.py9
-rw-r--r--include/spirv/1.1/extinst.opencl.std.100.grammar.json1279
-rw-r--r--include/spirv/1.1/spirv.core.grammar.json46
-rw-r--r--include/spirv/1.1/spirv.h11
-rw-r--r--include/spirv/1.1/spirv.hpp11
-rw-r--r--include/spirv/1.1/spirv.hpp1111
-rw-r--r--include/spirv/1.1/spirv.json13
-rw-r--r--include/spirv/1.1/spirv.lua9
-rw-r--r--include/spirv/1.1/spirv.py9
16 files changed, 2744 insertions, 34 deletions
diff --git a/include/spirv/1.0/extinst.opencl.std.100.grammar.json b/include/spirv/1.0/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000..4fe4506
--- /dev/null
+++ b/include/spirv/1.0/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/include/spirv/1.0/spirv.core.grammar.json b/include/spirv/1.0/spirv.core.grammar.json
index a3c4fad..33a72d7 100644
--- a/include/spirv/1.0/spirv.core.grammar.json
+++ b/include/spirv/1.0/spirv.core.grammar.json
@@ -3027,6 +3027,47 @@
{ "kind" : "IdRef", "name" : "'Value'" }
],
"capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupReadInvocationKHR",
+ "opcode" : 4432,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
}
],
"operand_kinds" : [
@@ -5104,6 +5145,11 @@
"enumerant" : "DrawParameters",
"value" : 4427,
"extensions" : [ "SPV_KHR_shader_draw_parameters" ]
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ]
}
]
},
diff --git a/include/spirv/1.0/spirv.h b/include/spirv/1.0/spirv.h
index fa53397..902fd2a 100644
--- a/include/spirv/1.0/spirv.h
+++ b/include/spirv/1.0/spirv.h
@@ -1,5 +1,5 @@
/*
-** Copyright (c) 2014-2016 The Khronos Group Inc.
+** Copyright (c) 2014-2017 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"),
@@ -51,11 +51,11 @@
typedef unsigned int SpvId;
#define SPV_VERSION 0x10000
-#define SPV_REVISION 8
+#define SPV_REVISION 9
static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010000;
-static const unsigned int SpvRevision = 8;
+static const unsigned int SpvRevision = 9;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -608,6 +608,7 @@ typedef enum SpvCapability_ {
SpvCapabilityMultiViewport = 57,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
+ SpvCapabilitySubgroupVoteKHR = 4431,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -908,6 +909,10 @@ typedef enum SpvOp_ {
SpvOpImageSparseRead = 320,
SpvOpSubgroupBallotKHR = 4421,
SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpSubgroupReadInvocationKHR = 4432,
SpvOpMax = 0x7fffffff,
} SpvOp;
diff --git a/include/spirv/1.0/spirv.hpp b/include/spirv/1.0/spirv.hpp
index 41a9b4d..b984c0e 100644
--- a/include/spirv/1.0/spirv.hpp
+++ b/include/spirv/1.0/spirv.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2016 The Khronos Group Inc.
+// Copyright (c) 2014-2017 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10000
-#define SPV_REVISION 8
+#define SPV_REVISION 9
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010000;
-static const unsigned int Revision = 8;
+static const unsigned int Revision = 9;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -604,6 +604,7 @@ enum Capability {
CapabilityMultiViewport = 57,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilitySubgroupVoteKHR = 4431,
CapabilityMax = 0x7fffffff,
};
@@ -904,6 +905,10 @@ enum Op {
OpImageSparseRead = 320,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
OpMax = 0x7fffffff,
};
diff --git a/include/spirv/1.0/spirv.hpp11 b/include/spirv/1.0/spirv.hpp11
index ca93d69..0ff60f6 100644
--- a/include/spirv/1.0/spirv.hpp11
+++ b/include/spirv/1.0/spirv.hpp11
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2016 The Khronos Group Inc.
+// Copyright (c) 2014-2017 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10000
-#define SPV_REVISION 8
+#define SPV_REVISION 9
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010000;
-static const unsigned int Revision = 8;
+static const unsigned int Revision = 9;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -604,6 +604,7 @@ enum class Capability : unsigned {
MultiViewport = 57,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ SubgroupVoteKHR = 4431,
Max = 0x7fffffff,
};
@@ -904,6 +905,10 @@ enum class Op : unsigned {
OpImageSparseRead = 320,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
Max = 0x7fffffff,
};
diff --git a/include/spirv/1.0/spirv.json b/include/spirv/1.0/spirv.json
index 66f0350..dcacbd6 100644
--- a/include/spirv/1.0/spirv.json
+++ b/include/spirv/1.0/spirv.json
@@ -6,7 +6,7 @@
"Comment":
[
[
- "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "Copyright (c) 2014-2017 The Khronos Group Inc.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and/or associated documentation files (the \"Materials\"),",
@@ -52,7 +52,7 @@
],
"MagicNumber": 119734787,
"Version": 65536,
- "Revision": 8,
+ "Revision": 9,
"OpCodeMask": 65535,
"WordCountShift": 16
},
@@ -630,7 +630,8 @@
"StorageImageWriteWithoutFormat": 56,
"MultiViewport": 57,
"SubgroupBallotKHR": 4423,
- "DrawParameters": 4427
+ "DrawParameters": 4427,
+ "SubgroupVoteKHR": 4431
}
},
{
@@ -933,7 +934,11 @@
"OpAtomicFlagClear": 319,
"OpImageSparseRead": 320,
"OpSubgroupBallotKHR": 4421,
- "OpSubgroupFirstInvocationKHR": 4422
+ "OpSubgroupFirstInvocationKHR": 4422,
+ "OpSubgroupAllKHR": 4428,
+ "OpSubgroupAnyKHR": 4429,
+ "OpSubgroupAllEqualKHR": 4430,
+ "OpSubgroupReadInvocationKHR": 4432
}
}
]
diff --git a/include/spirv/1.0/spirv.lua b/include/spirv/1.0/spirv.lua
index dc9859b..f7fc73e 100644
--- a/include/spirv/1.0/spirv.lua
+++ b/include/spirv/1.0/spirv.lua
@@ -1,4 +1,4 @@
--- Copyright (c) 2014-2016 The Khronos Group Inc.
+-- Copyright (c) 2014-2017 The Khronos Group Inc.
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and/or associated documentation files (the "Materials"),
@@ -42,7 +42,7 @@
spv = {
MagicNumber = 0x07230203,
Version = 0x00010000,
- Revision = 8,
+ Revision = 9,
OpCodeMask = 0xffff,
WordCountShift = 16,
@@ -566,6 +566,7 @@ spv = {
MultiViewport = 57,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ SubgroupVoteKHR = 4431,
},
Op = {
@@ -865,6 +866,10 @@ spv = {
OpImageSparseRead = 320,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
},
}
diff --git a/include/spirv/1.0/spirv.py b/include/spirv/1.0/spirv.py
index 91b3cbb..c547d37 100644
--- a/include/spirv/1.0/spirv.py
+++ b/include/spirv/1.0/spirv.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014-2016 The Khronos Group Inc.
+# Copyright (c) 2014-2017 The Khronos Group Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and/or associated documentation files (the "Materials"),
@@ -42,7 +42,7 @@
spv = {
'MagicNumber' : 0x07230203,
'Version' : 0x00010000,
- 'Revision' : 8,
+ 'Revision' : 9,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
@@ -566,6 +566,7 @@ spv = {
'MultiViewport' : 57,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
+ 'SubgroupVoteKHR' : 4431,
},
'Op' : {
@@ -865,6 +866,10 @@ spv = {
'OpImageSparseRead' : 320,
'OpSubgroupBallotKHR' : 4421,
'OpSubgroupFirstInvocationKHR' : 4422,
+ 'OpSubgroupAllKHR' : 4428,
+ 'OpSubgroupAnyKHR' : 4429,
+ 'OpSubgroupAllEqualKHR' : 4430,
+ 'OpSubgroupReadInvocationKHR' : 4432,
},
}
diff --git a/include/spirv/1.1/extinst.opencl.std.100.grammar.json b/include/spirv/1.1/extinst.opencl.std.100.grammar.json
new file mode 100644
index 0000000..4fe4506
--- /dev/null
+++ b/include/spirv/1.1/extinst.opencl.std.100.grammar.json
@@ -0,0 +1,1279 @@
+{
+ "copyright" : [
+ "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy",
+ "of this software and/or associated documentation files (the \"Materials\"),",
+ "to deal in the Materials without restriction, including without limitation",
+ "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
+ "and/or sell copies of the Materials, and to permit persons to whom the",
+ "Materials are furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in",
+ "all copies or substantial portions of the Materials.",
+ "",
+ "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
+ "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
+ "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
+ "",
+ "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
+ "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
+ "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
+ "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
+ "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
+ "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
+ "IN THE MATERIALS."
+ ],
+ "version" : 100,
+ "revision" : 2,
+ "instructions" : [
+ {
+ "opname" : "acos",
+ "opcode" : 0,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acosh",
+ "opcode" : 1,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "acospi",
+ "opcode" : 2,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asin",
+ "opcode" : 3,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinh",
+ "opcode" : 4,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "asinpi",
+ "opcode" : 5,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan",
+ "opcode" : 6,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2",
+ "opcode" : 7,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanh",
+ "opcode" : 8,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atanpi",
+ "opcode" : 9,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "atan2pi",
+ "opcode" : 10,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cbrt",
+ "opcode" : 11,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ceil",
+ "opcode" : 12,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "copysign",
+ "opcode" : 13,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "cos",
+ "opcode" : 14,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cosh",
+ "opcode" : 15,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cospi",
+ "opcode" : 16,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erfc",
+ "opcode" : 17,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "erf",
+ "opcode" : 18,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp",
+ "opcode" : 19,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp2",
+ "opcode" : 20,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "exp10",
+ "opcode" : 21,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "expm1",
+ "opcode" : 22,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fabs",
+ "opcode" : 23,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fdim",
+ "opcode" : 24,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "floor",
+ "opcode" : 25,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "fma",
+ "opcode" : 26,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fmax",
+ "opcode" : 27,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin",
+ "opcode" : 28,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmod",
+ "opcode" : 29,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fract",
+ "opcode" : 30,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'ptr'" }
+ ]
+ },
+ {
+ "opname" : "frexp",
+ "opcode" : 31,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'exp'" }
+ ]
+ },
+ {
+ "opname" : "hypot",
+ "opcode" : 32,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "ilogb",
+ "opcode" : 33,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ldexp",
+ "opcode" : 34,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'k'" }
+ ]
+ },
+ {
+ "opname" : "lgamma",
+ "opcode" : 35,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "lgamma_r",
+ "opcode" : 36,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'signp'" }
+ ]
+ },
+ {
+ "opname" : "log",
+ "opcode" : 37,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log2",
+ "opcode" : 38,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log10",
+ "opcode" : 39,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "log1p",
+ "opcode" : 40,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "logb",
+ "opcode" : 41,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "mad",
+ "opcode" : 42,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "maxmag",
+ "opcode" : 43,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "minmag",
+ "opcode" : 44,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "modf",
+ "opcode" : 45,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'iptr'" }
+ ]
+ },
+ {
+ "opname" : "nan",
+ "opcode" : 46,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'nancode'" }
+ ]
+ },
+ {
+ "opname" : "nextafter",
+ "opcode" : 47,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "pow",
+ "opcode" : 48,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y" }
+ ]
+ },
+ {
+ "opname" : "pown",
+ "opcode" : 49,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "powr",
+ "opcode" : 50,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remainder",
+ "opcode" : 51,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "remquo",
+ "opcode" : 52,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'quo'" }
+ ]
+ },
+ {
+ "opname" : "rint",
+ "opcode" : 53,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rootn",
+ "opcode" : 54,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "round",
+ "opcode" : 55,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "rsqrt",
+ "opcode" : 56,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sin",
+ "opcode" : 57,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sincos",
+ "opcode" : 58,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'cosval'" }
+ ]
+ },
+ {
+ "opname" : "sinh",
+ "opcode" : 59,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sinpi",
+ "opcode" : 60,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sqrt",
+ "opcode" : 61,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tan",
+ "opcode" : 62,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanh",
+ "opcode" : 63,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tanpi",
+ "opcode" : 64,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "tgamma",
+ "opcode" : 65,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "trunc",
+ "opcode" : 66,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_cos",
+ "opcode" : 67,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_divide",
+ "opcode" : 68,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_exp",
+ "opcode" : 69,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp2",
+ "opcode" : 70,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_exp10",
+ "opcode" : 71,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log",
+ "opcode" : 72,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log2",
+ "opcode" : 73,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_log10",
+ "opcode" : 74,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_powr",
+ "opcode" : 75,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "half_recip",
+ "opcode" : 76,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_rsqrt",
+ "opcode" : 77,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sin",
+ "opcode" : 78,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_sqrt",
+ "opcode" : 79,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "half_tan",
+ "opcode" : 80,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_cos",
+ "opcode" : 81,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_divide",
+ "opcode" : 82,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_exp",
+ "opcode" : 83,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp2",
+ "opcode" : 84,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_exp10",
+ "opcode" : 85,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log",
+ "opcode" : 86,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log2",
+ "opcode" : 87,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_log10",
+ "opcode" : 88,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_powr",
+ "opcode" : 89,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "native_recip",
+ "opcode" : 90,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_rsqrt",
+ "opcode" : 91,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sin",
+ "opcode" : 92,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_sqrt",
+ "opcode" : 93,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "native_tan",
+ "opcode" : 94,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs",
+ "opcode" : 141,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_abs_diff",
+ "opcode" : 142,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_add_sat",
+ "opcode" : 143,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_add_sat",
+ "opcode" : 144,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_hadd",
+ "opcode" : 145,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_hadd",
+ "opcode" : 146,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_rhadd",
+ "opcode" : 147,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_rhadd",
+ "opcode" : 148,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_clamp",
+ "opcode" : 149,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "u_clamp",
+ "opcode" : 150,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "clz",
+ "opcode" : 151,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "ctz",
+ "opcode" : 152,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_hi",
+ "opcode" : 153,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_sat",
+ "opcode" : 154,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mad_sat",
+ "opcode" : 155,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_max",
+ "opcode" : 156,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_max",
+ "opcode" : 157,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_min",
+ "opcode" : 158,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_min",
+ "opcode" : 159,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "s_mul_hi",
+ "opcode" : 160,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "rotate",
+ "opcode" : 161,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'v'" },
+ { "kind" : "IdRef", "name" : "'i'" }
+ ]
+ },
+ {
+ "opname" : "s_sub_sat",
+ "opcode" : 162,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_sub_sat",
+ "opcode" : 163,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_upsample",
+ "opcode" : 164,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "s_upsample",
+ "opcode" : 165,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'hi'" },
+ { "kind" : "IdRef", "name" : "'lo'" }
+ ]
+ },
+ {
+ "opname" : "popcount",
+ "opcode" : 166,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "s_mad24",
+ "opcode" : 167,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "u_mad24",
+ "opcode" : 168,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'z'" }
+ ]
+ },
+ {
+ "opname" : "s_mul24",
+ "opcode" : 169,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul24",
+ "opcode" : 170,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_abs",
+ "opcode" : 201,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "u_abs_diff",
+ "opcode" : 202,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mul_hi",
+ "opcode" : 203,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "u_mad_hi",
+ "opcode" : 204,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "fclamp",
+ "opcode" : 95,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'minval'" },
+ { "kind" : "IdRef", "name" : "'maxval'" }
+ ]
+ },
+ {
+ "opname" : "degrees",
+ "opcode" :96,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'radians'" }
+ ]
+ },
+ {
+ "opname" : "fmax_common",
+ "opcode" : 97,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "fmin_common",
+ "opcode" : 98,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" }
+ ]
+ },
+ {
+ "opname" : "mix",
+ "opcode" : 99,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'a'" }
+ ]
+ },
+ {
+ "opname" : "radians",
+ "opcode" : 100,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'degrees'" }
+ ]
+ },
+ {
+ "opname" : "step",
+ "opcode" : 101,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "smoothstep",
+ "opcode" : 102,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'edge0'" },
+ { "kind" : "IdRef", "name" : "'edge1'" },
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "sign",
+ "opcode" : 103,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" }
+ ]
+ },
+ {
+ "opname" : "cross",
+ "opcode" : 104,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "distance",
+ "opcode" : 105,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "length",
+ "opcode" : 106,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "normalize",
+ "opcode" : 107,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_distance",
+ "opcode" : 108,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p0'" },
+ { "kind" : "IdRef", "name" : "'p1'" }
+ ]
+ },
+ {
+ "opname" : "fast_length",
+ "opcode" : 109,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "fast_normalize",
+ "opcode" : 110,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "bitselect",
+ "opcode" : 186,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "select",
+ "opcode" : 187,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'a'" },
+ { "kind" : "IdRef", "name" : "'b'" },
+ { "kind" : "IdRef", "name" : "'c'" }
+ ]
+ },
+ {
+ "opname" : "vloadn",
+ "opcode" : 171,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstoren",
+ "opcode" : 172,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_half",
+ "opcode" : 173,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vload_halfn",
+ "opcode" : 174,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half",
+ "opcode" : 175,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_half_r",
+ "opcode" : 176,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn",
+ "opcode" : 177,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstore_halfn_r",
+ "opcode" : 178,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "vloada_halfn",
+ "opcode" : 179,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "LiteralInteger", "name" : "'n'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn",
+ "opcode" : 180,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" }
+ ]
+ },
+ {
+ "opname" : "vstorea_halfn_r",
+ "opcode" : 181,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'data'" },
+ { "kind" : "IdRef", "name" : "'offset'" },
+ { "kind" : "IdRef", "name" : "'p'" },
+ { "kind" : "FPRoundingMode", "name" : "'mode'" }
+ ]
+ },
+ {
+ "opname" : "shuffle",
+ "opcode" : 182,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "shuffle2",
+ "opcode" : 183,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'x'" },
+ { "kind" : "IdRef", "name" : "'y'" },
+ { "kind" : "IdRef", "name" : "'shuffle mask'" }
+ ]
+ },
+ {
+ "opname" : "printf",
+ "opcode" : 184,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'format'" },
+ { "kind" : "IdRef", "name" : "'additional arguments'", "quantifier" : "*" }
+ ]
+ },
+ {
+ "opname" : "prefetch",
+ "opcode" : 185,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "'ptr'" },
+ { "kind" : "IdRef", "name" : "'num elements'" }
+ ]
+ }
+ ]
+}
diff --git a/include/spirv/1.1/spirv.core.grammar.json b/include/spirv/1.1/spirv.core.grammar.json
index 088306e..f0c8553 100644
--- a/include/spirv/1.1/spirv.core.grammar.json
+++ b/include/spirv/1.1/spirv.core.grammar.json
@@ -3129,6 +3129,47 @@
{ "kind" : "IdRef", "name" : "'Value'" }
],
"capabilities" : [ "SubgroupBallotKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllKHR",
+ "opcode" : 4428,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAnyKHR",
+ "opcode" : 4429,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupAllEqualKHR",
+ "opcode" : 4430,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Predicate'" }
+ ],
+ "capabilities" : [ "SubgroupVoteKHR" ]
+ },
+ {
+ "opname" : "OpSubgroupReadInvocationKHR",
+ "opcode" : 4432,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "'Value'" },
+ { "kind" : "IdRef", "name" : "'Index'" }
+ ],
+ "capabilities" : [ "SubgroupBallotKHR" ]
}
],
"operand_kinds" : [
@@ -5267,6 +5308,11 @@
"enumerant" : "DrawParameters",
"value" : 4427,
"extensions" : [ "SPV_KHR_shader_draw_parameters" ]
+ },
+ {
+ "enumerant" : "SubgroupVoteKHR",
+ "value" : 4431,
+ "extensions" : [ "SPV_KHR_subgroup_vote" ]
}
]
},
diff --git a/include/spirv/1.1/spirv.h b/include/spirv/1.1/spirv.h
index 769c102..07e6b7a 100644
--- a/include/spirv/1.1/spirv.h
+++ b/include/spirv/1.1/spirv.h
@@ -1,5 +1,5 @@
/*
-** Copyright (c) 2014-2016 The Khronos Group Inc.
+** Copyright (c) 2014-2017 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"),
@@ -51,11 +51,11 @@
typedef unsigned int SpvId;
#define SPV_VERSION 0x10100
-#define SPV_REVISION 4
+#define SPV_REVISION 5
static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010100;
-static const unsigned int SpvRevision = 4;
+static const unsigned int SpvRevision = 5;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;
@@ -620,6 +620,7 @@ typedef enum SpvCapability_ {
SpvCapabilityPipeStorage = 60,
SpvCapabilitySubgroupBallotKHR = 4423,
SpvCapabilityDrawParameters = 4427,
+ SpvCapabilitySubgroupVoteKHR = 4431,
SpvCapabilityMax = 0x7fffffff,
} SpvCapability;
@@ -930,6 +931,10 @@ typedef enum SpvOp_ {
SpvOpModuleProcessed = 330,
SpvOpSubgroupBallotKHR = 4421,
SpvOpSubgroupFirstInvocationKHR = 4422,
+ SpvOpSubgroupAllKHR = 4428,
+ SpvOpSubgroupAnyKHR = 4429,
+ SpvOpSubgroupAllEqualKHR = 4430,
+ SpvOpSubgroupReadInvocationKHR = 4432,
SpvOpMax = 0x7fffffff,
} SpvOp;
diff --git a/include/spirv/1.1/spirv.hpp b/include/spirv/1.1/spirv.hpp
index 02426fc..3ebe831 100644
--- a/include/spirv/1.1/spirv.hpp
+++ b/include/spirv/1.1/spirv.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2016 The Khronos Group Inc.
+// Copyright (c) 2014-2017 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10100
-#define SPV_REVISION 4
+#define SPV_REVISION 5
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010100;
-static const unsigned int Revision = 4;
+static const unsigned int Revision = 5;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -616,6 +616,7 @@ enum Capability {
CapabilityPipeStorage = 60,
CapabilitySubgroupBallotKHR = 4423,
CapabilityDrawParameters = 4427,
+ CapabilitySubgroupVoteKHR = 4431,
CapabilityMax = 0x7fffffff,
};
@@ -926,6 +927,10 @@ enum Op {
OpModuleProcessed = 330,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
OpMax = 0x7fffffff,
};
diff --git a/include/spirv/1.1/spirv.hpp11 b/include/spirv/1.1/spirv.hpp11
index 2a84893..0e067fd 100644
--- a/include/spirv/1.1/spirv.hpp11
+++ b/include/spirv/1.1/spirv.hpp11
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2016 The Khronos Group Inc.
+// Copyright (c) 2014-2017 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
@@ -47,11 +47,11 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 0x10100
-#define SPV_REVISION 4
+#define SPV_REVISION 5
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010100;
-static const unsigned int Revision = 4;
+static const unsigned int Revision = 5;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@@ -616,6 +616,7 @@ enum class Capability : unsigned {
PipeStorage = 60,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ SubgroupVoteKHR = 4431,
Max = 0x7fffffff,
};
@@ -926,6 +927,10 @@ enum class Op : unsigned {
OpModuleProcessed = 330,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
Max = 0x7fffffff,
};
diff --git a/include/spirv/1.1/spirv.json b/include/spirv/1.1/spirv.json
index 5000289..95a367f 100644
--- a/include/spirv/1.1/spirv.json
+++ b/include/spirv/1.1/spirv.json
@@ -6,7 +6,7 @@
"Comment":
[
[
- "Copyright (c) 2014-2016 The Khronos Group Inc.",
+ "Copyright (c) 2014-2017 The Khronos Group Inc.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and/or associated documentation files (the \"Materials\"),",
@@ -52,7 +52,7 @@
],
"MagicNumber": 119734787,
"Version": 65792,
- "Revision": 4,
+ "Revision": 5,
"OpCodeMask": 65535,
"WordCountShift": 16
},
@@ -640,7 +640,8 @@
"NamedBarrier": 59,
"PipeStorage": 60,
"SubgroupBallotKHR": 4423,
- "DrawParameters": 4427
+ "DrawParameters": 4427,
+ "SubgroupVoteKHR": 4431
}
},
{
@@ -953,7 +954,11 @@
"OpMemoryNamedBarrier": 329,
"OpModuleProcessed": 330,
"OpSubgroupBallotKHR": 4421,
- "OpSubgroupFirstInvocationKHR": 4422
+ "OpSubgroupFirstInvocationKHR": 4422,
+ "OpSubgroupAllKHR": 4428,
+ "OpSubgroupAnyKHR": 4429,
+ "OpSubgroupAllEqualKHR": 4430,
+ "OpSubgroupReadInvocationKHR": 4432
}
}
]
diff --git a/include/spirv/1.1/spirv.lua b/include/spirv/1.1/spirv.lua
index d47a53c..52eeb07 100644
--- a/include/spirv/1.1/spirv.lua
+++ b/include/spirv/1.1/spirv.lua
@@ -1,4 +1,4 @@
--- Copyright (c) 2014-2016 The Khronos Group Inc.
+-- Copyright (c) 2014-2017 The Khronos Group Inc.
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and/or associated documentation files (the "Materials"),
@@ -42,7 +42,7 @@
spv = {
MagicNumber = 0x07230203,
Version = 0x00010100,
- Revision = 4,
+ Revision = 5,
OpCodeMask = 0xffff,
WordCountShift = 16,
@@ -578,6 +578,7 @@ spv = {
PipeStorage = 60,
SubgroupBallotKHR = 4423,
DrawParameters = 4427,
+ SubgroupVoteKHR = 4431,
},
Op = {
@@ -887,6 +888,10 @@ spv = {
OpModuleProcessed = 330,
OpSubgroupBallotKHR = 4421,
OpSubgroupFirstInvocationKHR = 4422,
+ OpSubgroupAllKHR = 4428,
+ OpSubgroupAnyKHR = 4429,
+ OpSubgroupAllEqualKHR = 4430,
+ OpSubgroupReadInvocationKHR = 4432,
},
}
diff --git a/include/spirv/1.1/spirv.py b/include/spirv/1.1/spirv.py
index 5f2e206..cce91f8 100644
--- a/include/spirv/1.1/spirv.py
+++ b/include/spirv/1.1/spirv.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014-2016 The Khronos Group Inc.
+# Copyright (c) 2014-2017 The Khronos Group Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and/or associated documentation files (the "Materials"),
@@ -42,7 +42,7 @@
spv = {
'MagicNumber' : 0x07230203,
'Version' : 0x00010100,
- 'Revision' : 4,
+ 'Revision' : 5,
'OpCodeMask' : 0xffff,
'WordCountShift' : 16,
@@ -578,6 +578,7 @@ spv = {
'PipeStorage' : 60,
'SubgroupBallotKHR' : 4423,
'DrawParameters' : 4427,
+ 'SubgroupVoteKHR' : 4431,
},
'Op' : {
@@ -887,6 +888,10 @@ spv = {
'OpModuleProcessed' : 330,
'OpSubgroupBallotKHR' : 4421,
'OpSubgroupFirstInvocationKHR' : 4422,
+ 'OpSubgroupAllKHR' : 4428,
+ 'OpSubgroupAnyKHR' : 4429,
+ 'OpSubgroupAllEqualKHR' : 4430,
+ 'OpSubgroupReadInvocationKHR' : 4432,
},
}