builtins: Add firstLeadingBit
Currently polyfilled for all backends.
HLSL should be able to map this to 'firstbithigh', but there might need
to be some special case handling for 0 (undocumented behavior). For now
just polyfill.
CTS tests: https://github.com/gpuweb/cts/pull/1004
Bug: tint:1367
Bug: tint:1449
Change-Id: I9c9a08ea93d1c4a602e0ab763e95e2eea336fb0d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/81503
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/builtin_table.inl b/src/tint/builtin_table.inl
index 595866c..9c2f22a 100644
--- a/src/tint/builtin_table.inl
+++ b/src/tint/builtin_table.inl
@@ -1720,14 +1720,14 @@
/* [78] */ 8,
/* [79] */ 0,
/* [80] */ 3,
- /* [81] */ 5,
+ /* [81] */ 7,
/* [82] */ 2,
- /* [83] */ 5,
- /* [84] */ 3,
- /* [85] */ 17,
+ /* [83] */ 17,
+ /* [84] */ 2,
+ /* [85] */ 5,
/* [86] */ 2,
- /* [87] */ 7,
- /* [88] */ 2,
+ /* [87] */ 5,
+ /* [88] */ 3,
/* [89] */ 18,
/* [90] */ 2,
/* [91] */ 6,
@@ -1740,9 +1740,9 @@
/* [98] */ 2,
/* [99] */ 20,
/* [100] */ 2,
- /* [101] */ 33,
+ /* [101] */ 35,
/* [102] */ 0,
- /* [103] */ 35,
+ /* [103] */ 33,
/* [104] */ 0,
/* [105] */ 5,
/* [106] */ 0,
@@ -1768,11 +1768,11 @@
/* [126] */ 0,
/* [127] */ 15,
/* [128] */ 2,
- /* [129] */ 25,
+ /* [129] */ 24,
/* [130] */ 23,
- /* [131] */ 14,
- /* [132] */ 22,
- /* [133] */ 24,
+ /* [131] */ 25,
+ /* [132] */ 14,
+ /* [133] */ 22,
/* [134] */ 26,
/* [135] */ 13,
/* [136] */ 31,
@@ -1790,7 +1790,7 @@
{
/* [0] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [1] */
@@ -1800,7 +1800,7 @@
{
/* [2] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [3] */
@@ -1810,32 +1810,32 @@
{
/* [4] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [5] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [6] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [7] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [8] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [9] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [10] */
@@ -1844,18 +1844,18 @@
},
{
/* [11] */
- /* usage */ ParameterUsage::kBias,
+ /* usage */ ParameterUsage::kDepthRef,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [12] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [13] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [14] */
@@ -1865,7 +1865,7 @@
{
/* [15] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [16] */
@@ -1875,17 +1875,17 @@
{
/* [17] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [18] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [19] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[99],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [20] */
@@ -1895,7 +1895,7 @@
{
/* [21] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [22] */
@@ -1904,13 +1904,13 @@
},
{
/* [23] */
- /* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kBias,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [24] */
- /* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [25] */
@@ -1930,7 +1930,7 @@
{
/* [28] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [29] */
@@ -1940,42 +1940,42 @@
{
/* [30] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [31] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [32] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [33] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [34] */
- /* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [35] */
- /* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [36] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[95],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [37] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[99],
},
{
/* [38] */
@@ -1985,7 +1985,7 @@
{
/* [39] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [40] */
@@ -1995,87 +1995,87 @@
{
/* [41] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [42] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [43] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[89],
},
{
/* [44] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [45] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [46] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kDdx,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [47] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kDdy,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [48] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[95],
},
{
/* [49] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[93],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [50] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [51] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [52] */
- /* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[81],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [53] */
- /* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[81],
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [54] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [55] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [56] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [57] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [58] */
@@ -2084,18 +2084,18 @@
},
{
/* [59] */
- /* usage */ ParameterUsage::kDepthRef,
+ /* usage */ ParameterUsage::kLevel,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [60] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [61] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [62] */
@@ -2105,7 +2105,7 @@
{
/* [63] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [64] */
@@ -2114,58 +2114,58 @@
},
{
/* [65] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kDdx,
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [66] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kDdy,
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [67] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[93],
},
{
/* [68] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [69] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [70] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kDdx,
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [71] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kDdy,
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [72] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [73] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [74] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [75] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [76] */
@@ -2175,7 +2175,7 @@
{
/* [77] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [78] */
@@ -2190,52 +2190,52 @@
{
/* [80] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [81] */
- /* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kDdx,
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [82] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kDdy,
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [83] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [84] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [85] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [86] */
- /* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [87] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[95],
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [88] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[99],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [89] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [90] */
@@ -2249,33 +2249,33 @@
},
{
/* [92] */
- /* usage */ ParameterUsage::kBias,
+ /* usage */ ParameterUsage::kDepthRef,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [93] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [94] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [95] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [96] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [97] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [98] */
@@ -2285,12 +2285,12 @@
{
/* [99] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [100] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [101] */
@@ -2305,17 +2305,17 @@
{
/* [103] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [104] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [105] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [106] */
@@ -2324,38 +2324,38 @@
},
{
/* [107] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [108] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
- },
- {
- /* [109] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
- },
- {
- /* [110] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
- },
- {
- /* [111] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [112] */
/* usage */ ParameterUsage::kDepthRef,
/* matcher indices */ &kMatcherIndices[12],
},
{
+ /* [108] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[133],
+ },
+ {
+ /* [109] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[132],
+ },
+ {
+ /* [110] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [111] */
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [112] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
/* [113] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [114] */
@@ -2365,7 +2365,7 @@
{
/* [115] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [116] */
@@ -2374,23 +2374,23 @@
},
{
/* [117] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [118] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [119] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [120] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [121] */
@@ -2399,8 +2399,8 @@
},
{
/* [122] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [123] */
@@ -2410,12 +2410,12 @@
{
/* [124] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [125] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [126] */
@@ -2430,12 +2430,12 @@
{
/* [128] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
+ /* matcher indices */ &kMatcherIndices[89],
},
{
/* [129] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [130] */
@@ -2444,18 +2444,18 @@
},
{
/* [131] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kDdx,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [132] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kDdy,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [133] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[93],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [134] */
@@ -2465,57 +2465,57 @@
{
/* [135] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [136] */
- /* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[81],
- },
- {
- /* [137] */
- /* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[81],
- },
- {
- /* [138] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
- },
- {
- /* [139] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
- },
- {
- /* [140] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
- },
- {
- /* [141] */
/* usage */ ParameterUsage::kArrayIndex,
/* matcher indices */ &kMatcherIndices[55],
},
{
- /* [142] */
- /* usage */ ParameterUsage::kDepthRef,
+ /* [137] */
+ /* usage */ ParameterUsage::kBias,
/* matcher indices */ &kMatcherIndices[12],
},
{
+ /* [138] */
+ /* usage */ ParameterUsage::kComponent,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
+ /* [139] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[125],
+ },
+ {
+ /* [140] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [141] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[91],
+ },
+ {
+ /* [142] */
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
/* [143] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [144] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [145] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [146] */
@@ -2525,12 +2525,12 @@
{
/* [147] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [148] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[89],
},
{
/* [149] */
@@ -2540,22 +2540,22 @@
{
/* [150] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [151] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kBias,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [152] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[95],
},
{
/* [153] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [154] */
@@ -2565,47 +2565,47 @@
{
/* [155] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [156] */
- /* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[91],
- },
- {
- /* [157] */
- /* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[91],
- },
- {
- /* [158] */
- /* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [159] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[125],
- },
- {
- /* [160] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
- },
- {
- /* [161] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
- },
- {
- /* [162] */
/* usage */ ParameterUsage::kArrayIndex,
/* matcher indices */ &kMatcherIndices[55],
},
{
+ /* [157] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [158] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[93],
+ },
+ {
+ /* [159] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [160] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [161] */
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [162] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
/* [163] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[97],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [164] */
@@ -2615,17 +2615,17 @@
{
/* [165] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [166] */
- /* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [167] */
- /* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [168] */
@@ -2645,7 +2645,7 @@
{
/* [171] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [172] */
@@ -2665,92 +2665,92 @@
{
/* [175] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [176] */
- /* usage */ ParameterUsage::kLevel,
+ /* usage */ ParameterUsage::kBias,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [177] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [178] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
- },
- {
- /* [179] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
- },
- {
- /* [180] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
- },
- {
- /* [181] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [182] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[12],
- },
- {
- /* [183] */
/* usage */ ParameterUsage::kComponent,
/* matcher indices */ &kMatcherIndices[55],
},
{
- /* [184] */
+ /* [179] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[115],
},
{
- /* [185] */
+ /* [180] */
/* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[135],
},
{
- /* [186] */
+ /* [181] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
- /* [187] */
+ /* [182] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
- /* [188] */
+ /* [183] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[89],
},
{
- /* [189] */
+ /* [184] */
/* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[135],
},
{
+ /* [185] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[91],
+ },
+ {
+ /* [186] */
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [187] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[95],
+ },
+ {
+ /* [188] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[131],
+ },
+ {
+ /* [189] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[132],
+ },
+ {
/* [190] */
/* usage */ ParameterUsage::kCoords,
/* matcher indices */ &kMatcherIndices[91],
},
{
/* [191] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [192] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[95],
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [193] */
@@ -2780,7 +2780,7 @@
{
/* [198] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[99],
},
{
/* [199] */
@@ -2790,22 +2790,22 @@
{
/* [200] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [201] */
- /* usage */ ParameterUsage::kLevel,
+ /* usage */ ParameterUsage::kArrayIndex,
/* matcher indices */ &kMatcherIndices[55],
},
{
/* [202] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kBias,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [203] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [204] */
@@ -2815,7 +2815,7 @@
{
/* [205] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [206] */
@@ -2830,7 +2830,7 @@
{
/* [208] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [209] */
@@ -2840,22 +2840,22 @@
{
/* [210] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [211] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [212] */
/* usage */ ParameterUsage::kLevel,
/* matcher indices */ &kMatcherIndices[55],
},
{
+ /* [212] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
/* [213] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[97],
},
{
/* [214] */
@@ -2865,42 +2865,42 @@
{
/* [215] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [216] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kDdx,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [217] */
- /* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kDdy,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [218] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[133],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [219] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [220] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [221] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [222] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
+ /* matcher indices */ &kMatcherIndices[129],
},
{
/* [223] */
@@ -2914,13 +2914,13 @@
},
{
/* [225] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[95],
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [226] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[99],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [227] */
@@ -2930,17 +2930,17 @@
{
/* [228] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [229] */
- /* usage */ ParameterUsage::kArrayIndex,
+ /* usage */ ParameterUsage::kLevel,
/* matcher indices */ &kMatcherIndices[55],
},
{
/* [230] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[97],
},
{
/* [231] */
@@ -2950,17 +2950,17 @@
{
/* [232] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [233] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kBias,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [234] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[97],
},
{
/* [235] */
@@ -2970,37 +2970,37 @@
{
/* [236] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [237] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [238] */
- /* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[89],
},
{
/* [239] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[115],
- },
- {
- /* [240] */
/* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[135],
},
{
- /* [241] */
+ /* [240] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
+ },
+ {
+ /* [241] */
+ /* usage */ ParameterUsage::kBias,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [242] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[97],
+ /* matcher indices */ &kMatcherIndices[89],
},
{
/* [243] */
@@ -3019,28 +3019,28 @@
},
{
/* [246] */
- /* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [247] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[123],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [248] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [249] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[81],
},
{
/* [250] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
+ /* matcher indices */ &kMatcherIndices[93],
},
{
/* [251] */
@@ -3050,17 +3050,17 @@
{
/* [252] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [253] */
- /* usage */ ParameterUsage::kLevel,
+ /* usage */ ParameterUsage::kBias,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [254] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [255] */
@@ -3070,7 +3070,7 @@
{
/* [256] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [257] */
@@ -3080,7 +3080,7 @@
{
/* [258] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[93],
},
{
/* [259] */
@@ -3090,32 +3090,32 @@
{
/* [260] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [261] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [262] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[133],
+ /* matcher indices */ &kMatcherIndices[57],
},
{
/* [263] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [264] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [265] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[107],
},
{
/* [266] */
@@ -3125,42 +3125,42 @@
{
/* [267] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [268] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [269] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [270] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[93],
+ /* matcher indices */ &kMatcherIndices[129],
},
{
/* [271] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [272] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [273] */
- /* usage */ ParameterUsage::kLevel,
+ /* usage */ ParameterUsage::kDepthRef,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [274] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[93],
+ /* matcher indices */ &kMatcherIndices[99],
},
{
/* [275] */
@@ -3170,57 +3170,57 @@
{
/* [276] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [277] */
- /* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[12],
- },
- {
- /* [278] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
- },
- {
- /* [279] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [280] */
/* usage */ ParameterUsage::kArrayIndex,
/* matcher indices */ &kMatcherIndices[55],
},
{
- /* [281] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [282] */
+ /* [278] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[89],
},
{
- /* [283] */
+ /* [279] */
/* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[135],
},
{
- /* [284] */
+ /* [280] */
/* usage */ ParameterUsage::kCoords,
/* matcher indices */ &kMatcherIndices[91],
},
{
+ /* [281] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[95],
+ },
+ {
+ /* [282] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[45],
+ },
+ {
+ /* [283] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [284] */
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
/* [285] */
- /* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[109],
},
{
/* [286] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
+ /* matcher indices */ &kMatcherIndices[83],
},
{
/* [287] */
@@ -3230,7 +3230,7 @@
{
/* [288] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [289] */
@@ -3240,7 +3240,7 @@
{
/* [290] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[93],
},
{
/* [291] */
@@ -3250,387 +3250,387 @@
{
/* [292] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [293] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [294] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[57],
- },
- {
- /* [295] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [296] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [297] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[107],
- },
- {
- /* [298] */
- /* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[129],
},
{
- /* [299] */
+ /* [295] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
- /* [300] */
+ /* [296] */
/* usage */ ParameterUsage::kCoords,
/* matcher indices */ &kMatcherIndices[91],
},
{
- /* [301] */
+ /* [297] */
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [298] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[117],
+ },
+ {
+ /* [299] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [300] */
/* usage */ ParameterUsage::kArrayIndex,
/* matcher indices */ &kMatcherIndices[55],
},
{
+ /* [301] */
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
/* [302] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[97],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [303] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [304] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [305] */
- /* usage */ ParameterUsage::kBias,
+ /* usage */ ParameterUsage::kDepthRef,
/* matcher indices */ &kMatcherIndices[12],
},
{
/* [306] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [307] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [308] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [309] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
- },
- {
- /* [310] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[45],
- },
- {
- /* [311] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [312] */
/* usage */ ParameterUsage::kArrayIndex,
/* matcher indices */ &kMatcherIndices[55],
},
{
+ /* [310] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[129],
+ },
+ {
+ /* [311] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[132],
+ },
+ {
+ /* [312] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[91],
+ },
+ {
/* [313] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[109],
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [314] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[85],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [315] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [316] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [317] */
- /* usage */ ParameterUsage::kArrayIndex,
+ /* usage */ ParameterUsage::kLevel,
/* matcher indices */ &kMatcherIndices[55],
},
{
/* [318] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[133],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [319] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [320] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [321] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kArrayIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [322] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* usage */ ParameterUsage::kComponent,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [323] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[123],
},
{
/* [324] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [325] */
- /* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [326] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[69],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [327] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [328] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [329] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[87],
- },
- {
- /* [330] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[117],
- },
- {
- /* [331] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [332] */
- /* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [333] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [334] */
- /* usage */ ParameterUsage::kTexture,
+ /* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[132],
},
{
- /* [335] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[131],
- },
- {
- /* [336] */
+ /* [328] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
- /* [337] */
+ /* [329] */
/* usage */ ParameterUsage::kDepthRef,
/* matcher indices */ &kMatcherIndices[12],
},
{
- /* [338] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[93],
- },
- {
- /* [339] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
- },
- {
- /* [340] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
- },
- {
- /* [341] */
- /* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [342] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[119],
- },
- {
- /* [343] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[95],
- },
- {
- /* [344] */
- /* usage */ ParameterUsage::kLevel,
+ /* [330] */
+ /* usage */ ParameterUsage::kComponent,
/* matcher indices */ &kMatcherIndices[55],
},
{
- /* [345] */
+ /* [331] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[115],
},
{
- /* [346] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [347] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [348] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [349] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [350] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [351] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[42],
- },
- {
- /* [352] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[95],
- },
- {
- /* [353] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[109],
- },
- {
- /* [354] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[48],
- },
- {
- /* [355] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [356] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[109],
- },
- {
- /* [357] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
- },
- {
- /* [358] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [359] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [360] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[51],
- },
- {
- /* [361] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [362] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[109],
- },
- {
- /* [363] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[133],
- },
- {
- /* [364] */
+ /* [332] */
/* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[135],
},
{
- /* [365] */
+ /* [333] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [334] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[133],
+ },
+ {
+ /* [335] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [336] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [337] */
+ /* usage */ ParameterUsage::kOffset,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [338] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[133],
+ },
+ {
+ /* [339] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[132],
+ },
+ {
+ /* [340] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [341] */
+ /* usage */ ParameterUsage::kDepthRef,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [342] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[39],
+ },
+ {
+ /* [343] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[39],
+ },
+ {
+ /* [344] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[39],
+ },
+ {
+ /* [345] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [346] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [347] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [348] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
+ },
+ {
+ /* [349] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
+ },
+ {
+ /* [350] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
+ },
+ {
+ /* [351] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[136],
+ },
+ {
+ /* [352] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [353] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [354] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[75],
+ },
+ {
+ /* [355] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
+ /* [356] */
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[81],
+ },
+ {
+ /* [357] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[133],
+ },
+ {
+ /* [358] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [359] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [360] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[134],
+ },
+ {
+ /* [361] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [362] */
+ /* usage */ ParameterUsage::kSampleIndex,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
+ /* [363] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
+ },
+ {
+ /* [364] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
+ },
+ {
+ /* [365] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [366] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[54],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [367] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[95],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [368] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[107],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [369] */
@@ -3665,162 +3665,162 @@
{
/* [375] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[121],
+ /* matcher indices */ &kMatcherIndices[72],
},
{
/* [376] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [377] */
- /* usage */ ParameterUsage::kSampleIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[81],
},
{
/* [378] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
- },
- {
- /* [379] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [380] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [381] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[60],
- },
- {
- /* [382] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
- },
- {
- /* [383] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[107],
- },
- {
- /* [384] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[63],
- },
- {
- /* [385] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[55],
- },
- {
- /* [386] */
- /* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[107],
- },
- {
- /* [387] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
- },
- {
- /* [388] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
- },
- {
- /* [389] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
- },
- {
- /* [390] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
- },
- {
- /* [391] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
- },
- {
- /* [392] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
- },
- {
- /* [393] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[66],
},
{
- /* [394] */
+ /* [379] */
/* usage */ ParameterUsage::kCoords,
/* matcher indices */ &kMatcherIndices[95],
},
{
- /* [395] */
+ /* [380] */
/* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[81],
+ },
+ {
+ /* [381] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[133],
+ },
+ {
+ /* [382] */
+ /* usage */ ParameterUsage::kCoords,
/* matcher indices */ &kMatcherIndices[87],
},
{
- /* [396] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[127],
+ /* [383] */
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
- /* [397] */
+ /* [384] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[129],
+ },
+ {
+ /* [385] */
/* usage */ ParameterUsage::kSampler,
/* matcher indices */ &kMatcherIndices[135],
},
{
- /* [398] */
+ /* [386] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[91],
+ },
+ {
+ /* [387] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[63],
+ },
+ {
+ /* [388] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
+ /* [389] */
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[107],
+ },
+ {
+ /* [390] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[60],
+ },
+ {
+ /* [391] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [392] */
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[107],
+ },
+ {
+ /* [393] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[129],
+ },
+ {
+ /* [394] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [395] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[91],
+ },
+ {
+ /* [396] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[121],
+ },
+ {
+ /* [397] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [398] */
+ /* usage */ ParameterUsage::kSampleIndex,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [399] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[119],
},
{
/* [400] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[95],
},
{
/* [401] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [402] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [403] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [404] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[24],
},
{
/* [405] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [406] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [407] */
@@ -3844,38 +3844,38 @@
},
{
/* [411] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[133],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [412] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [413] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [414] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[54],
},
{
/* [415] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[95],
},
{
/* [416] */
- /* usage */ ParameterUsage::kSampleIndex,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[107],
},
{
/* [417] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [418] */
@@ -3885,27 +3885,27 @@
{
/* [419] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [420] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[72],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [421] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [422] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[87],
+ /* matcher indices */ &kMatcherIndices[109],
},
{
/* [423] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[97],
},
{
/* [424] */
@@ -3915,27 +3915,27 @@
{
/* [425] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [426] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[75],
+ /* matcher indices */ &kMatcherIndices[48],
},
{
/* [427] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[55],
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [428] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[87],
+ /* matcher indices */ &kMatcherIndices[109],
},
{
/* [429] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[97],
+ /* matcher indices */ &kMatcherIndices[89],
},
{
/* [430] */
@@ -3950,109 +3950,109 @@
{
/* [432] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[93],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [433] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[95],
},
{
/* [434] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
+ /* usage */ ParameterUsage::kValue,
+ /* matcher indices */ &kMatcherIndices[109],
},
{
/* [435] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
- },
- {
- /* [436] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
- },
- {
- /* [437] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[24],
- },
- {
- /* [438] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[136],
- },
- {
- /* [439] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
- },
- {
- /* [440] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[81],
- },
- {
- /* [441] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
- },
- {
- /* [442] */
- /* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[135],
- },
- {
- /* [443] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[91],
- },
- {
- /* [444] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
- },
- {
- /* [445] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
- },
- {
- /* [446] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[10],
- },
- {
- /* [447] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [448] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
- },
- {
- /* [449] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[10],
- },
- {
- /* [450] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[111],
},
{
- /* [451] */
+ /* [436] */
/* usage */ ParameterUsage::kCoords,
/* matcher indices */ &kMatcherIndices[55],
},
{
- /* [452] */
+ /* [437] */
/* usage */ ParameterUsage::kLevel,
/* matcher indices */ &kMatcherIndices[55],
},
{
+ /* [438] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[39],
+ },
+ {
+ /* [439] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[39],
+ },
+ {
+ /* [440] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[10],
+ },
+ {
+ /* [441] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
+ },
+ {
+ /* [442] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
+ },
+ {
+ /* [443] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[10],
+ },
+ {
+ /* [444] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[115],
+ },
+ {
+ /* [445] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
+ },
+ {
+ /* [446] */
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
+ },
+ {
+ /* [447] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[93],
+ },
+ {
+ /* [448] */
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
+ },
+ {
+ /* [449] */
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[85],
+ },
+ {
+ /* [450] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
+ },
+ {
+ /* [451] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
+ },
+ {
+ /* [452] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
+ },
+ {
/* [453] */
/* usage */ ParameterUsage::kNone,
/* matcher indices */ &kMatcherIndices[21],
@@ -4069,38 +4069,38 @@
},
{
/* [456] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[127],
},
{
/* [457] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* usage */ ParameterUsage::kSampler,
+ /* matcher indices */ &kMatcherIndices[135],
},
{
/* [458] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [459] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [460] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [461] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [462] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [463] */
@@ -4145,7 +4145,7 @@
{
/* [471] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [472] */
@@ -4155,92 +4155,92 @@
{
/* [473] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [474] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [475] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [476] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [477] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [478] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [479] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [480] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [481] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [482] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [483] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [484] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[78],
},
{
/* [485] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [486] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[78],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [487] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [488] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [489] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [490] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* usage */ ParameterUsage::kCoords,
+ /* matcher indices */ &kMatcherIndices[87],
},
{
/* [491] */
@@ -4250,47 +4250,47 @@
{
/* [492] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[55],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [493] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[136],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [494] */
- /* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[83],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [495] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [496] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[91],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [497] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [498] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [499] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [500] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [501] */
@@ -4305,12 +4305,12 @@
{
/* [503] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [504] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [505] */
@@ -4345,7 +4345,7 @@
{
/* [511] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[119],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [512] */
@@ -4355,7 +4355,7 @@
{
/* [513] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
+ /* matcher indices */ &kMatcherIndices[117],
},
{
/* [514] */
@@ -4365,7 +4365,7 @@
{
/* [515] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[133],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [516] */
@@ -4375,7 +4375,7 @@
{
/* [517] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[133],
},
{
/* [518] */
@@ -4385,7 +4385,7 @@
{
/* [519] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[125],
},
{
/* [520] */
@@ -4394,18 +4394,18 @@
},
{
/* [521] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[111],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [522] */
- /* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[55],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [523] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[125],
+ /* matcher indices */ &kMatcherIndices[123],
},
{
/* [524] */
@@ -4415,7 +4415,7 @@
{
/* [525] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[115],
+ /* matcher indices */ &kMatcherIndices[111],
},
{
/* [526] */
@@ -4425,7 +4425,7 @@
{
/* [527] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[123],
+ /* matcher indices */ &kMatcherIndices[119],
},
{
/* [528] */
@@ -4434,18 +4434,18 @@
},
{
/* [529] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[115],
},
{
/* [530] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* usage */ ParameterUsage::kLevel,
+ /* matcher indices */ &kMatcherIndices[55],
},
{
/* [531] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[117],
+ /* matcher indices */ &kMatcherIndices[129],
},
{
/* [532] */
@@ -4454,60 +4454,60 @@
},
{
/* [533] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[119],
- },
- {
- /* [534] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[123],
- },
- {
- /* [535] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[117],
- },
- {
- /* [536] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[125],
- },
- {
- /* [537] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[115],
- },
- {
- /* [538] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[121],
- },
- {
- /* [539] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
- },
- {
- /* [540] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[111],
- },
- {
- /* [541] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
- },
- {
- /* [542] */
/* usage */ ParameterUsage::kNone,
/* matcher indices */ &kMatcherIndices[39],
},
{
- /* [543] */
+ /* [534] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[119],
+ },
+ {
+ /* [535] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[115],
+ },
+ {
+ /* [536] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[123],
+ },
+ {
+ /* [537] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[111],
+ },
+ {
+ /* [538] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[125],
+ },
+ {
+ /* [539] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[43],
+ },
+ {
+ /* [540] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[121],
+ },
+ {
+ /* [541] */
/* usage */ ParameterUsage::kTexture,
/* matcher indices */ &kMatcherIndices[133],
},
{
+ /* [542] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[43],
+ },
+ {
+ /* [543] */
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[130],
+ },
+ {
/* [544] */
/* usage */ ParameterUsage::kNone,
/* matcher indices */ &kMatcherIndices[43],
@@ -4525,82 +4525,82 @@
{
/* [547] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [548] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[36],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[43],
},
{
/* [549] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[33],
+ /* matcher indices */ &kMatcherIndices[134],
},
{
/* [550] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[30],
+ /* matcher indices */ &kMatcherIndices[36],
},
{
/* [551] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[27],
+ /* matcher indices */ &kMatcherIndices[33],
},
{
/* [552] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[136],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [553] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[43],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[27],
},
{
/* [554] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[43],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [555] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [556] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [557] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[13],
},
{
/* [558] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[13],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [559] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [560] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [561] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [562] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [563] */
@@ -4629,8 +4629,8 @@
},
{
/* [568] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[117],
},
{
/* [569] */
@@ -4644,68 +4644,68 @@
},
{
/* [571] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[117],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [572] */
- /* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[125],
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [573] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[117],
},
{
/* [574] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
+ /* matcher indices */ &kMatcherIndices[125],
},
{
/* [575] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[30],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [576] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[111],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [577] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[115],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [578] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[117],
+ /* matcher indices */ &kMatcherIndices[111],
},
{
/* [579] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[119],
+ /* matcher indices */ &kMatcherIndices[115],
},
{
/* [580] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[123],
+ /* matcher indices */ &kMatcherIndices[117],
},
{
/* [581] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[125],
+ /* matcher indices */ &kMatcherIndices[119],
},
{
/* [582] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[132],
+ /* matcher indices */ &kMatcherIndices[123],
},
{
/* [583] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[125],
},
{
/* [584] */
@@ -4715,82 +4715,82 @@
{
/* [585] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[129],
+ /* matcher indices */ &kMatcherIndices[130],
},
{
/* [586] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[121],
+ /* matcher indices */ &kMatcherIndices[129],
},
{
/* [587] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[131],
},
{
/* [588] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[121],
},
{
/* [589] */
- /* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* usage */ ParameterUsage::kTexture,
+ /* matcher indices */ &kMatcherIndices[134],
},
{
/* [590] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [591] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [592] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[1],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [593] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[81],
},
{
/* [594] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[81],
},
{
/* [595] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[87],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [596] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[87],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [597] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [598] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [599] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[81],
+ /* matcher indices */ &kMatcherIndices[21],
},
{
/* [600] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [601] */
@@ -4935,12 +4935,12 @@
{
/* [629] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[21],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [630] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [631] */
@@ -5125,17 +5125,17 @@
{
/* [667] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[0],
+ /* matcher indices */ &kMatcherIndices[12],
},
{
/* [668] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[12],
+ /* matcher indices */ &kMatcherIndices[4],
},
{
/* [669] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[4],
+ /* matcher indices */ &kMatcherIndices[0],
},
{
/* [670] */
@@ -5165,6 +5165,16 @@
{
/* [675] */
/* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[12],
+ },
+ {
+ /* [676] */
+ /* usage */ ParameterUsage::kNone,
+ /* matcher indices */ &kMatcherIndices[39],
+ },
+ {
+ /* [677] */
+ /* usage */ ParameterUsage::kNone,
/* matcher indices */ &kMatcherIndices[1],
},
};
@@ -5233,7 +5243,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[540],
+ /* parameters */ &kParameters[537],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5245,7 +5255,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[521],
+ /* parameters */ &kParameters[525],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5257,8 +5267,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[537],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[535],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5269,8 +5279,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[525],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[529],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5281,8 +5291,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[535],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[568],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5293,8 +5303,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[531],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[513],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5305,7 +5315,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[533],
+ /* parameters */ &kParameters[534],
/* return matcher indices */ &kMatcherIndices[95],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5317,7 +5327,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[511],
+ /* parameters */ &kParameters[527],
/* return matcher indices */ &kMatcherIndices[95],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5329,8 +5339,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[534],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[536],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5341,8 +5351,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[527],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[523],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5353,8 +5363,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[536],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[538],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5365,8 +5375,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[523],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[519],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5377,8 +5387,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[538],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[540],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5389,8 +5399,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[539],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[541],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5401,8 +5411,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[519],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[517],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5413,8 +5423,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[541],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[543],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5425,8 +5435,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[517],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[515],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5437,8 +5447,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[543],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[545],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5449,8 +5459,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[515],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[531],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5461,8 +5471,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[545],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[547],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5473,8 +5483,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[513],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[511],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5485,8 +5495,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[547],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[549],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5497,7 +5507,7 @@
/* num open numbers */ 2,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[0],
- /* parameters */ &kParameters[548],
+ /* parameters */ &kParameters[550],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5509,8 +5519,8 @@
/* num open numbers */ 2,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[0],
- /* parameters */ &kParameters[549],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[551],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5521,8 +5531,8 @@
/* num open numbers */ 2,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[0],
- /* parameters */ &kParameters[550],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[552],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5533,7 +5543,7 @@
/* num open numbers */ 2,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[0],
- /* parameters */ &kParameters[551],
+ /* parameters */ &kParameters[553],
/* return matcher indices */ &kMatcherIndices[95],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5545,8 +5555,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[552],
- /* return matcher indices */ &kMatcherIndices[83],
+ /* parameters */ &kParameters[554],
+ /* return matcher indices */ &kMatcherIndices[87],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5557,8 +5567,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[270],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[258],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5569,8 +5579,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[173],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[158],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5581,8 +5591,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[178],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[163],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5593,8 +5603,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[13],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[55],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5605,8 +5615,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[250],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[242],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5617,8 +5627,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[188],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[183],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5629,8 +5639,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[242],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[234],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5642,7 +5652,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[193],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5653,7 +5663,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[234],
+ /* parameters */ &kParameters[226],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5665,7 +5675,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[198],
+ /* parameters */ &kParameters[208],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5677,7 +5687,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[203],
+ /* parameters */ &kParameters[113],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5689,7 +5699,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[61],
+ /* parameters */ &kParameters[13],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5701,7 +5711,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[262],
+ /* parameters */ &kParameters[222],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5713,7 +5723,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[208],
+ /* parameters */ &kParameters[203],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5725,8 +5735,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[438],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[351],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -5737,8 +5747,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[396],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[456],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5749,8 +5759,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[432],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[447],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5761,8 +5771,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[338],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[290],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5773,8 +5783,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[314],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[286],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5785,8 +5795,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[113],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[118],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5797,8 +5807,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[441],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[429],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5809,8 +5819,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[222],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[278],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5821,8 +5831,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[429],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[423],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5833,8 +5843,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[226],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[274],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -5845,7 +5855,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[423],
+ /* parameters */ &kParameters[417],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -5857,7 +5867,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[230],
+ /* parameters */ &kParameters[266],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -5869,7 +5879,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[254],
+ /* parameters */ &kParameters[218],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -5881,7 +5891,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[103],
+ /* parameters */ &kParameters[153],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -5893,7 +5903,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[411],
+ /* parameters */ &kParameters[384],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -5905,7 +5915,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[286],
+ /* parameters */ &kParameters[254],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -5917,7 +5927,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[238],
+ /* parameters */ &kParameters[330],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5929,7 +5939,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[183],
+ /* parameters */ &kParameters[178],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5965,7 +5975,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[246],
+ /* parameters */ &kParameters[322],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5977,7 +5987,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[158],
+ /* parameters */ &kParameters[138],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -5989,8 +5999,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[417],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[357],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6001,8 +6011,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[258],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[334],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6013,8 +6023,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[290],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[318],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6025,8 +6035,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[148],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[93],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6037,8 +6047,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[363],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[393],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6049,8 +6059,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[298],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[306],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6061,127 +6071,127 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[426],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [70] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[420],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [71] */
- /* num parameters */ 4,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[326],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [72] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[393],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [73] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[384],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [74] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[381],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [75] */
- /* num parameters */ 4,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[294],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [76] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[366],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [77] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[360],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [78] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[354],
/* return matcher indices */ nullptr,
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
+ /* [70] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[375],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [71] */
+ /* num parameters */ 4,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[246],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [72] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[378],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [73] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[387],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [74] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[390],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [75] */
+ /* num parameters */ 4,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[262],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [76] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[414],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [77] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[420],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [78] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[426],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
/* [79] */
/* num parameters */ 4,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[310],
+ /* parameters */ &kParameters[282],
/* return matcher indices */ nullptr,
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6193,7 +6203,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[351],
+ /* parameters */ &kParameters[432],
/* return matcher indices */ nullptr,
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6205,7 +6215,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[576],
+ /* parameters */ &kParameters[578],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6217,7 +6227,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[577],
+ /* parameters */ &kParameters[579],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6229,7 +6239,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[578],
+ /* parameters */ &kParameters[580],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6241,7 +6251,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[579],
+ /* parameters */ &kParameters[581],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6253,7 +6263,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[580],
+ /* parameters */ &kParameters[582],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6265,7 +6275,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[581],
+ /* parameters */ &kParameters[583],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6277,7 +6287,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[582],
+ /* parameters */ &kParameters[584],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6289,7 +6299,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[583],
+ /* parameters */ &kParameters[585],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6301,7 +6311,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[584],
+ /* parameters */ &kParameters[586],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6313,7 +6323,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[585],
+ /* parameters */ &kParameters[587],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6325,7 +6335,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[450],
+ /* parameters */ &kParameters[435],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6337,7 +6347,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[345],
+ /* parameters */ &kParameters[444],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6349,7 +6359,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[330],
+ /* parameters */ &kParameters[298],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6361,7 +6371,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[342],
+ /* parameters */ &kParameters[399],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6373,7 +6383,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[375],
+ /* parameters */ &kParameters[396],
/* return matcher indices */ &kMatcherIndices[113],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6385,7 +6395,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[357],
+ /* parameters */ &kParameters[381],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6397,7 +6407,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[278],
+ /* parameters */ &kParameters[314],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6409,7 +6419,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[414],
+ /* parameters */ &kParameters[360],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6421,8 +6431,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[493],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[489],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6433,8 +6443,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[133],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[78],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6445,8 +6455,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[49],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[67],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6457,8 +6467,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[37],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[61],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6470,7 +6480,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[0],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6481,8 +6491,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[153],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[128],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6493,8 +6503,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[31],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[43],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6505,8 +6515,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[163],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[213],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6517,8 +6527,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[19],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[37],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6529,8 +6539,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[274],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[250],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6541,8 +6551,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[78],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[173],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6553,8 +6563,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[213],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[133],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6565,8 +6575,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[7],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[19],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6577,8 +6587,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[282],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[238],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6589,8 +6599,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[83],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[148],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6601,8 +6611,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[302],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[230],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6613,8 +6623,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[88],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[198],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
@@ -6625,8 +6635,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[322],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[302],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6638,7 +6648,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[143],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6649,8 +6659,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[123],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[83],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6661,8 +6671,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[43],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[7],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6673,8 +6683,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[266],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[294],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6685,8 +6695,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[138],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* parameters */ &kParameters[103],
+ /* return matcher indices */ &kMatcherIndices[81],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -6697,7 +6707,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[334],
+ /* parameters */ &kParameters[326],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6721,7 +6731,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[118],
+ /* parameters */ &kParameters[123],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6733,7 +6743,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[55],
+ /* parameters */ &kParameters[31],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6745,7 +6755,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[318],
+ /* parameters */ &kParameters[310],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6757,7 +6767,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[128],
+ /* parameters */ &kParameters[88],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6769,7 +6779,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[306],
+ /* parameters */ &kParameters[338],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -6781,7 +6791,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[93],
+ /* parameters */ &kParameters[108],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -6805,7 +6815,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[67],
+ /* parameters */ &kParameters[49],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -6817,7 +6827,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[218],
+ /* parameters */ &kParameters[270],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -6829,7 +6839,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[108],
+ /* parameters */ &kParameters[188],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
@@ -6841,7 +6851,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[571],
+ /* parameters */ &kParameters[573],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6853,7 +6863,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[572],
+ /* parameters */ &kParameters[574],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6865,7 +6875,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[573],
+ /* parameters */ &kParameters[575],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6877,7 +6887,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[574],
+ /* parameters */ &kParameters[576],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6889,7 +6899,7 @@
/* num open numbers */ 2,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[0],
- /* parameters */ &kParameters[575],
+ /* parameters */ &kParameters[577],
/* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6901,7 +6911,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[399],
+ /* parameters */ &kParameters[405],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6913,7 +6923,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[402],
+ /* parameters */ &kParameters[408],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6925,7 +6935,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[405],
+ /* parameters */ &kParameters[411],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6937,7 +6947,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[3],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[447],
+ /* parameters */ &kParameters[441],
/* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6949,7 +6959,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[3],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[444],
+ /* parameters */ &kParameters[438],
/* return matcher indices */ &kMatcherIndices[39],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -6961,7 +6971,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[3],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[435],
+ /* parameters */ &kParameters[402],
/* return matcher indices */ &kMatcherIndices[39],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7045,7 +7055,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[497],
+ /* parameters */ &kParameters[485],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7057,7 +7067,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[499],
+ /* parameters */ &kParameters[487],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7329,53 +7339,29 @@
{
/* [175] */
/* num parameters */ 1,
- /* num open types */ 0,
+ /* num open types */ 1,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
+ /* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[630],
- /* return matcher indices */ &kMatcherIndices[12],
+ /* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [176] */
/* num parameters */ 1,
- /* num open types */ 0,
+ /* num open types */ 1,
/* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
+ /* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[629],
- /* return matcher indices */ &kMatcherIndices[21],
+ /* return matcher indices */ &kMatcherIndices[39],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [177] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[372],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [178] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[369],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [179] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
@@ -7387,7 +7373,7 @@
/* is_deprecated */ false,
},
{
- /* [180] */
+ /* [178] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
@@ -7399,6 +7385,30 @@
/* is_deprecated */ false,
},
{
+ /* [179] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[345],
+ /* return matcher indices */ &kMatcherIndices[12],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [180] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[369],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
/* [181] */
/* num parameters */ 1,
/* num open types */ 0,
@@ -7406,7 +7416,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[626],
- /* return matcher indices */ &kMatcherIndices[138],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -7418,7 +7428,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[625],
- /* return matcher indices */ &kMatcherIndices[103],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -7430,8 +7440,8 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[624],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+ /* return matcher indices */ &kMatcherIndices[138],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
@@ -7442,8 +7452,8 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[623],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+ /* return matcher indices */ &kMatcherIndices[101],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
@@ -7503,7 +7513,7 @@
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[618],
/* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
{
@@ -7515,7 +7525,7 @@
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[617],
/* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
/* is_deprecated */ false,
},
{
@@ -7526,9 +7536,9 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[616],
- /* return matcher indices */ &kMatcherIndices[10],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ true,
+ /* is_deprecated */ false,
},
{
/* [192] */
@@ -7538,9 +7548,9 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[615],
- /* return matcher indices */ &kMatcherIndices[24],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ true,
+ /* is_deprecated */ false,
},
{
/* [193] */
@@ -7616,53 +7626,53 @@
},
{
/* [199] */
- /* num parameters */ 2,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[491],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [200] */
- /* num parameters */ 2,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[485],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [201] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[608],
- /* return matcher indices */ &kMatcherIndices[12],
+ /* return matcher indices */ &kMatcherIndices[10],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
+ /* is_deprecated */ true,
},
{
- /* [202] */
+ /* [200] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[607],
+ /* return matcher indices */ &kMatcherIndices[24],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ true,
+ },
+ {
+ /* [201] */
+ /* num parameters */ 2,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[459],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
+ /* [202] */
+ /* num parameters */ 2,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[483],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
/* [203] */
/* num parameters */ 1,
/* num open types */ 0,
@@ -7682,7 +7692,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
/* parameters */ &kParameters[605],
- /* return matcher indices */ &kMatcherIndices[21],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -7712,25 +7722,25 @@
},
{
/* [207] */
- /* num parameters */ 2,
- /* num open types */ 1,
+ /* num parameters */ 1,
+ /* num open types */ 0,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[0],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[481],
- /* return matcher indices */ &kMatcherIndices[1],
+ /* parameters */ &kParameters[602],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [208] */
- /* num parameters */ 2,
- /* num open types */ 1,
+ /* num parameters */ 1,
+ /* num open types */ 0,
/* num open numbers */ 1,
- /* open types */ &kOpenTypes[0],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[479],
- /* return matcher indices */ &kMatcherIndices[39],
+ /* parameters */ &kParameters[601],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -7741,7 +7751,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[473],
+ /* parameters */ &kParameters[479],
/* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7753,13 +7763,37 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[469],
+ /* parameters */ &kParameters[477],
/* return matcher indices */ &kMatcherIndices[39],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [211] */
+ /* num parameters */ 2,
+ /* num open types */ 1,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[471],
+ /* return matcher indices */ &kMatcherIndices[1],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [212] */
+ /* num parameters */ 2,
+ /* num open types */ 1,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[469],
+ /* return matcher indices */ &kMatcherIndices[39],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [213] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
@@ -7771,7 +7805,7 @@
/* is_deprecated */ false,
},
{
- /* [212] */
+ /* [214] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
@@ -7783,55 +7817,55 @@
/* is_deprecated */ false,
},
{
- /* [213] */
+ /* [215] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[602],
+ /* parameters */ &kParameters[600],
/* return matcher indices */ &kMatcherIndices[137],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
- /* [214] */
+ /* [216] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[601],
- /* return matcher indices */ &kMatcherIndices[101],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [215] */
- /* num parameters */ 3,
- /* num open types */ 1,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[0],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[348],
- /* return matcher indices */ &kMatcherIndices[1],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [216] */
- /* num parameters */ 3,
- /* num open types */ 1,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[0],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[456],
- /* return matcher indices */ &kMatcherIndices[39],
+ /* parameters */ &kParameters[599],
+ /* return matcher indices */ &kMatcherIndices[103],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [217] */
+ /* num parameters */ 3,
+ /* num open types */ 1,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[450],
+ /* return matcher indices */ &kMatcherIndices[1],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [218] */
+ /* num parameters */ 3,
+ /* num open types */ 1,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[342],
+ /* return matcher indices */ &kMatcherIndices[39],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [219] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
@@ -7843,7 +7877,7 @@
/* is_deprecated */ false,
},
{
- /* [218] */
+ /* [220] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
@@ -7855,37 +7889,13 @@
/* is_deprecated */ false,
},
{
- /* [219] */
- /* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[568],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [220] */
- /* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[566],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
/* [221] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[560],
+ /* parameters */ &kParameters[565],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7897,7 +7907,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[559],
+ /* parameters */ &kParameters[564],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7905,12 +7915,12 @@
{
/* [223] */
/* num parameters */ 1,
- /* num open types */ 1,
+ /* num open types */ 0,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[0],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[586],
- /* return matcher indices */ &kMatcherIndices[55],
+ /* parameters */ &kParameters[559],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -7918,35 +7928,35 @@
/* [224] */
/* num parameters */ 1,
/* num open types */ 0,
- /* num open numbers */ 0,
+ /* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[587],
- /* return matcher indices */ &kMatcherIndices[55],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[558],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [225] */
- /* num parameters */ 2,
- /* num open types */ 0,
+ /* num parameters */ 1,
+ /* num open types */ 1,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
+ /* open types */ &kOpenTypes[0],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[483],
- /* return matcher indices */ &kMatcherIndices[12],
+ /* parameters */ &kParameters[588],
+ /* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [226] */
- /* num parameters */ 2,
+ /* num parameters */ 1,
/* num open types */ 0,
- /* num open numbers */ 1,
+ /* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[461],
- /* return matcher indices */ &kMatcherIndices[21],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[589],
+ /* return matcher indices */ &kMatcherIndices[55],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -7957,7 +7967,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[467],
+ /* parameters */ &kParameters[475],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -7969,31 +7979,31 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[465],
+ /* parameters */ &kParameters[473],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [229] */
- /* num parameters */ 1,
+ /* num parameters */ 2,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[594],
+ /* parameters */ &kParameters[467],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [230] */
- /* num parameters */ 1,
+ /* num parameters */ 2,
/* num open types */ 0,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[593],
+ /* parameters */ &kParameters[465],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8005,7 +8015,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[665],
+ /* parameters */ &kParameters[592],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8017,7 +8027,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[664],
+ /* parameters */ &kParameters[591],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8029,7 +8039,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[668],
+ /* parameters */ &kParameters[665],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8041,7 +8051,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[666],
+ /* parameters */ &kParameters[664],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8049,48 +8059,48 @@
{
/* [235] */
/* num parameters */ 1,
- /* num open types */ 1,
+ /* num open types */ 0,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[1],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[592],
- /* return matcher indices */ &kMatcherIndices[1],
+ /* parameters */ &kParameters[667],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [236] */
/* num parameters */ 1,
- /* num open types */ 1,
+ /* num open types */ 0,
/* num open numbers */ 1,
- /* open types */ &kOpenTypes[1],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[591],
- /* return matcher indices */ &kMatcherIndices[39],
+ /* parameters */ &kParameters[666],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [237] */
/* num parameters */ 1,
- /* num open types */ 0,
+ /* num open types */ 1,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
+ /* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[567],
- /* return matcher indices */ &kMatcherIndices[12],
+ /* parameters */ &kParameters[590],
+ /* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [238] */
/* num parameters */ 1,
- /* num open types */ 0,
+ /* num open types */ 1,
/* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
+ /* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[590],
- /* return matcher indices */ &kMatcherIndices[21],
+ /* parameters */ &kParameters[533],
+ /* return matcher indices */ &kMatcherIndices[39],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -8101,13 +8111,37 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[572],
+ /* return matcher indices */ &kMatcherIndices[12],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [240] */
+ /* num parameters */ 1,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[571],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [241] */
+ /* num parameters */ 1,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[671],
/* return matcher indices */ &kMatcherIndices[10],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
- /* [240] */
+ /* [242] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
@@ -8119,30 +8153,6 @@
/* is_deprecated */ false,
},
{
- /* [241] */
- /* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[589],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [242] */
- /* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[588],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
/* [243] */
/* num parameters */ 1,
/* num open types */ 0,
@@ -8173,13 +8183,37 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[567],
+ /* return matcher indices */ &kMatcherIndices[12],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [246] */
+ /* num parameters */ 1,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[566],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [247] */
+ /* num parameters */ 1,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[673],
/* return matcher indices */ &kMatcherIndices[10],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
- /* [246] */
+ /* [248] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
@@ -8191,79 +8225,31 @@
/* is_deprecated */ false,
},
{
- /* [247] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[390],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [248] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[387],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
/* [249] */
- /* num parameters */ 1,
+ /* num parameters */ 3,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[565],
+ /* parameters */ &kParameters[372],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [250] */
- /* num parameters */ 1,
+ /* num parameters */ 3,
/* num open types */ 0,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[564],
+ /* parameters */ &kParameters[363],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [251] */
- /* num parameters */ 2,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[487],
- /* return matcher indices */ &kMatcherIndices[12],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [252] */
- /* num parameters */ 2,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[489],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [253] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
@@ -8275,13 +8261,37 @@
/* is_deprecated */ false,
},
{
- /* [254] */
+ /* [252] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[674],
+ /* parameters */ &kParameters[562],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [253] */
+ /* num parameters */ 2,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[491],
+ /* return matcher indices */ &kMatcherIndices[12],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [254] */
+ /* num parameters */ 2,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[493],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8293,7 +8303,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[562],
+ /* parameters */ &kParameters[675],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8305,7 +8315,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[561],
+ /* parameters */ &kParameters[674],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8317,7 +8327,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[557],
+ /* parameters */ &kParameters[561],
/* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8329,7 +8339,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[556],
+ /* parameters */ &kParameters[560],
/* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8337,48 +8347,48 @@
{
/* [259] */
/* num parameters */ 1,
- /* num open types */ 1,
+ /* num open types */ 0,
/* num open numbers */ 0,
- /* open types */ &kOpenTypes[0],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[675],
- /* return matcher indices */ &kMatcherIndices[1],
+ /* parameters */ &kParameters[556],
+ /* return matcher indices */ &kMatcherIndices[12],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [260] */
/* num parameters */ 1,
- /* num open types */ 1,
+ /* num open types */ 0,
/* num open numbers */ 1,
- /* open types */ &kOpenTypes[0],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[542],
- /* return matcher indices */ &kMatcherIndices[39],
+ /* parameters */ &kParameters[555],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [261] */
/* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 2,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[2],
- /* parameters */ &kParameters[558],
- /* return matcher indices */ &kMatcherIndices[9],
+ /* num open types */ 1,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[677],
+ /* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [262] */
/* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[555],
- /* return matcher indices */ &kMatcherIndices[81],
+ /* num open types */ 1,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[676],
+ /* return matcher indices */ &kMatcherIndices[39],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -8386,11 +8396,11 @@
/* [263] */
/* num parameters */ 1,
/* num open types */ 0,
- /* num open numbers */ 0,
+ /* num open numbers */ 2,
/* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[554],
- /* return matcher indices */ &kMatcherIndices[81],
+ /* open numbers */ &kOpenNumbers[2],
+ /* parameters */ &kParameters[557],
+ /* return matcher indices */ &kMatcherIndices[9],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -8401,8 +8411,8 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[553],
- /* return matcher indices */ &kMatcherIndices[81],
+ /* parameters */ &kParameters[548],
+ /* return matcher indices */ &kMatcherIndices[85],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -8414,7 +8424,7 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[546],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* return matcher indices */ &kMatcherIndices[85],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -8426,84 +8436,60 @@
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
/* parameters */ &kParameters[544],
- /* return matcher indices */ &kMatcherIndices[87],
+ /* return matcher indices */ &kMatcherIndices[85],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [267] */
- /* num parameters */ 0,
+ /* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[676],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
+ /* parameters */ &kParameters[542],
+ /* return matcher indices */ &kMatcherIndices[81],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [268] */
+ /* num parameters */ 1,
+ /* num open types */ 0,
+ /* num open numbers */ 0,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[539],
+ /* return matcher indices */ &kMatcherIndices[81],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [269] */
/* num parameters */ 0,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[676],
+ /* parameters */ &kParameters[678],
/* return matcher indices */ nullptr,
/* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
- /* [269] */
- /* num parameters */ 1,
+ /* [270] */
+ /* num parameters */ 0,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[598],
- /* return matcher indices */ &kMatcherIndices[43],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [270] */
- /* num parameters */ 3,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[453],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* parameters */ &kParameters[678],
+ /* return matcher indices */ nullptr,
+ /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [271] */
- /* num parameters */ 2,
- /* num open types */ 0,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[463],
- /* return matcher indices */ &kMatcherIndices[21],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [272] */
- /* num parameters */ 1,
- /* num open types */ 0,
- /* num open numbers */ 0,
- /* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[595],
- /* return matcher indices */ &kMatcherIndices[43],
- /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [273] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
@@ -8515,13 +8501,37 @@
/* is_deprecated */ false,
},
{
+ /* [272] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[453],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [273] */
+ /* num parameters */ 2,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[463],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
/* [274] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[597],
+ /* parameters */ &kParameters[593],
/* return matcher indices */ &kMatcherIndices[43],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8533,7 +8543,7 @@
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[599],
+ /* parameters */ &kParameters[594],
/* return matcher indices */ &kMatcherIndices[43],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8542,40 +8552,64 @@
/* [276] */
/* num parameters */ 1,
/* num open types */ 0,
- /* num open numbers */ 1,
+ /* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[600],
- /* return matcher indices */ &kMatcherIndices[21],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[595],
+ /* return matcher indices */ &kMatcherIndices[43],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [277] */
- /* num parameters */ 3,
+ /* num parameters */ 1,
/* num open types */ 0,
- /* num open numbers */ 1,
+ /* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
- /* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[408],
- /* return matcher indices */ &kMatcherIndices[21],
+ /* open numbers */ &kOpenNumbers[6],
+ /* parameters */ &kParameters[597],
+ /* return matcher indices */ &kMatcherIndices[43],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [278] */
- /* num parameters */ 2,
- /* num open types */ 1,
+ /* num parameters */ 1,
+ /* num open types */ 0,
/* num open numbers */ 1,
- /* open types */ &kOpenTypes[0],
+ /* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[3],
- /* parameters */ &kParameters[503],
- /* return matcher indices */ &kMatcherIndices[1],
+ /* parameters */ &kParameters[598],
+ /* return matcher indices */ &kMatcherIndices[21],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
/* [279] */
+ /* num parameters */ 3,
+ /* num open types */ 0,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[4],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[348],
+ /* return matcher indices */ &kMatcherIndices[21],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [280] */
+ /* num parameters */ 2,
+ /* num open types */ 1,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[0],
+ /* open numbers */ &kOpenNumbers[3],
+ /* parameters */ &kParameters[497],
+ /* return matcher indices */ &kMatcherIndices[1],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [281] */
/* num parameters */ 1,
/* num open types */ 0,
/* num open numbers */ 1,
@@ -8587,61 +8621,37 @@
/* is_deprecated */ false,
},
{
- /* [280] */
+ /* [282] */
/* num parameters */ 2,
/* num open types */ 0,
/* num open numbers */ 0,
/* open types */ &kOpenTypes[4],
/* open numbers */ &kOpenNumbers[6],
- /* parameters */ &kParameters[495],
+ /* parameters */ &kParameters[481],
/* return matcher indices */ &kMatcherIndices[91],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
- /* [281] */
+ /* [283] */
/* num parameters */ 1,
/* num open types */ 1,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[2],
/* open numbers */ &kOpenNumbers[4],
- /* parameters */ &kParameters[669],
+ /* parameters */ &kParameters[668],
/* return matcher indices */ &kMatcherIndices[43],
/* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
{
- /* [282] */
+ /* [284] */
/* num parameters */ 1,
/* num open types */ 1,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[667],
- /* return matcher indices */ &kMatcherIndices[1],
- /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [283] */
- /* num parameters */ 2,
- /* num open types */ 1,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[1],
- /* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[529],
- /* return matcher indices */ nullptr,
- /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
- /* is_deprecated */ false,
- },
- {
- /* [284] */
- /* num parameters */ 2,
- /* num open types */ 1,
- /* num open numbers */ 1,
- /* open types */ &kOpenTypes[1],
- /* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[471],
+ /* parameters */ &kParameters[669],
/* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8653,8 +8663,8 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[475],
- /* return matcher indices */ &kMatcherIndices[1],
+ /* parameters */ &kParameters[495],
+ /* return matcher indices */ nullptr,
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
},
@@ -8665,7 +8675,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[477],
+ /* parameters */ &kParameters[499],
/* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8677,7 +8687,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[459],
+ /* parameters */ &kParameters[501],
/* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8689,7 +8699,7 @@
/* num open numbers */ 1,
/* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[501],
+ /* parameters */ &kParameters[503],
/* return matcher indices */ &kMatcherIndices[1],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8732,12 +8742,36 @@
},
{
/* [292] */
+ /* num parameters */ 2,
+ /* num open types */ 1,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[1],
+ /* open numbers */ &kOpenNumbers[5],
+ /* parameters */ &kParameters[521],
+ /* return matcher indices */ &kMatcherIndices[1],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [293] */
+ /* num parameters */ 2,
+ /* num open types */ 1,
+ /* num open numbers */ 1,
+ /* open types */ &kOpenTypes[1],
+ /* open numbers */ &kOpenNumbers[5],
+ /* parameters */ &kParameters[461],
+ /* return matcher indices */ &kMatcherIndices[1],
+ /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
+ /* is_deprecated */ false,
+ },
+ {
+ /* [294] */
/* num parameters */ 3,
/* num open types */ 1,
/* num open numbers */ 1,
/* open types */ &kOpenTypes[1],
/* open numbers */ &kOpenNumbers[5],
- /* parameters */ &kParameters[378],
+ /* parameters */ &kParameters[366],
/* return matcher indices */ &kMatcherIndices[105],
/* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
/* is_deprecated */ false,
@@ -8750,76 +8784,76 @@
/* fn abs<T : fiu32>(T) -> T */
/* fn abs<N : num, T : fiu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[259],
+ /* overloads */ &kOverloads[261],
},
{
/* [1] */
/* fn acos(f32) -> f32 */
/* fn acos<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[253],
+ /* overloads */ &kOverloads[255],
},
{
/* [2] */
/* fn all(bool) -> bool */
/* fn all<N : num>(vec<N, bool>) -> bool */
/* num overloads */ 2,
- /* overloads */ &kOverloads[245],
+ /* overloads */ &kOverloads[247],
},
{
/* [3] */
/* fn any(bool) -> bool */
/* fn any<N : num>(vec<N, bool>) -> bool */
/* num overloads */ 2,
- /* overloads */ &kOverloads[239],
+ /* overloads */ &kOverloads[241],
},
{
/* [4] */
/* fn arrayLength<T, A : access>(ptr<storage, array<T>, A>) -> u32 */
/* num overloads */ 1,
- /* overloads */ &kOverloads[281],
+ /* overloads */ &kOverloads[283],
},
{
/* [5] */
/* fn asin(f32) -> f32 */
/* fn asin<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[233],
+ /* overloads */ &kOverloads[235],
},
{
/* [6] */
/* fn atan(f32) -> f32 */
/* fn atan<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[231],
+ /* overloads */ &kOverloads[233],
},
{
/* [7] */
/* fn atan2(f32, f32) -> f32 */
/* fn atan2<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[225],
+ /* overloads */ &kOverloads[227],
},
{
/* [8] */
/* fn ceil(f32) -> f32 */
/* fn ceil<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[217],
+ /* overloads */ &kOverloads[219],
},
{
/* [9] */
/* fn clamp<T : fiu32>(T, T, T) -> T */
/* fn clamp<N : num, T : fiu32>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[215],
+ /* overloads */ &kOverloads[217],
},
{
/* [10] */
/* fn cos(f32) -> f32 */
/* fn cos<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[211],
+ /* overloads */ &kOverloads[213],
},
{
/* [11] */
@@ -8853,7 +8887,7 @@
/* [15] */
/* fn cross(vec3<f32>, vec3<f32>) -> vec3<f32> */
/* num overloads */ 1,
- /* overloads */ &kOverloads[280],
+ /* overloads */ &kOverloads[282],
},
{
/* [16] */
@@ -8866,7 +8900,7 @@
/* [17] */
/* fn determinant<N : num>(mat<N, N, f32>) -> f32 */
/* num overloads */ 1,
- /* overloads */ &kOverloads[279],
+ /* overloads */ &kOverloads[281],
},
{
/* [18] */
@@ -8879,7 +8913,7 @@
/* [19] */
/* fn dot<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ &kOverloads[278],
+ /* overloads */ &kOverloads[280],
},
{
/* [20] */
@@ -8941,143 +8975,150 @@
/* [28] */
/* fn faceForward<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 1,
- /* overloads */ &kOverloads[277],
+ /* overloads */ &kOverloads[279],
},
{
/* [29] */
- /* fn firstTrailingBit<T : iu32>(T) -> T */
- /* fn firstTrailingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
+ /* fn firstLeadingBit<T : iu32>(T) -> T */
+ /* fn firstLeadingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ &kOverloads[173],
},
{
/* [30] */
- /* fn floor(f32) -> f32 */
- /* fn floor<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn firstTrailingBit<T : iu32>(T) -> T */
+ /* fn firstTrailingBit<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ &kOverloads[175],
},
{
/* [31] */
- /* fn fma(f32, f32, f32) -> f32 */
- /* fn fma<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
+ /* fn floor(f32) -> f32 */
+ /* fn floor<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[177],
},
{
/* [32] */
- /* fn fract(f32) -> f32 */
- /* fn fract<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn fma(f32, f32, f32) -> f32 */
+ /* fn fma<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[179],
},
{
/* [33] */
- /* fn frexp(f32) -> __frexp_result */
- /* fn frexp<N : num>(vec<N, f32>) -> __frexp_result_vec<N> */
+ /* fn fract(f32) -> f32 */
+ /* fn fract<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[181],
},
{
/* [34] */
- /* fn fwidth(f32) -> f32 */
- /* fn fwidth<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn frexp(f32) -> __frexp_result */
+ /* fn frexp<N : num>(vec<N, f32>) -> __frexp_result_vec<N> */
/* num overloads */ 2,
/* overloads */ &kOverloads[183],
},
{
/* [35] */
- /* fn fwidthCoarse(f32) -> f32 */
- /* fn fwidthCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn fwidth(f32) -> f32 */
+ /* fn fwidth<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[185],
},
{
/* [36] */
- /* fn fwidthFine(f32) -> f32 */
- /* fn fwidthFine<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn fwidthCoarse(f32) -> f32 */
+ /* fn fwidthCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[145],
},
{
/* [37] */
- /* fn inverseSqrt(f32) -> f32 */
- /* fn inverseSqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn fwidthFine(f32) -> f32 */
+ /* fn fwidthFine<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[189],
},
{
/* [38] */
- /* fn isFinite(f32) -> bool */
- /* fn isFinite<N : num>(vec<N, f32>) -> vec<N, bool> */
+ /* fn inverseSqrt(f32) -> f32 */
+ /* fn inverseSqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[191],
},
{
/* [39] */
- /* fn isInf(f32) -> bool */
- /* fn isInf<N : num>(vec<N, f32>) -> vec<N, bool> */
+ /* fn isFinite(f32) -> bool */
+ /* fn isFinite<N : num>(vec<N, f32>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[193],
},
{
/* [40] */
- /* fn isNan(f32) -> bool */
- /* fn isNan<N : num>(vec<N, f32>) -> vec<N, bool> */
+ /* fn isInf(f32) -> bool */
+ /* fn isInf<N : num>(vec<N, f32>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[195],
},
{
/* [41] */
- /* fn isNormal(f32) -> bool */
- /* fn isNormal<N : num>(vec<N, f32>) -> vec<N, bool> */
+ /* fn isNan(f32) -> bool */
+ /* fn isNan<N : num>(vec<N, f32>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[197],
},
{
/* [42] */
- /* fn ldexp(f32, i32) -> f32 */
- /* fn ldexp<N : num>(vec<N, f32>, vec<N, i32>) -> vec<N, f32> */
+ /* fn isNormal(f32) -> bool */
+ /* fn isNormal<N : num>(vec<N, f32>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[199],
},
{
/* [43] */
- /* fn length(f32) -> f32 */
- /* fn length<N : num>(vec<N, f32>) -> f32 */
+ /* fn ldexp(f32, i32) -> f32 */
+ /* fn ldexp<N : num>(vec<N, f32>, vec<N, i32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[201],
},
{
/* [44] */
- /* fn log(f32) -> f32 */
- /* fn log<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn length(f32) -> f32 */
+ /* fn length<N : num>(vec<N, f32>) -> f32 */
/* num overloads */ 2,
/* overloads */ &kOverloads[203],
},
{
/* [45] */
- /* fn log2(f32) -> f32 */
- /* fn log2<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn log(f32) -> f32 */
+ /* fn log<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[205],
},
{
/* [46] */
- /* fn max<T : fiu32>(T, T) -> T */
- /* fn max<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn log2(f32) -> f32 */
+ /* fn log2<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[207],
},
{
/* [47] */
- /* fn min<T : fiu32>(T, T) -> T */
- /* fn min<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* fn max<T : fiu32>(T, T) -> T */
+ /* fn max<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ &kOverloads[209],
},
{
/* [48] */
+ /* fn min<T : fiu32>(T, T) -> T */
+ /* fn min<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* num overloads */ 2,
+ /* overloads */ &kOverloads[211],
+ },
+ {
+ /* [49] */
/* fn mix(f32, f32, f32) -> f32 */
/* fn mix<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* fn mix<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
@@ -9085,90 +9126,90 @@
/* overloads */ &kOverloads[139],
},
{
- /* [49] */
+ /* [50] */
/* fn modf(f32) -> __modf_result */
/* fn modf<N : num>(vec<N, f32>) -> __modf_result_vec<N> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[213],
+ /* overloads */ &kOverloads[215],
},
{
- /* [50] */
+ /* [51] */
/* fn normalize<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 1,
+ /* overloads */ &kOverloads[278],
+ },
+ {
+ /* [52] */
+ /* fn pack2x16float(vec2<f32>) -> u32 */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[277],
+ },
+ {
+ /* [53] */
+ /* fn pack2x16snorm(vec2<f32>) -> u32 */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[271],
+ },
+ {
+ /* [54] */
+ /* fn pack2x16unorm(vec2<f32>) -> u32 */
+ /* num overloads */ 1,
/* overloads */ &kOverloads[276],
},
{
- /* [51] */
- /* fn pack2x16float(vec2<f32>) -> u32 */
+ /* [55] */
+ /* fn pack4x8snorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
/* overloads */ &kOverloads[275],
},
{
- /* [52] */
- /* fn pack2x16snorm(vec2<f32>) -> u32 */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[269],
- },
- {
- /* [53] */
- /* fn pack2x16unorm(vec2<f32>) -> u32 */
+ /* [56] */
+ /* fn pack4x8unorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
/* overloads */ &kOverloads[274],
},
{
- /* [54] */
- /* fn pack4x8snorm(vec4<f32>) -> u32 */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[273],
- },
- {
- /* [55] */
- /* fn pack4x8unorm(vec4<f32>) -> u32 */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[272],
- },
- {
- /* [56] */
+ /* [57] */
/* fn pow(f32, f32) -> f32 */
/* fn pow<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[227],
- },
- {
- /* [57] */
- /* fn radians(f32) -> f32 */
- /* fn radians<N : num>(vec<N, f32>) -> vec<N, f32> */
- /* num overloads */ 2,
/* overloads */ &kOverloads[229],
},
{
/* [58] */
- /* fn reflect<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[271],
+ /* fn radians(f32) -> f32 */
+ /* fn radians<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* num overloads */ 2,
+ /* overloads */ &kOverloads[231],
},
{
/* [59] */
- /* fn refract<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
+ /* fn reflect<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 1,
- /* overloads */ &kOverloads[270],
+ /* overloads */ &kOverloads[273],
},
{
/* [60] */
- /* fn reverseBits<T : iu32>(T) -> T */
- /* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
- /* num overloads */ 2,
- /* overloads */ &kOverloads[235],
+ /* fn refract<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[272],
},
{
/* [61] */
- /* fn round(f32) -> f32 */
- /* fn round<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn reverseBits<T : iu32>(T) -> T */
+ /* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ &kOverloads[237],
},
{
/* [62] */
+ /* fn round(f32) -> f32 */
+ /* fn round<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* num overloads */ 2,
+ /* overloads */ &kOverloads[239],
+ },
+ {
+ /* [63] */
/* fn select<T : scalar>(T, T, bool) -> T */
/* fn select<T : scalar, N : num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
/* fn select<N : num, T : scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
@@ -9176,118 +9217,118 @@
/* overloads */ &kOverloads[142],
},
{
- /* [63] */
+ /* [64] */
/* fn sign(f32) -> f32 */
/* fn sign<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[241],
- },
- {
- /* [64] */
- /* fn sin(f32) -> f32 */
- /* fn sin<N : num>(vec<N, f32>) -> vec<N, f32> */
- /* num overloads */ 2,
/* overloads */ &kOverloads[243],
},
{
/* [65] */
- /* fn sinh(f32) -> f32 */
- /* fn sinh<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn sin(f32) -> f32 */
+ /* fn sin<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[219],
+ /* overloads */ &kOverloads[245],
},
{
/* [66] */
- /* fn smoothStep(f32, f32, f32) -> f32 */
- /* fn smoothStep<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
+ /* fn sinh(f32) -> f32 */
+ /* fn sinh<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
- /* overloads */ &kOverloads[247],
+ /* overloads */ &kOverloads[221],
},
{
/* [67] */
- /* fn sqrt(f32) -> f32 */
- /* fn sqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn smoothStep(f32, f32, f32) -> f32 */
+ /* fn smoothStep<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[249],
},
{
/* [68] */
- /* fn step(f32, f32) -> f32 */
- /* fn step<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
+ /* fn sqrt(f32) -> f32 */
+ /* fn sqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[251],
},
{
/* [69] */
- /* fn storageBarrier() */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[268],
+ /* fn step(f32, f32) -> f32 */
+ /* fn step<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
+ /* num overloads */ 2,
+ /* overloads */ &kOverloads[253],
},
{
/* [70] */
- /* fn tan(f32) -> f32 */
- /* fn tan<N : num>(vec<N, f32>) -> vec<N, f32> */
- /* num overloads */ 2,
- /* overloads */ &kOverloads[255],
+ /* fn storageBarrier() */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[270],
},
{
/* [71] */
- /* fn tanh(f32) -> f32 */
- /* fn tanh<N : num>(vec<N, f32>) -> vec<N, f32> */
- /* num overloads */ 2,
- /* overloads */ &kOverloads[221],
- },
- {
- /* [72] */
- /* fn transpose<M : num, N : num>(mat<M, N, f32>) -> mat<N, M, f32> */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[261],
- },
- {
- /* [73] */
- /* fn trunc(f32) -> f32 */
- /* fn trunc<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* fn tan(f32) -> f32 */
+ /* fn tan<N : num>(vec<N, f32>) -> vec<N, f32> */
/* num overloads */ 2,
/* overloads */ &kOverloads[257],
},
{
- /* [74] */
- /* fn unpack2x16float(u32) -> vec2<f32> */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[262],
+ /* [72] */
+ /* fn tanh(f32) -> f32 */
+ /* fn tanh<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* num overloads */ 2,
+ /* overloads */ &kOverloads[223],
},
{
- /* [75] */
- /* fn unpack2x16snorm(u32) -> vec2<f32> */
+ /* [73] */
+ /* fn transpose<M : num, N : num>(mat<M, N, f32>) -> mat<N, M, f32> */
/* num overloads */ 1,
/* overloads */ &kOverloads[263],
},
{
- /* [76] */
- /* fn unpack2x16unorm(u32) -> vec2<f32> */
+ /* [74] */
+ /* fn trunc(f32) -> f32 */
+ /* fn trunc<N : num>(vec<N, f32>) -> vec<N, f32> */
+ /* num overloads */ 2,
+ /* overloads */ &kOverloads[259],
+ },
+ {
+ /* [75] */
+ /* fn unpack2x16float(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ &kOverloads[264],
},
{
- /* [77] */
- /* fn unpack4x8snorm(u32) -> vec4<f32> */
+ /* [76] */
+ /* fn unpack2x16snorm(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ &kOverloads[265],
},
{
- /* [78] */
- /* fn unpack4x8unorm(u32) -> vec4<f32> */
+ /* [77] */
+ /* fn unpack2x16unorm(u32) -> vec2<f32> */
/* num overloads */ 1,
/* overloads */ &kOverloads[266],
},
{
- /* [79] */
- /* fn workgroupBarrier() */
+ /* [78] */
+ /* fn unpack4x8snorm(u32) -> vec4<f32> */
/* num overloads */ 1,
/* overloads */ &kOverloads[267],
},
{
+ /* [79] */
+ /* fn unpack4x8unorm(u32) -> vec4<f32> */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[268],
+ },
+ {
/* [80] */
+ /* fn workgroupBarrier() */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[269],
+ },
+ {
+ /* [81] */
/* fn textureDimensions<T : fiu32>(texture: texture_1d<T>) -> i32 */
/* fn textureDimensions<T : fiu32>(texture: texture_1d<T>, level: i32) -> i32 */
/* fn textureDimensions<T : fiu32>(texture: texture_2d<T>) -> vec2<i32> */
@@ -9319,7 +9360,7 @@
/* overloads */ &kOverloads[0],
},
{
- /* [81] */
+ /* [82] */
/* fn textureGather<T : fiu32>(component: i32, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>) -> vec4<T> */
/* fn textureGather<T : fiu32>(component: i32, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<T> */
/* fn textureGather<T : fiu32>(component: i32, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<T> */
@@ -9336,7 +9377,7 @@
/* overloads */ &kOverloads[57],
},
{
- /* [82] */
+ /* [83] */
/* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32> */
/* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> vec4<f32> */
/* fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32> */
@@ -9347,7 +9388,7 @@
/* overloads */ &kOverloads[116],
},
{
- /* [83] */
+ /* [84] */
/* fn textureNumLayers<T : fiu32>(texture: texture_2d_array<T>) -> i32 */
/* fn textureNumLayers<T : fiu32>(texture: texture_cube_array<T>) -> i32 */
/* fn textureNumLayers(texture: texture_depth_2d_array) -> i32 */
@@ -9357,7 +9398,7 @@
/* overloads */ &kOverloads[134],
},
{
- /* [84] */
+ /* [85] */
/* fn textureNumLevels<T : fiu32>(texture: texture_1d<T>) -> i32 */
/* fn textureNumLevels<T : fiu32>(texture: texture_2d<T>) -> i32 */
/* fn textureNumLevels<T : fiu32>(texture: texture_2d_array<T>) -> i32 */
@@ -9372,14 +9413,14 @@
/* overloads */ &kOverloads[81],
},
{
- /* [85] */
+ /* [86] */
/* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> i32 */
/* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> i32 */
/* num overloads */ 2,
- /* overloads */ &kOverloads[223],
+ /* overloads */ &kOverloads[225],
},
{
- /* [86] */
+ /* [87] */
/* fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32> */
/* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
/* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
@@ -9399,7 +9440,7 @@
/* overloads */ &kOverloads[42],
},
{
- /* [87] */
+ /* [88] */
/* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32> */
/* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32> */
@@ -9412,7 +9453,7 @@
/* overloads */ &kOverloads[108],
},
{
- /* [88] */
+ /* [89] */
/* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32 */
/* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32 */
@@ -9423,7 +9464,7 @@
/* overloads */ &kOverloads[128],
},
{
- /* [89] */
+ /* [90] */
/* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
/* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32 */
/* fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32 */
@@ -9434,7 +9475,7 @@
/* overloads */ &kOverloads[122],
},
{
- /* [90] */
+ /* [91] */
/* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
/* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
@@ -9447,7 +9488,7 @@
/* overloads */ &kOverloads[100],
},
{
- /* [91] */
+ /* [92] */
/* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32> */
/* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> vec4<f32> */
/* fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32> */
@@ -9467,7 +9508,7 @@
/* overloads */ &kOverloads[27],
},
{
- /* [92] */
+ /* [93] */
/* fn textureStore(texture: texture_storage_1d<f32_texel_format, write>, coords: i32, value: vec4<f32>) */
/* fn textureStore(texture: texture_storage_2d<f32_texel_format, write>, coords: vec2<i32>, value: vec4<f32>) */
/* fn textureStore(texture: texture_storage_2d_array<f32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>) */
@@ -9484,7 +9525,7 @@
/* overloads */ &kOverloads[69],
},
{
- /* [93] */
+ /* [94] */
/* fn textureLoad<T : fiu32>(texture: texture_1d<T>, coords: i32, level: i32) -> vec4<T> */
/* fn textureLoad<T : fiu32>(texture: texture_2d<T>, coords: vec2<i32>, level: i32) -> vec4<T> */
/* fn textureLoad<T : fiu32>(texture: texture_2d_array<T>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<T> */
@@ -9498,71 +9539,71 @@
/* overloads */ &kOverloads[91],
},
{
- /* [94] */
- /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[282],
- },
- {
/* [95] */
- /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
- /* num overloads */ 1,
- /* overloads */ &kOverloads[283],
- },
- {
- /* [96] */
- /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[284],
},
{
- /* [97] */
- /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [96] */
+ /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
/* num overloads */ 1,
/* overloads */ &kOverloads[285],
},
{
- /* [98] */
- /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [97] */
+ /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[286],
},
{
- /* [99] */
- /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [98] */
+ /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[287],
},
{
- /* [100] */
- /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [99] */
+ /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[288],
},
{
- /* [101] */
- /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [100] */
+ /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[289],
},
{
- /* [102] */
- /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [101] */
+ /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[290],
},
{
- /* [103] */
- /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* [102] */
+ /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[291],
},
{
- /* [104] */
- /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> vec2<T> */
+ /* [103] */
+ /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
/* overloads */ &kOverloads[292],
},
+ {
+ /* [104] */
+ /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[293],
+ },
+ {
+ /* [105] */
+ /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> vec2<T> */
+ /* num overloads */ 1,
+ /* overloads */ &kOverloads[294],
+ },
};
// clang-format on
diff --git a/src/tint/builtins.def b/src/tint/builtins.def
index 9b2dd71..feb7f7a 100644
--- a/src/tint/builtins.def
+++ b/src/tint/builtins.def
@@ -316,6 +316,8 @@
fn exp2(f32) -> f32
fn exp2<N: num>(vec<N, f32>) -> vec<N, f32>
fn faceForward<N: num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32>
+fn firstLeadingBit<T: iu32>(T) -> T
+fn firstLeadingBit<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
fn firstTrailingBit<T: iu32>(T) -> T
fn firstTrailingBit<N: num, T: iu32>(vec<N, T>) -> vec<N, T>
fn floor(f32) -> f32
diff --git a/src/tint/program_builder.h b/src/tint/program_builder.h
index 1647b06..dc79eea 100644
--- a/src/tint/program_builder.h
+++ b/src/tint/program_builder.h
@@ -1596,6 +1596,15 @@
Expr(std::forward<EXPR>(expr)));
}
+ /// @param expr the expression to perform a unary complement on
+ /// @return an ast::UnaryOpExpression that is the unary complement of the
+ /// input expression
+ template <typename EXPR>
+ const ast::UnaryOpExpression* Complement(EXPR&& expr) {
+ return create<ast::UnaryOpExpression>(ast::UnaryOp::kComplement,
+ Expr(std::forward<EXPR>(expr)));
+ }
+
/// @param source the source information
/// @param func the function name
/// @param args the function call arguments
diff --git a/src/tint/sem/builtin_type.cc b/src/tint/sem/builtin_type.cc
index c19434d..bd60a8f 100644
--- a/src/tint/sem/builtin_type.cc
+++ b/src/tint/sem/builtin_type.cc
@@ -117,6 +117,9 @@
if (name == "faceForward") {
return BuiltinType::kFaceForward;
}
+ if (name == "firstLeadingBit") {
+ return BuiltinType::kFirstLeadingBit;
+ }
if (name == "firstTrailingBit") {
return BuiltinType::kFirstTrailingBit;
}
@@ -410,6 +413,8 @@
return "exp2";
case BuiltinType::kFaceForward:
return "faceForward";
+ case BuiltinType::kFirstLeadingBit:
+ return "firstLeadingBit";
case BuiltinType::kFirstTrailingBit:
return "firstTrailingBit";
case BuiltinType::kFloor:
diff --git a/src/tint/sem/builtin_type.h b/src/tint/sem/builtin_type.h
index 1a5d7e7..a52bc1d 100644
--- a/src/tint/sem/builtin_type.h
+++ b/src/tint/sem/builtin_type.h
@@ -63,6 +63,7 @@
kExp,
kExp2,
kFaceForward,
+ kFirstLeadingBit,
kFirstTrailingBit,
kFloor,
kFma,
diff --git a/src/tint/transform/builtin_polyfill.cc b/src/tint/transform/builtin_polyfill.cc
index 45e8995..3bc3af1 100644
--- a/src/tint/transform/builtin_polyfill.cc
+++ b/src/tint/transform/builtin_polyfill.cc
@@ -55,10 +55,7 @@
return b.ty.vec<ProgramBuilder::u32>(width);
};
auto V = [&](uint32_t value) -> const ast::Expression* {
- if (width == 1) {
- return b.Expr(value);
- }
- return b.Construct(b.ty.vec<ProgramBuilder::u32>(width), value);
+ return ScalarOrVector(width, value);
};
b.Func(
name, {b.Param("v", T(ty))}, T(ty),
@@ -120,10 +117,7 @@
return b.ty.vec<ProgramBuilder::u32>(width);
};
auto V = [&](uint32_t value) -> const ast::Expression* {
- if (width == 1) {
- return b.Expr(value);
- }
- return b.Construct(b.ty.vec<ProgramBuilder::u32>(width), value);
+ return ScalarOrVector(width, value);
};
auto B = [&](const ast::Expression* value) -> const ast::Expression* {
if (width == 1) {
@@ -176,6 +170,87 @@
return name;
}
+ /// Builds the polyfill function for the `firstLeadingBit` builtin
+ /// @param ty the parameter and return type for the function
+ /// @return the polyfill function name
+ Symbol firstLeadingBit(const sem::Type* ty) {
+ auto name = b.Symbols().New("tint_first_leading_bit");
+ uint32_t width = WidthOf(ty);
+
+ // Returns either u32 or vecN<u32>
+ auto U = [&]() -> const ast::Type* {
+ if (width == 1) {
+ return b.ty.u32();
+ }
+ return b.ty.vec<ProgramBuilder::u32>(width);
+ };
+ auto V = [&](uint32_t value) -> const ast::Expression* {
+ return ScalarOrVector(width, value);
+ };
+ auto B = [&](const ast::Expression* value) -> const ast::Expression* {
+ if (width == 1) {
+ return b.Construct<bool>(value);
+ }
+ return b.Construct(b.ty.vec<bool>(width), value);
+ };
+
+ const ast::Expression* x = nullptr;
+ if (ty->is_unsigned_scalar_or_vector()) {
+ x = b.Expr("v");
+ } else {
+ // If ty is signed, then the value is inverted if the sign is negative
+ x = b.Call("select", //
+ b.Construct(U(), "v"), //
+ b.Construct(U(), b.Complement("v")), //
+ b.LessThan("v", ScalarOrVector(width, 0)));
+ }
+
+ b.Func(name, {b.Param("v", T(ty))}, T(ty),
+ {
+ // var x = v; (unsigned)
+ // var x = select(U(v), ~U(v), v < 0); (signed)
+ b.Decl(b.Var("x", nullptr, x)),
+ // let b16 = select(0, 16, bool(x & 0xffff0000));
+ b.Decl(b.Const("b16", nullptr,
+ b.Call("select", V(0), V(16),
+ B(b.And("x", V(0xffff0000)))))),
+ // x = x >> b16;
+ b.Assign("x", b.Shr("x", "b16")),
+ // let b8 = select(0, 8, bool(x & 0x0000ff00));
+ b.Decl(b.Const(
+ "b8", nullptr,
+ b.Call("select", V(0), V(8), B(b.And("x", V(0x0000ff00)))))),
+ // x = x >> b8;
+ b.Assign("x", b.Shr("x", "b8")),
+ // let b4 = select(0, 4, bool(x & 0x000000f0));
+ b.Decl(b.Const(
+ "b4", nullptr,
+ b.Call("select", V(0), V(4), B(b.And("x", V(0x000000f0)))))),
+ // x = x >> b4;
+ b.Assign("x", b.Shr("x", "b4")),
+ // let b2 = select(0, 2, bool(x & 0x0000000c));
+ b.Decl(b.Const(
+ "b2", nullptr,
+ b.Call("select", V(0), V(2), B(b.And("x", V(0x0000000c)))))),
+ // x = x >> b2;
+ b.Assign("x", b.Shr("x", "b2")),
+ // let b1 = select(0, 1, bool(x & 0x00000002));
+ b.Decl(b.Const(
+ "b1", nullptr,
+ b.Call("select", V(0), V(1), B(b.And("x", V(0x00000002)))))),
+ // let is_zero = select(0, 0xffffffff, x == 0);
+ b.Decl(b.Const("is_zero", nullptr,
+ b.Call("select", V(0), V(0xffffffff),
+ b.Equal("x", V(0))))),
+ // return R(b16 | b8 | b4 | b2 | b1 | zero);
+ b.Return(b.Construct(
+ T(ty),
+ b.Or(b.Or(b.Or(b.Or(b.Or("b16", "b8"), "b4"), "b2"), "b1"),
+ "is_zero"))),
+ });
+ return name;
+ }
+
/// Builds the polyfill function for the `firstTrailingBit` builtin
/// @param ty the parameter and return type for the function
/// @return the polyfill function name
@@ -191,10 +266,7 @@
return b.ty.vec<ProgramBuilder::u32>(width);
};
auto V = [&](uint32_t value) -> const ast::Expression* {
- if (width == 1) {
- return b.Expr(value);
- }
- return b.Construct(b.ty.vec<ProgramBuilder::u32>(width), value);
+ return ScalarOrVector(width, value);
};
auto B = [&](const ast::Expression* value) -> const ast::Expression* {
if (width == 1) {
@@ -257,6 +329,13 @@
}
return 1;
}
+ template <typename T>
+ const ast::Expression* ScalarOrVector(uint32_t width, T value) const {
+ if (width == 1) {
+ return b.Expr(value);
+ }
+ return b.Construct(b.ty.vec<T>(width), value);
+ }
};
BuiltinPolyfill::BuiltinPolyfill() = default;
@@ -282,6 +361,11 @@
return true;
}
break;
+ case sem::BuiltinType::kFirstLeadingBit:
+ if (builtins.first_leading_bit) {
+ return true;
+ }
+ break;
case sem::BuiltinType::kFirstTrailingBit:
if (builtins.first_trailing_bit) {
return true;
@@ -330,6 +414,13 @@
});
}
break;
+ case sem::BuiltinType::kFirstLeadingBit:
+ if (builtins.first_leading_bit) {
+ polyfill = utils::GetOrCreate(polyfills, builtin, [&] {
+ return s.firstLeadingBit(builtin->ReturnType());
+ });
+ }
+ break;
case sem::BuiltinType::kFirstTrailingBit:
if (builtins.first_trailing_bit) {
polyfill = utils::GetOrCreate(polyfills, builtin, [&] {
diff --git a/src/tint/transform/builtin_polyfill.h b/src/tint/transform/builtin_polyfill.h
index b86e0e6..ab3ee25 100644
--- a/src/tint/transform/builtin_polyfill.h
+++ b/src/tint/transform/builtin_polyfill.h
@@ -34,6 +34,8 @@
bool count_leading_zeros = false;
/// Should `countTrailingZeros()` be polyfilled?
bool count_trailing_zeros = false;
+ /// Should `firstLeadingBit()` be polyfilled?
+ bool first_leading_bit = false;
/// Should `firstTrailingBit()` be polyfilled?
bool first_trailing_bit = false;
};
diff --git a/src/tint/transform/builtin_polyfill_test.cc b/src/tint/transform/builtin_polyfill_test.cc
index 155e6d6..081c5b8 100644
--- a/src/tint/transform/builtin_polyfill_test.cc
+++ b/src/tint/transform/builtin_polyfill_test.cc
@@ -349,6 +349,160 @@
}
////////////////////////////////////////////////////////////////////////////////
+// firstLeadingBit
+////////////////////////////////////////////////////////////////////////////////
+DataMap polyfillFirstLeadingBit() {
+ BuiltinPolyfill::Builtins builtins;
+ builtins.first_leading_bit = true;
+ DataMap data;
+ data.Add<BuiltinPolyfill::Config>(builtins);
+ return data;
+}
+
+TEST_F(BuiltinPolyfillTest, ShouldRunFirstLeadingBit) {
+ auto* src = R"(
+fn f() {
+ firstLeadingBit(0xf);
+}
+)";
+
+ EXPECT_FALSE(ShouldRun<BuiltinPolyfill>(src));
+ EXPECT_TRUE(ShouldRun<BuiltinPolyfill>(src, polyfillFirstLeadingBit()));
+}
+
+TEST_F(BuiltinPolyfillTest, FirstLeadingBit_i32) {
+ auto* src = R"(
+fn f() {
+ let r : i32 = firstLeadingBit(15);
+}
+)";
+
+ auto* expect = R"(
+fn tint_first_leading_bit(v : i32) -> i32 {
+ var x = select(u32(v), u32(~(v)), (v < 0));
+ let b16 = select(0u, 16u, bool((x & 4294901760u)));
+ x = (x >> b16);
+ let b8 = select(0u, 8u, bool((x & 65280u)));
+ x = (x >> b8);
+ let b4 = select(0u, 4u, bool((x & 240u)));
+ x = (x >> b4);
+ let b2 = select(0u, 2u, bool((x & 12u)));
+ x = (x >> b2);
+ let b1 = select(0u, 1u, bool((x & 2u)));
+ let is_zero = select(0u, 4294967295u, (x == 0u));
+ return i32((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+fn f() {
+ let r : i32 = tint_first_leading_bit(15);
+}
+)";
+
+ auto got = Run<BuiltinPolyfill>(src, polyfillFirstLeadingBit());
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(BuiltinPolyfillTest, FirstLeadingBit_u32) {
+ auto* src = R"(
+fn f() {
+ let r : u32 = firstLeadingBit(15u);
+}
+)";
+
+ auto* expect = R"(
+fn tint_first_leading_bit(v : u32) -> u32 {
+ var x = v;
+ let b16 = select(0u, 16u, bool((x & 4294901760u)));
+ x = (x >> b16);
+ let b8 = select(0u, 8u, bool((x & 65280u)));
+ x = (x >> b8);
+ let b4 = select(0u, 4u, bool((x & 240u)));
+ x = (x >> b4);
+ let b2 = select(0u, 2u, bool((x & 12u)));
+ x = (x >> b2);
+ let b1 = select(0u, 1u, bool((x & 2u)));
+ let is_zero = select(0u, 4294967295u, (x == 0u));
+ return u32((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+fn f() {
+ let r : u32 = tint_first_leading_bit(15u);
+}
+)";
+
+ auto got = Run<BuiltinPolyfill>(src, polyfillFirstLeadingBit());
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(BuiltinPolyfillTest, FirstLeadingBit_vec3_i32) {
+ auto* src = R"(
+fn f() {
+ let r : vec3<i32> = firstLeadingBit(vec3<i32>(15));
+}
+)";
+
+ auto* expect = R"(
+fn tint_first_leading_bit(v : vec3<i32>) -> vec3<i32> {
+ var x = select(vec3<u32>(v), vec3<u32>(~(v)), (v < vec3<i32>(0)));
+ let b16 = select(vec3<u32>(0u), vec3<u32>(16u), vec3<bool>((x & vec3<u32>(4294901760u))));
+ x = (x >> b16);
+ let b8 = select(vec3<u32>(0u), vec3<u32>(8u), vec3<bool>((x & vec3<u32>(65280u))));
+ x = (x >> b8);
+ let b4 = select(vec3<u32>(0u), vec3<u32>(4u), vec3<bool>((x & vec3<u32>(240u))));
+ x = (x >> b4);
+ let b2 = select(vec3<u32>(0u), vec3<u32>(2u), vec3<bool>((x & vec3<u32>(12u))));
+ x = (x >> b2);
+ let b1 = select(vec3<u32>(0u), vec3<u32>(1u), vec3<bool>((x & vec3<u32>(2u))));
+ let is_zero = select(vec3<u32>(0u), vec3<u32>(4294967295u), (x == vec3<u32>(0u)));
+ return vec3<i32>((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+fn f() {
+ let r : vec3<i32> = tint_first_leading_bit(vec3<i32>(15));
+}
+)";
+
+ auto got = Run<BuiltinPolyfill>(src, polyfillFirstLeadingBit());
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(BuiltinPolyfillTest, FirstLeadingBit_vec3_u32) {
+ auto* src = R"(
+fn f() {
+ let r : vec3<u32> = firstLeadingBit(vec3<u32>(15u));
+}
+)";
+
+ auto* expect = R"(
+fn tint_first_leading_bit(v : vec3<u32>) -> vec3<u32> {
+ var x = v;
+ let b16 = select(vec3<u32>(0u), vec3<u32>(16u), vec3<bool>((x & vec3<u32>(4294901760u))));
+ x = (x >> b16);
+ let b8 = select(vec3<u32>(0u), vec3<u32>(8u), vec3<bool>((x & vec3<u32>(65280u))));
+ x = (x >> b8);
+ let b4 = select(vec3<u32>(0u), vec3<u32>(4u), vec3<bool>((x & vec3<u32>(240u))));
+ x = (x >> b4);
+ let b2 = select(vec3<u32>(0u), vec3<u32>(2u), vec3<bool>((x & vec3<u32>(12u))));
+ x = (x >> b2);
+ let b1 = select(vec3<u32>(0u), vec3<u32>(1u), vec3<bool>((x & vec3<u32>(2u))));
+ let is_zero = select(vec3<u32>(0u), vec3<u32>(4294967295u), (x == vec3<u32>(0u)));
+ return vec3<u32>((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+fn f() {
+ let r : vec3<u32> = tint_first_leading_bit(vec3<u32>(15u));
+}
+)";
+
+ auto got = Run<BuiltinPolyfill>(src, polyfillFirstLeadingBit());
+
+ EXPECT_EQ(expect, str(got));
+}
+
+////////////////////////////////////////////////////////////////////////////////
// firstTrailingBit
////////////////////////////////////////////////////////////////////////////////
DataMap polyfillFirstTrailingBit() {
diff --git a/src/tint/transform/glsl.cc b/src/tint/transform/glsl.cc
index fb4d230..e7d79f1 100644
--- a/src/tint/transform/glsl.cc
+++ b/src/tint/transform/glsl.cc
@@ -56,6 +56,7 @@
BuiltinPolyfill::Builtins polyfills;
polyfills.count_leading_zeros = true;
polyfills.count_trailing_zeros = true;
+ polyfills.first_leading_bit = true;
polyfills.first_trailing_bit = true;
data.Add<BuiltinPolyfill::Config>(polyfills);
manager.Add<BuiltinPolyfill>();
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index d84082d..7fa1efd 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -147,6 +147,7 @@
// and `firstbithigh`.
polyfills.count_leading_zeros = true;
polyfills.count_trailing_zeros = true;
+ polyfills.first_leading_bit = true;
polyfills.first_trailing_bit = true;
data.Add<transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<transform::BuiltinPolyfill>();
diff --git a/src/tint/writer/msl/generator_impl.cc b/src/tint/writer/msl/generator_impl.cc
index 2f79eb5..e56c23f 100644
--- a/src/tint/writer/msl/generator_impl.cc
+++ b/src/tint/writer/msl/generator_impl.cc
@@ -130,6 +130,7 @@
{ // Builtin polyfills
transform::BuiltinPolyfill::Builtins polyfills;
+ polyfills.first_leading_bit = true;
polyfills.first_trailing_bit = true;
data.Add<transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<transform::BuiltinPolyfill>();
diff --git a/src/tint/writer/spirv/builder.cc b/src/tint/writer/spirv/builder.cc
index e8dbe8e..29ef10e 100644
--- a/src/tint/writer/spirv/builder.cc
+++ b/src/tint/writer/spirv/builder.cc
@@ -263,6 +263,7 @@
transform::BuiltinPolyfill::Builtins polyfills;
polyfills.count_leading_zeros = true;
polyfills.count_trailing_zeros = true;
+ polyfills.first_leading_bit = true;
polyfills.first_trailing_bit = true;
data.Add<transform::BuiltinPolyfill::Config>(polyfills);
manager.Add<transform::BuiltinPolyfill>();
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl
new file mode 100644
index 0000000..f8756c4
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(vec<4, u32>) -> vec<4, u32>
+fn firstLeadingBit_000ff3() {
+ var res: vec4<u32> = firstLeadingBit(vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_000ff3();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_000ff3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_000ff3();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl
new file mode 100644
index 0000000..468de36
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+uvec4 tint_first_leading_bit(uvec4 v) {
+ uvec4 x = v;
+ uvec4 b16 = mix(uvec4(0u), uvec4(16u), bvec4((x & uvec4(4294901760u))));
+ x = (x >> b16);
+ uvec4 b8 = mix(uvec4(0u), uvec4(8u), bvec4((x & uvec4(65280u))));
+ x = (x >> b8);
+ uvec4 b4 = mix(uvec4(0u), uvec4(4u), bvec4((x & uvec4(240u))));
+ x = (x >> b4);
+ uvec4 b2 = mix(uvec4(0u), uvec4(2u), bvec4((x & uvec4(12u))));
+ x = (x >> b2);
+ uvec4 b1 = mix(uvec4(0u), uvec4(1u), bvec4((x & uvec4(2u))));
+ uvec4 is_zero = mix(uvec4(0u), uvec4(4294967295u), equal(x, uvec4(0u)));
+ return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_000ff3() {
+ uvec4 res = tint_first_leading_bit(uvec4(0u, 0u, 0u, 0u));
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_000ff3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+uvec4 tint_first_leading_bit(uvec4 v) {
+ uvec4 x = v;
+ uvec4 b16 = mix(uvec4(0u), uvec4(16u), bvec4((x & uvec4(4294901760u))));
+ x = (x >> b16);
+ uvec4 b8 = mix(uvec4(0u), uvec4(8u), bvec4((x & uvec4(65280u))));
+ x = (x >> b8);
+ uvec4 b4 = mix(uvec4(0u), uvec4(4u), bvec4((x & uvec4(240u))));
+ x = (x >> b4);
+ uvec4 b2 = mix(uvec4(0u), uvec4(2u), bvec4((x & uvec4(12u))));
+ x = (x >> b2);
+ uvec4 b1 = mix(uvec4(0u), uvec4(1u), bvec4((x & uvec4(2u))));
+ uvec4 is_zero = mix(uvec4(0u), uvec4(4294967295u), equal(x, uvec4(0u)));
+ return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_000ff3() {
+ uvec4 res = tint_first_leading_bit(uvec4(0u, 0u, 0u, 0u));
+}
+
+void fragment_main() {
+ firstLeadingBit_000ff3();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+uvec4 tint_first_leading_bit(uvec4 v) {
+ uvec4 x = v;
+ uvec4 b16 = mix(uvec4(0u), uvec4(16u), bvec4((x & uvec4(4294901760u))));
+ x = (x >> b16);
+ uvec4 b8 = mix(uvec4(0u), uvec4(8u), bvec4((x & uvec4(65280u))));
+ x = (x >> b8);
+ uvec4 b4 = mix(uvec4(0u), uvec4(4u), bvec4((x & uvec4(240u))));
+ x = (x >> b4);
+ uvec4 b2 = mix(uvec4(0u), uvec4(2u), bvec4((x & uvec4(12u))));
+ x = (x >> b2);
+ uvec4 b1 = mix(uvec4(0u), uvec4(1u), bvec4((x & uvec4(2u))));
+ uvec4 is_zero = mix(uvec4(0u), uvec4(4294967295u), equal(x, uvec4(0u)));
+ return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_000ff3() {
+ uvec4 res = tint_first_leading_bit(uvec4(0u, 0u, 0u, 0u));
+}
+
+void compute_main() {
+ firstLeadingBit_000ff3();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.hlsl
new file mode 100644
index 0000000..19e18a6
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+uint4 tint_first_leading_bit(uint4 v) {
+ uint4 x = v;
+ const uint4 b16 = (bool4((x & uint4((4294901760u).xxxx))) ? uint4((16u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b16);
+ const uint4 b8 = (bool4((x & uint4((65280u).xxxx))) ? uint4((8u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b8);
+ const uint4 b4 = (bool4((x & uint4((240u).xxxx))) ? uint4((4u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b4);
+ const uint4 b2 = (bool4((x & uint4((12u).xxxx))) ? uint4((2u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b2);
+ const uint4 b1 = (bool4((x & uint4((2u).xxxx))) ? uint4((1u).xxxx) : uint4((0u).xxxx));
+ const uint4 is_zero = ((x == uint4((0u).xxxx)) ? uint4((4294967295u).xxxx) : uint4((0u).xxxx));
+ return uint4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_000ff3() {
+ uint4 res = tint_first_leading_bit(uint4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_000ff3();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_000ff3();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_000ff3();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.msl
new file mode 100644
index 0000000..93ad61b
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+uint4 tint_first_leading_bit(uint4 v) {
+ uint4 x = v;
+ uint4 const b16 = select(uint4(0u), uint4(16u), bool4((x & uint4(4294901760u))));
+ x = (x >> b16);
+ uint4 const b8 = select(uint4(0u), uint4(8u), bool4((x & uint4(65280u))));
+ x = (x >> b8);
+ uint4 const b4 = select(uint4(0u), uint4(4u), bool4((x & uint4(240u))));
+ x = (x >> b4);
+ uint4 const b2 = select(uint4(0u), uint4(2u), bool4((x & uint4(12u))));
+ x = (x >> b2);
+ uint4 const b1 = select(uint4(0u), uint4(1u), bool4((x & uint4(2u))));
+ uint4 const is_zero = select(uint4(0u), uint4(4294967295u), (x == uint4(0u)));
+ return uint4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_000ff3() {
+ uint4 res = tint_first_leading_bit(uint4());
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_000ff3();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_000ff3();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_000ff3();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.spvasm
new file mode 100644
index 0000000..a7000b0
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.spvasm
@@ -0,0 +1,142 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 99
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_000ff3 "firstLeadingBit_000ff3"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %v4uint = OpTypeVector %uint 4
+ %9 = OpTypeFunction %v4uint %v4uint
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %17 = OpConstantNull %v4uint
+ %bool = OpTypeBool
+ %v4bool = OpTypeVector %bool 4
+%uint_4294901760 = OpConstant %uint 4294901760
+ %24 = OpConstantComposite %v4uint %uint_4294901760 %uint_4294901760 %uint_4294901760 %uint_4294901760
+ %uint_16 = OpConstant %uint 16
+ %27 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
+ %uint_0 = OpConstant %uint 0
+ %29 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
+ %uint_65280 = OpConstant %uint 65280
+ %36 = OpConstantComposite %v4uint %uint_65280 %uint_65280 %uint_65280 %uint_65280
+ %uint_8 = OpConstant %uint 8
+ %39 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
+ %uint_240 = OpConstant %uint 240
+ %46 = OpConstantComposite %v4uint %uint_240 %uint_240 %uint_240 %uint_240
+ %uint_4 = OpConstant %uint 4
+ %49 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
+ %uint_12 = OpConstant %uint 12
+ %56 = OpConstantComposite %v4uint %uint_12 %uint_12 %uint_12 %uint_12
+ %uint_2 = OpConstant %uint 2
+ %59 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
+ %uint_1 = OpConstant %uint 1
+ %67 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %72 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
+ %void = OpTypeVoid
+ %79 = OpTypeFunction %void
+ %85 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %v4uint None %9
+ %v = OpFunctionParameter %v4uint
+ %14 = OpLabel
+ %x = OpVariable %_ptr_Function_v4uint Function %17
+ OpStore %x %v
+ %22 = OpLoad %v4uint %x
+ %25 = OpBitwiseAnd %v4uint %22 %24
+ %19 = OpINotEqual %v4bool %25 %17
+ %18 = OpSelect %v4uint %19 %27 %29
+ %30 = OpLoad %v4uint %x
+ %31 = OpShiftRightLogical %v4uint %30 %18
+ OpStore %x %31
+ %34 = OpLoad %v4uint %x
+ %37 = OpBitwiseAnd %v4uint %34 %36
+ %33 = OpINotEqual %v4bool %37 %17
+ %32 = OpSelect %v4uint %33 %39 %29
+ %40 = OpLoad %v4uint %x
+ %41 = OpShiftRightLogical %v4uint %40 %32
+ OpStore %x %41
+ %44 = OpLoad %v4uint %x
+ %47 = OpBitwiseAnd %v4uint %44 %46
+ %43 = OpINotEqual %v4bool %47 %17
+ %42 = OpSelect %v4uint %43 %49 %29
+ %50 = OpLoad %v4uint %x
+ %51 = OpShiftRightLogical %v4uint %50 %42
+ OpStore %x %51
+ %54 = OpLoad %v4uint %x
+ %57 = OpBitwiseAnd %v4uint %54 %56
+ %53 = OpINotEqual %v4bool %57 %17
+ %52 = OpSelect %v4uint %53 %59 %29
+ %60 = OpLoad %v4uint %x
+ %61 = OpShiftRightLogical %v4uint %60 %52
+ OpStore %x %61
+ %64 = OpLoad %v4uint %x
+ %65 = OpBitwiseAnd %v4uint %64 %59
+ %63 = OpINotEqual %v4bool %65 %17
+ %62 = OpSelect %v4uint %63 %67 %29
+ %69 = OpLoad %v4uint %x
+ %70 = OpIEqual %v4bool %69 %29
+ %68 = OpSelect %v4uint %70 %72 %29
+ %74 = OpBitwiseOr %v4uint %18 %32
+ %75 = OpBitwiseOr %v4uint %74 %42
+ %76 = OpBitwiseOr %v4uint %75 %52
+ %77 = OpBitwiseOr %v4uint %76 %62
+ %78 = OpBitwiseOr %v4uint %77 %68
+ OpReturnValue %78
+ OpFunctionEnd
+%firstLeadingBit_000ff3 = OpFunction %void None %79
+ %82 = OpLabel
+ %res = OpVariable %_ptr_Function_v4uint Function %17
+ %83 = OpFunctionCall %v4uint %tint_first_leading_bit %17
+ OpStore %res %83
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %85
+ %87 = OpLabel
+ %88 = OpFunctionCall %void %firstLeadingBit_000ff3
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %79
+ %90 = OpLabel
+ %91 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %91
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %79
+ %94 = OpLabel
+ %95 = OpFunctionCall %void %firstLeadingBit_000ff3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %79
+ %97 = OpLabel
+ %98 = OpFunctionCall %void %firstLeadingBit_000ff3
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.wgsl
new file mode 100644
index 0000000..bf0529c
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/000ff3.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_000ff3() {
+ var res : vec4<u32> = firstLeadingBit(vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_000ff3();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_000ff3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_000ff3();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl
new file mode 100644
index 0000000..f5f6ae0
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(vec<3, i32>) -> vec<3, i32>
+fn firstLeadingBit_35053e() {
+ var res: vec3<i32> = firstLeadingBit(vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_35053e();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_35053e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_35053e();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl
new file mode 100644
index 0000000..1a63d7a
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+ivec3 tint_first_leading_bit(ivec3 v) {
+ uvec3 x = mix(uvec3(v), uvec3(~(v)), lessThan(v, ivec3(0)));
+ uvec3 b16 = mix(uvec3(0u), uvec3(16u), bvec3((x & uvec3(4294901760u))));
+ x = (x >> b16);
+ uvec3 b8 = mix(uvec3(0u), uvec3(8u), bvec3((x & uvec3(65280u))));
+ x = (x >> b8);
+ uvec3 b4 = mix(uvec3(0u), uvec3(4u), bvec3((x & uvec3(240u))));
+ x = (x >> b4);
+ uvec3 b2 = mix(uvec3(0u), uvec3(2u), bvec3((x & uvec3(12u))));
+ x = (x >> b2);
+ uvec3 b1 = mix(uvec3(0u), uvec3(1u), bvec3((x & uvec3(2u))));
+ uvec3 is_zero = mix(uvec3(0u), uvec3(4294967295u), equal(x, uvec3(0u)));
+ return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_35053e() {
+ ivec3 res = tint_first_leading_bit(ivec3(0, 0, 0));
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_35053e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+ivec3 tint_first_leading_bit(ivec3 v) {
+ uvec3 x = mix(uvec3(v), uvec3(~(v)), lessThan(v, ivec3(0)));
+ uvec3 b16 = mix(uvec3(0u), uvec3(16u), bvec3((x & uvec3(4294901760u))));
+ x = (x >> b16);
+ uvec3 b8 = mix(uvec3(0u), uvec3(8u), bvec3((x & uvec3(65280u))));
+ x = (x >> b8);
+ uvec3 b4 = mix(uvec3(0u), uvec3(4u), bvec3((x & uvec3(240u))));
+ x = (x >> b4);
+ uvec3 b2 = mix(uvec3(0u), uvec3(2u), bvec3((x & uvec3(12u))));
+ x = (x >> b2);
+ uvec3 b1 = mix(uvec3(0u), uvec3(1u), bvec3((x & uvec3(2u))));
+ uvec3 is_zero = mix(uvec3(0u), uvec3(4294967295u), equal(x, uvec3(0u)));
+ return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_35053e() {
+ ivec3 res = tint_first_leading_bit(ivec3(0, 0, 0));
+}
+
+void fragment_main() {
+ firstLeadingBit_35053e();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+ivec3 tint_first_leading_bit(ivec3 v) {
+ uvec3 x = mix(uvec3(v), uvec3(~(v)), lessThan(v, ivec3(0)));
+ uvec3 b16 = mix(uvec3(0u), uvec3(16u), bvec3((x & uvec3(4294901760u))));
+ x = (x >> b16);
+ uvec3 b8 = mix(uvec3(0u), uvec3(8u), bvec3((x & uvec3(65280u))));
+ x = (x >> b8);
+ uvec3 b4 = mix(uvec3(0u), uvec3(4u), bvec3((x & uvec3(240u))));
+ x = (x >> b4);
+ uvec3 b2 = mix(uvec3(0u), uvec3(2u), bvec3((x & uvec3(12u))));
+ x = (x >> b2);
+ uvec3 b1 = mix(uvec3(0u), uvec3(1u), bvec3((x & uvec3(2u))));
+ uvec3 is_zero = mix(uvec3(0u), uvec3(4294967295u), equal(x, uvec3(0u)));
+ return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_35053e() {
+ ivec3 res = tint_first_leading_bit(ivec3(0, 0, 0));
+}
+
+void compute_main() {
+ firstLeadingBit_35053e();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.hlsl
new file mode 100644
index 0000000..bf1d41d
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+int3 tint_first_leading_bit(int3 v) {
+ uint3 x = ((v < int3((0).xxx)) ? uint3(~(v)) : uint3(v));
+ const uint3 b16 = (bool3((x & uint3((4294901760u).xxx))) ? uint3((16u).xxx) : uint3((0u).xxx));
+ x = (x >> b16);
+ const uint3 b8 = (bool3((x & uint3((65280u).xxx))) ? uint3((8u).xxx) : uint3((0u).xxx));
+ x = (x >> b8);
+ const uint3 b4 = (bool3((x & uint3((240u).xxx))) ? uint3((4u).xxx) : uint3((0u).xxx));
+ x = (x >> b4);
+ const uint3 b2 = (bool3((x & uint3((12u).xxx))) ? uint3((2u).xxx) : uint3((0u).xxx));
+ x = (x >> b2);
+ const uint3 b1 = (bool3((x & uint3((2u).xxx))) ? uint3((1u).xxx) : uint3((0u).xxx));
+ const uint3 is_zero = ((x == uint3((0u).xxx)) ? uint3((4294967295u).xxx) : uint3((0u).xxx));
+ return int3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_35053e() {
+ int3 res = tint_first_leading_bit(int3(0, 0, 0));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_35053e();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_35053e();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_35053e();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.msl
new file mode 100644
index 0000000..820fea3
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+int3 tint_first_leading_bit(int3 v) {
+ uint3 x = select(uint3(v), uint3(~(v)), (v < int3(0)));
+ uint3 const b16 = select(uint3(0u), uint3(16u), bool3((x & uint3(4294901760u))));
+ x = (x >> b16);
+ uint3 const b8 = select(uint3(0u), uint3(8u), bool3((x & uint3(65280u))));
+ x = (x >> b8);
+ uint3 const b4 = select(uint3(0u), uint3(4u), bool3((x & uint3(240u))));
+ x = (x >> b4);
+ uint3 const b2 = select(uint3(0u), uint3(2u), bool3((x & uint3(12u))));
+ x = (x >> b2);
+ uint3 const b1 = select(uint3(0u), uint3(1u), bool3((x & uint3(2u))));
+ uint3 const is_zero = select(uint3(0u), uint3(4294967295u), (x == uint3(0u)));
+ return int3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_35053e() {
+ int3 res = tint_first_leading_bit(int3());
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_35053e();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_35053e();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_35053e();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.spvasm
new file mode 100644
index 0000000..f35960a
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.spvasm
@@ -0,0 +1,154 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 110
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_35053e "firstLeadingBit_35053e"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %v3int = OpTypeVector %int 3
+ %9 = OpTypeFunction %v3int %v3int
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %int_0 = OpConstant %int 0
+ %19 = OpConstantComposite %v3int %int_0 %int_0 %int_0
+ %bool = OpTypeBool
+ %v3bool = OpTypeVector %bool 3
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %28 = OpConstantNull %v3uint
+%uint_4294901760 = OpConstant %uint 4294901760
+ %33 = OpConstantComposite %v3uint %uint_4294901760 %uint_4294901760 %uint_4294901760
+ %uint_16 = OpConstant %uint 16
+ %36 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
+ %uint_0 = OpConstant %uint 0
+ %38 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
+ %uint_65280 = OpConstant %uint 65280
+ %45 = OpConstantComposite %v3uint %uint_65280 %uint_65280 %uint_65280
+ %uint_8 = OpConstant %uint 8
+ %48 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
+ %uint_240 = OpConstant %uint 240
+ %55 = OpConstantComposite %v3uint %uint_240 %uint_240 %uint_240
+ %uint_4 = OpConstant %uint 4
+ %58 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
+ %uint_12 = OpConstant %uint 12
+ %65 = OpConstantComposite %v3uint %uint_12 %uint_12 %uint_12
+ %uint_2 = OpConstant %uint 2
+ %68 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
+ %uint_1 = OpConstant %uint 1
+ %76 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %81 = OpConstantComposite %v3uint %uint_4294967295 %uint_4294967295 %uint_4294967295
+ %void = OpTypeVoid
+ %88 = OpTypeFunction %void
+ %93 = OpConstantNull %v3int
+%_ptr_Function_v3int = OpTypePointer Function %v3int
+ %96 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %v3int None %9
+ %v = OpFunctionParameter %v3int
+ %14 = OpLabel
+ %x = OpVariable %_ptr_Function_v3uint Function %28
+ %20 = OpSLessThan %v3bool %v %19
+ %24 = OpNot %v3int %v
+ %23 = OpBitcast %v3uint %24
+ %25 = OpBitcast %v3uint %v
+ %15 = OpSelect %v3uint %20 %23 %25
+ OpStore %x %15
+ %31 = OpLoad %v3uint %x
+ %34 = OpBitwiseAnd %v3uint %31 %33
+ %30 = OpINotEqual %v3bool %34 %28
+ %29 = OpSelect %v3uint %30 %36 %38
+ %39 = OpLoad %v3uint %x
+ %40 = OpShiftRightLogical %v3uint %39 %29
+ OpStore %x %40
+ %43 = OpLoad %v3uint %x
+ %46 = OpBitwiseAnd %v3uint %43 %45
+ %42 = OpINotEqual %v3bool %46 %28
+ %41 = OpSelect %v3uint %42 %48 %38
+ %49 = OpLoad %v3uint %x
+ %50 = OpShiftRightLogical %v3uint %49 %41
+ OpStore %x %50
+ %53 = OpLoad %v3uint %x
+ %56 = OpBitwiseAnd %v3uint %53 %55
+ %52 = OpINotEqual %v3bool %56 %28
+ %51 = OpSelect %v3uint %52 %58 %38
+ %59 = OpLoad %v3uint %x
+ %60 = OpShiftRightLogical %v3uint %59 %51
+ OpStore %x %60
+ %63 = OpLoad %v3uint %x
+ %66 = OpBitwiseAnd %v3uint %63 %65
+ %62 = OpINotEqual %v3bool %66 %28
+ %61 = OpSelect %v3uint %62 %68 %38
+ %69 = OpLoad %v3uint %x
+ %70 = OpShiftRightLogical %v3uint %69 %61
+ OpStore %x %70
+ %73 = OpLoad %v3uint %x
+ %74 = OpBitwiseAnd %v3uint %73 %68
+ %72 = OpINotEqual %v3bool %74 %28
+ %71 = OpSelect %v3uint %72 %76 %38
+ %78 = OpLoad %v3uint %x
+ %79 = OpIEqual %v3bool %78 %38
+ %77 = OpSelect %v3uint %79 %81 %38
+ %83 = OpBitwiseOr %v3uint %29 %41
+ %84 = OpBitwiseOr %v3uint %83 %51
+ %85 = OpBitwiseOr %v3uint %84 %61
+ %86 = OpBitwiseOr %v3uint %85 %71
+ %87 = OpBitwiseOr %v3uint %86 %77
+ %82 = OpBitcast %v3int %87
+ OpReturnValue %82
+ OpFunctionEnd
+%firstLeadingBit_35053e = OpFunction %void None %88
+ %91 = OpLabel
+ %res = OpVariable %_ptr_Function_v3int Function %93
+ %92 = OpFunctionCall %v3int %tint_first_leading_bit %93
+ OpStore %res %92
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %96
+ %98 = OpLabel
+ %99 = OpFunctionCall %void %firstLeadingBit_35053e
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %88
+ %101 = OpLabel
+ %102 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %102
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %88
+ %105 = OpLabel
+ %106 = OpFunctionCall %void %firstLeadingBit_35053e
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %88
+ %108 = OpLabel
+ %109 = OpFunctionCall %void %firstLeadingBit_35053e
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.wgsl
new file mode 100644
index 0000000..cbf0a6b
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/35053e.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_35053e() {
+ var res : vec3<i32> = firstLeadingBit(vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_35053e();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_35053e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_35053e();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl
new file mode 100644
index 0000000..cf3c903
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(vec<3, u32>) -> vec<3, u32>
+fn firstLeadingBit_3fd7d0() {
+ var res: vec3<u32> = firstLeadingBit(vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_3fd7d0();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_3fd7d0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_3fd7d0();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl
new file mode 100644
index 0000000..9cbb716
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+uvec3 tint_first_leading_bit(uvec3 v) {
+ uvec3 x = v;
+ uvec3 b16 = mix(uvec3(0u), uvec3(16u), bvec3((x & uvec3(4294901760u))));
+ x = (x >> b16);
+ uvec3 b8 = mix(uvec3(0u), uvec3(8u), bvec3((x & uvec3(65280u))));
+ x = (x >> b8);
+ uvec3 b4 = mix(uvec3(0u), uvec3(4u), bvec3((x & uvec3(240u))));
+ x = (x >> b4);
+ uvec3 b2 = mix(uvec3(0u), uvec3(2u), bvec3((x & uvec3(12u))));
+ x = (x >> b2);
+ uvec3 b1 = mix(uvec3(0u), uvec3(1u), bvec3((x & uvec3(2u))));
+ uvec3 is_zero = mix(uvec3(0u), uvec3(4294967295u), equal(x, uvec3(0u)));
+ return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_3fd7d0() {
+ uvec3 res = tint_first_leading_bit(uvec3(0u, 0u, 0u));
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_3fd7d0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+uvec3 tint_first_leading_bit(uvec3 v) {
+ uvec3 x = v;
+ uvec3 b16 = mix(uvec3(0u), uvec3(16u), bvec3((x & uvec3(4294901760u))));
+ x = (x >> b16);
+ uvec3 b8 = mix(uvec3(0u), uvec3(8u), bvec3((x & uvec3(65280u))));
+ x = (x >> b8);
+ uvec3 b4 = mix(uvec3(0u), uvec3(4u), bvec3((x & uvec3(240u))));
+ x = (x >> b4);
+ uvec3 b2 = mix(uvec3(0u), uvec3(2u), bvec3((x & uvec3(12u))));
+ x = (x >> b2);
+ uvec3 b1 = mix(uvec3(0u), uvec3(1u), bvec3((x & uvec3(2u))));
+ uvec3 is_zero = mix(uvec3(0u), uvec3(4294967295u), equal(x, uvec3(0u)));
+ return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_3fd7d0() {
+ uvec3 res = tint_first_leading_bit(uvec3(0u, 0u, 0u));
+}
+
+void fragment_main() {
+ firstLeadingBit_3fd7d0();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+uvec3 tint_first_leading_bit(uvec3 v) {
+ uvec3 x = v;
+ uvec3 b16 = mix(uvec3(0u), uvec3(16u), bvec3((x & uvec3(4294901760u))));
+ x = (x >> b16);
+ uvec3 b8 = mix(uvec3(0u), uvec3(8u), bvec3((x & uvec3(65280u))));
+ x = (x >> b8);
+ uvec3 b4 = mix(uvec3(0u), uvec3(4u), bvec3((x & uvec3(240u))));
+ x = (x >> b4);
+ uvec3 b2 = mix(uvec3(0u), uvec3(2u), bvec3((x & uvec3(12u))));
+ x = (x >> b2);
+ uvec3 b1 = mix(uvec3(0u), uvec3(1u), bvec3((x & uvec3(2u))));
+ uvec3 is_zero = mix(uvec3(0u), uvec3(4294967295u), equal(x, uvec3(0u)));
+ return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_3fd7d0() {
+ uvec3 res = tint_first_leading_bit(uvec3(0u, 0u, 0u));
+}
+
+void compute_main() {
+ firstLeadingBit_3fd7d0();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.hlsl
new file mode 100644
index 0000000..0dff82e
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+uint3 tint_first_leading_bit(uint3 v) {
+ uint3 x = v;
+ const uint3 b16 = (bool3((x & uint3((4294901760u).xxx))) ? uint3((16u).xxx) : uint3((0u).xxx));
+ x = (x >> b16);
+ const uint3 b8 = (bool3((x & uint3((65280u).xxx))) ? uint3((8u).xxx) : uint3((0u).xxx));
+ x = (x >> b8);
+ const uint3 b4 = (bool3((x & uint3((240u).xxx))) ? uint3((4u).xxx) : uint3((0u).xxx));
+ x = (x >> b4);
+ const uint3 b2 = (bool3((x & uint3((12u).xxx))) ? uint3((2u).xxx) : uint3((0u).xxx));
+ x = (x >> b2);
+ const uint3 b1 = (bool3((x & uint3((2u).xxx))) ? uint3((1u).xxx) : uint3((0u).xxx));
+ const uint3 is_zero = ((x == uint3((0u).xxx)) ? uint3((4294967295u).xxx) : uint3((0u).xxx));
+ return uint3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_3fd7d0() {
+ uint3 res = tint_first_leading_bit(uint3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_3fd7d0();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_3fd7d0();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_3fd7d0();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.msl
new file mode 100644
index 0000000..2e4d23c
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+uint3 tint_first_leading_bit(uint3 v) {
+ uint3 x = v;
+ uint3 const b16 = select(uint3(0u), uint3(16u), bool3((x & uint3(4294901760u))));
+ x = (x >> b16);
+ uint3 const b8 = select(uint3(0u), uint3(8u), bool3((x & uint3(65280u))));
+ x = (x >> b8);
+ uint3 const b4 = select(uint3(0u), uint3(4u), bool3((x & uint3(240u))));
+ x = (x >> b4);
+ uint3 const b2 = select(uint3(0u), uint3(2u), bool3((x & uint3(12u))));
+ x = (x >> b2);
+ uint3 const b1 = select(uint3(0u), uint3(1u), bool3((x & uint3(2u))));
+ uint3 const is_zero = select(uint3(0u), uint3(4294967295u), (x == uint3(0u)));
+ return uint3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_3fd7d0() {
+ uint3 res = tint_first_leading_bit(uint3());
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_3fd7d0();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_3fd7d0();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_3fd7d0();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.spvasm
new file mode 100644
index 0000000..28097dd
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.spvasm
@@ -0,0 +1,142 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 99
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_3fd7d0 "firstLeadingBit_3fd7d0"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %v3uint = OpTypeVector %uint 3
+ %9 = OpTypeFunction %v3uint %v3uint
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+ %17 = OpConstantNull %v3uint
+ %bool = OpTypeBool
+ %v3bool = OpTypeVector %bool 3
+%uint_4294901760 = OpConstant %uint 4294901760
+ %24 = OpConstantComposite %v3uint %uint_4294901760 %uint_4294901760 %uint_4294901760
+ %uint_16 = OpConstant %uint 16
+ %27 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
+ %uint_0 = OpConstant %uint 0
+ %29 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
+ %uint_65280 = OpConstant %uint 65280
+ %36 = OpConstantComposite %v3uint %uint_65280 %uint_65280 %uint_65280
+ %uint_8 = OpConstant %uint 8
+ %39 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
+ %uint_240 = OpConstant %uint 240
+ %46 = OpConstantComposite %v3uint %uint_240 %uint_240 %uint_240
+ %uint_4 = OpConstant %uint 4
+ %49 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
+ %uint_12 = OpConstant %uint 12
+ %56 = OpConstantComposite %v3uint %uint_12 %uint_12 %uint_12
+ %uint_2 = OpConstant %uint 2
+ %59 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
+ %uint_1 = OpConstant %uint 1
+ %67 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %72 = OpConstantComposite %v3uint %uint_4294967295 %uint_4294967295 %uint_4294967295
+ %void = OpTypeVoid
+ %79 = OpTypeFunction %void
+ %85 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %v3uint None %9
+ %v = OpFunctionParameter %v3uint
+ %14 = OpLabel
+ %x = OpVariable %_ptr_Function_v3uint Function %17
+ OpStore %x %v
+ %22 = OpLoad %v3uint %x
+ %25 = OpBitwiseAnd %v3uint %22 %24
+ %19 = OpINotEqual %v3bool %25 %17
+ %18 = OpSelect %v3uint %19 %27 %29
+ %30 = OpLoad %v3uint %x
+ %31 = OpShiftRightLogical %v3uint %30 %18
+ OpStore %x %31
+ %34 = OpLoad %v3uint %x
+ %37 = OpBitwiseAnd %v3uint %34 %36
+ %33 = OpINotEqual %v3bool %37 %17
+ %32 = OpSelect %v3uint %33 %39 %29
+ %40 = OpLoad %v3uint %x
+ %41 = OpShiftRightLogical %v3uint %40 %32
+ OpStore %x %41
+ %44 = OpLoad %v3uint %x
+ %47 = OpBitwiseAnd %v3uint %44 %46
+ %43 = OpINotEqual %v3bool %47 %17
+ %42 = OpSelect %v3uint %43 %49 %29
+ %50 = OpLoad %v3uint %x
+ %51 = OpShiftRightLogical %v3uint %50 %42
+ OpStore %x %51
+ %54 = OpLoad %v3uint %x
+ %57 = OpBitwiseAnd %v3uint %54 %56
+ %53 = OpINotEqual %v3bool %57 %17
+ %52 = OpSelect %v3uint %53 %59 %29
+ %60 = OpLoad %v3uint %x
+ %61 = OpShiftRightLogical %v3uint %60 %52
+ OpStore %x %61
+ %64 = OpLoad %v3uint %x
+ %65 = OpBitwiseAnd %v3uint %64 %59
+ %63 = OpINotEqual %v3bool %65 %17
+ %62 = OpSelect %v3uint %63 %67 %29
+ %69 = OpLoad %v3uint %x
+ %70 = OpIEqual %v3bool %69 %29
+ %68 = OpSelect %v3uint %70 %72 %29
+ %74 = OpBitwiseOr %v3uint %18 %32
+ %75 = OpBitwiseOr %v3uint %74 %42
+ %76 = OpBitwiseOr %v3uint %75 %52
+ %77 = OpBitwiseOr %v3uint %76 %62
+ %78 = OpBitwiseOr %v3uint %77 %68
+ OpReturnValue %78
+ OpFunctionEnd
+%firstLeadingBit_3fd7d0 = OpFunction %void None %79
+ %82 = OpLabel
+ %res = OpVariable %_ptr_Function_v3uint Function %17
+ %83 = OpFunctionCall %v3uint %tint_first_leading_bit %17
+ OpStore %res %83
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %85
+ %87 = OpLabel
+ %88 = OpFunctionCall %void %firstLeadingBit_3fd7d0
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %79
+ %90 = OpLabel
+ %91 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %91
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %79
+ %94 = OpLabel
+ %95 = OpFunctionCall %void %firstLeadingBit_3fd7d0
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %79
+ %97 = OpLabel
+ %98 = OpFunctionCall %void %firstLeadingBit_3fd7d0
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
new file mode 100644
index 0000000..4537a4a
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_3fd7d0() {
+ var res : vec3<u32> = firstLeadingBit(vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_3fd7d0();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_3fd7d0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_3fd7d0();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl
new file mode 100644
index 0000000..fd9559f
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(i32) -> i32
+fn firstLeadingBit_57a1a3() {
+ var res: i32 = firstLeadingBit(1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_57a1a3();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_57a1a3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_57a1a3();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl
new file mode 100644
index 0000000..410c075
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+int tint_first_leading_bit(int v) {
+ uint x = ((v < 0) ? uint(~(v)) : uint(v));
+ uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_57a1a3() {
+ int res = tint_first_leading_bit(1);
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_57a1a3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+int tint_first_leading_bit(int v) {
+ uint x = ((v < 0) ? uint(~(v)) : uint(v));
+ uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_57a1a3() {
+ int res = tint_first_leading_bit(1);
+}
+
+void fragment_main() {
+ firstLeadingBit_57a1a3();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+int tint_first_leading_bit(int v) {
+ uint x = ((v < 0) ? uint(~(v)) : uint(v));
+ uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_57a1a3() {
+ int res = tint_first_leading_bit(1);
+}
+
+void compute_main() {
+ firstLeadingBit_57a1a3();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.hlsl
new file mode 100644
index 0000000..59d3bb4
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+int tint_first_leading_bit(int v) {
+ uint x = ((v < 0) ? uint(~(v)) : uint(v));
+ const uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ const uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ const uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ const uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ const uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ const uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_57a1a3() {
+ int res = tint_first_leading_bit(1);
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_57a1a3();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_57a1a3();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_57a1a3();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.msl
new file mode 100644
index 0000000..0fe7af8
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+int tint_first_leading_bit(int v) {
+ uint x = select(uint(v), uint(~(v)), (v < 0));
+ uint const b16 = select(0u, 16u, bool((x & 4294901760u)));
+ x = (x >> b16);
+ uint const b8 = select(0u, 8u, bool((x & 65280u)));
+ x = (x >> b8);
+ uint const b4 = select(0u, 4u, bool((x & 240u)));
+ x = (x >> b4);
+ uint const b2 = select(0u, 2u, bool((x & 12u)));
+ x = (x >> b2);
+ uint const b1 = select(0u, 1u, bool((x & 2u)));
+ uint const is_zero = select(0u, 4294967295u, (x == 0u));
+ return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_57a1a3() {
+ int res = tint_first_leading_bit(1);
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_57a1a3();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_57a1a3();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_57a1a3();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.spvasm
new file mode 100644
index 0000000..bea47c7
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.spvasm
@@ -0,0 +1,140 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 96
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_57a1a3 "firstLeadingBit_57a1a3"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %9 = OpTypeFunction %int %int
+ %uint = OpTypeInt 32 0
+ %int_0 = OpConstant %int 0
+ %bool = OpTypeBool
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %24 = OpConstantNull %uint
+%uint_4294901760 = OpConstant %uint 4294901760
+ %uint_16 = OpConstant %uint 16
+ %uint_0 = OpConstant %uint 0
+ %uint_65280 = OpConstant %uint 65280
+ %uint_8 = OpConstant %uint 8
+ %uint_240 = OpConstant %uint 240
+ %uint_4 = OpConstant %uint 4
+ %uint_12 = OpConstant %uint 12
+ %uint_2 = OpConstant %uint 2
+ %uint_1 = OpConstant %uint 1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %void = OpTypeVoid
+ %73 = OpTypeFunction %void
+ %int_1 = OpConstant %int 1
+%_ptr_Function_int = OpTypePointer Function %int
+ %81 = OpConstantNull %int
+ %82 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %int None %9
+ %v = OpFunctionParameter %int
+ %13 = OpLabel
+ %x = OpVariable %_ptr_Function_uint Function %24
+ %17 = OpSLessThan %bool %v %int_0
+ %20 = OpNot %int %v
+ %19 = OpBitcast %uint %20
+ %21 = OpBitcast %uint %v
+ %14 = OpSelect %uint %17 %19 %21
+ OpStore %x %14
+ %27 = OpLoad %uint %x
+ %29 = OpBitwiseAnd %uint %27 %uint_4294901760
+ %26 = OpINotEqual %bool %29 %24
+ %25 = OpSelect %uint %26 %uint_16 %uint_0
+ %32 = OpLoad %uint %x
+ %33 = OpShiftRightLogical %uint %32 %25
+ OpStore %x %33
+ %36 = OpLoad %uint %x
+ %38 = OpBitwiseAnd %uint %36 %uint_65280
+ %35 = OpINotEqual %bool %38 %24
+ %34 = OpSelect %uint %35 %uint_8 %uint_0
+ %40 = OpLoad %uint %x
+ %41 = OpShiftRightLogical %uint %40 %34
+ OpStore %x %41
+ %44 = OpLoad %uint %x
+ %46 = OpBitwiseAnd %uint %44 %uint_240
+ %43 = OpINotEqual %bool %46 %24
+ %42 = OpSelect %uint %43 %uint_4 %uint_0
+ %48 = OpLoad %uint %x
+ %49 = OpShiftRightLogical %uint %48 %42
+ OpStore %x %49
+ %52 = OpLoad %uint %x
+ %54 = OpBitwiseAnd %uint %52 %uint_12
+ %51 = OpINotEqual %bool %54 %24
+ %50 = OpSelect %uint %51 %uint_2 %uint_0
+ %56 = OpLoad %uint %x
+ %57 = OpShiftRightLogical %uint %56 %50
+ OpStore %x %57
+ %60 = OpLoad %uint %x
+ %61 = OpBitwiseAnd %uint %60 %uint_2
+ %59 = OpINotEqual %bool %61 %24
+ %58 = OpSelect %uint %59 %uint_1 %uint_0
+ %64 = OpLoad %uint %x
+ %65 = OpIEqual %bool %64 %uint_0
+ %63 = OpSelect %uint %65 %uint_4294967295 %uint_0
+ %68 = OpBitwiseOr %uint %25 %34
+ %69 = OpBitwiseOr %uint %68 %42
+ %70 = OpBitwiseOr %uint %69 %50
+ %71 = OpBitwiseOr %uint %70 %58
+ %72 = OpBitwiseOr %uint %71 %63
+ %67 = OpBitcast %int %72
+ OpReturnValue %67
+ OpFunctionEnd
+%firstLeadingBit_57a1a3 = OpFunction %void None %73
+ %76 = OpLabel
+ %res = OpVariable %_ptr_Function_int Function %81
+ %77 = OpFunctionCall %int %tint_first_leading_bit %int_1
+ OpStore %res %77
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %82
+ %84 = OpLabel
+ %85 = OpFunctionCall %void %firstLeadingBit_57a1a3
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %73
+ %87 = OpLabel
+ %88 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %88
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %73
+ %91 = OpLabel
+ %92 = OpFunctionCall %void %firstLeadingBit_57a1a3
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %73
+ %94 = OpLabel
+ %95 = OpFunctionCall %void %firstLeadingBit_57a1a3
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.wgsl
new file mode 100644
index 0000000..ff32238
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/57a1a3.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_57a1a3() {
+ var res : i32 = firstLeadingBit(1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_57a1a3();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_57a1a3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_57a1a3();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl
new file mode 100644
index 0000000..bf6b11c
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(vec<2, u32>) -> vec<2, u32>
+fn firstLeadingBit_6fe804() {
+ var res: vec2<u32> = firstLeadingBit(vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_6fe804();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_6fe804();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_6fe804();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl
new file mode 100644
index 0000000..d1639b4
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+uvec2 tint_first_leading_bit(uvec2 v) {
+ uvec2 x = v;
+ uvec2 b16 = mix(uvec2(0u), uvec2(16u), bvec2((x & uvec2(4294901760u))));
+ x = (x >> b16);
+ uvec2 b8 = mix(uvec2(0u), uvec2(8u), bvec2((x & uvec2(65280u))));
+ x = (x >> b8);
+ uvec2 b4 = mix(uvec2(0u), uvec2(4u), bvec2((x & uvec2(240u))));
+ x = (x >> b4);
+ uvec2 b2 = mix(uvec2(0u), uvec2(2u), bvec2((x & uvec2(12u))));
+ x = (x >> b2);
+ uvec2 b1 = mix(uvec2(0u), uvec2(1u), bvec2((x & uvec2(2u))));
+ uvec2 is_zero = mix(uvec2(0u), uvec2(4294967295u), equal(x, uvec2(0u)));
+ return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_6fe804() {
+ uvec2 res = tint_first_leading_bit(uvec2(0u, 0u));
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_6fe804();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+uvec2 tint_first_leading_bit(uvec2 v) {
+ uvec2 x = v;
+ uvec2 b16 = mix(uvec2(0u), uvec2(16u), bvec2((x & uvec2(4294901760u))));
+ x = (x >> b16);
+ uvec2 b8 = mix(uvec2(0u), uvec2(8u), bvec2((x & uvec2(65280u))));
+ x = (x >> b8);
+ uvec2 b4 = mix(uvec2(0u), uvec2(4u), bvec2((x & uvec2(240u))));
+ x = (x >> b4);
+ uvec2 b2 = mix(uvec2(0u), uvec2(2u), bvec2((x & uvec2(12u))));
+ x = (x >> b2);
+ uvec2 b1 = mix(uvec2(0u), uvec2(1u), bvec2((x & uvec2(2u))));
+ uvec2 is_zero = mix(uvec2(0u), uvec2(4294967295u), equal(x, uvec2(0u)));
+ return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_6fe804() {
+ uvec2 res = tint_first_leading_bit(uvec2(0u, 0u));
+}
+
+void fragment_main() {
+ firstLeadingBit_6fe804();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+uvec2 tint_first_leading_bit(uvec2 v) {
+ uvec2 x = v;
+ uvec2 b16 = mix(uvec2(0u), uvec2(16u), bvec2((x & uvec2(4294901760u))));
+ x = (x >> b16);
+ uvec2 b8 = mix(uvec2(0u), uvec2(8u), bvec2((x & uvec2(65280u))));
+ x = (x >> b8);
+ uvec2 b4 = mix(uvec2(0u), uvec2(4u), bvec2((x & uvec2(240u))));
+ x = (x >> b4);
+ uvec2 b2 = mix(uvec2(0u), uvec2(2u), bvec2((x & uvec2(12u))));
+ x = (x >> b2);
+ uvec2 b1 = mix(uvec2(0u), uvec2(1u), bvec2((x & uvec2(2u))));
+ uvec2 is_zero = mix(uvec2(0u), uvec2(4294967295u), equal(x, uvec2(0u)));
+ return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_6fe804() {
+ uvec2 res = tint_first_leading_bit(uvec2(0u, 0u));
+}
+
+void compute_main() {
+ firstLeadingBit_6fe804();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.hlsl
new file mode 100644
index 0000000..374977a
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+uint2 tint_first_leading_bit(uint2 v) {
+ uint2 x = v;
+ const uint2 b16 = (bool2((x & uint2((4294901760u).xx))) ? uint2((16u).xx) : uint2((0u).xx));
+ x = (x >> b16);
+ const uint2 b8 = (bool2((x & uint2((65280u).xx))) ? uint2((8u).xx) : uint2((0u).xx));
+ x = (x >> b8);
+ const uint2 b4 = (bool2((x & uint2((240u).xx))) ? uint2((4u).xx) : uint2((0u).xx));
+ x = (x >> b4);
+ const uint2 b2 = (bool2((x & uint2((12u).xx))) ? uint2((2u).xx) : uint2((0u).xx));
+ x = (x >> b2);
+ const uint2 b1 = (bool2((x & uint2((2u).xx))) ? uint2((1u).xx) : uint2((0u).xx));
+ const uint2 is_zero = ((x == uint2((0u).xx)) ? uint2((4294967295u).xx) : uint2((0u).xx));
+ return uint2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_6fe804() {
+ uint2 res = tint_first_leading_bit(uint2(0u, 0u));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_6fe804();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_6fe804();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_6fe804();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.msl
new file mode 100644
index 0000000..6a5203b
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+uint2 tint_first_leading_bit(uint2 v) {
+ uint2 x = v;
+ uint2 const b16 = select(uint2(0u), uint2(16u), bool2((x & uint2(4294901760u))));
+ x = (x >> b16);
+ uint2 const b8 = select(uint2(0u), uint2(8u), bool2((x & uint2(65280u))));
+ x = (x >> b8);
+ uint2 const b4 = select(uint2(0u), uint2(4u), bool2((x & uint2(240u))));
+ x = (x >> b4);
+ uint2 const b2 = select(uint2(0u), uint2(2u), bool2((x & uint2(12u))));
+ x = (x >> b2);
+ uint2 const b1 = select(uint2(0u), uint2(1u), bool2((x & uint2(2u))));
+ uint2 const is_zero = select(uint2(0u), uint2(4294967295u), (x == uint2(0u)));
+ return uint2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_6fe804() {
+ uint2 res = tint_first_leading_bit(uint2());
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_6fe804();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_6fe804();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_6fe804();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.spvasm
new file mode 100644
index 0000000..399a3d1
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.spvasm
@@ -0,0 +1,142 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 99
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_6fe804 "firstLeadingBit_6fe804"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %9 = OpTypeFunction %v2uint %v2uint
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %17 = OpConstantNull %v2uint
+ %bool = OpTypeBool
+ %v2bool = OpTypeVector %bool 2
+%uint_4294901760 = OpConstant %uint 4294901760
+ %24 = OpConstantComposite %v2uint %uint_4294901760 %uint_4294901760
+ %uint_16 = OpConstant %uint 16
+ %27 = OpConstantComposite %v2uint %uint_16 %uint_16
+ %uint_0 = OpConstant %uint 0
+ %29 = OpConstantComposite %v2uint %uint_0 %uint_0
+ %uint_65280 = OpConstant %uint 65280
+ %36 = OpConstantComposite %v2uint %uint_65280 %uint_65280
+ %uint_8 = OpConstant %uint 8
+ %39 = OpConstantComposite %v2uint %uint_8 %uint_8
+ %uint_240 = OpConstant %uint 240
+ %46 = OpConstantComposite %v2uint %uint_240 %uint_240
+ %uint_4 = OpConstant %uint 4
+ %49 = OpConstantComposite %v2uint %uint_4 %uint_4
+ %uint_12 = OpConstant %uint 12
+ %56 = OpConstantComposite %v2uint %uint_12 %uint_12
+ %uint_2 = OpConstant %uint 2
+ %59 = OpConstantComposite %v2uint %uint_2 %uint_2
+ %uint_1 = OpConstant %uint 1
+ %67 = OpConstantComposite %v2uint %uint_1 %uint_1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %72 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
+ %void = OpTypeVoid
+ %79 = OpTypeFunction %void
+ %85 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %v2uint None %9
+ %v = OpFunctionParameter %v2uint
+ %14 = OpLabel
+ %x = OpVariable %_ptr_Function_v2uint Function %17
+ OpStore %x %v
+ %22 = OpLoad %v2uint %x
+ %25 = OpBitwiseAnd %v2uint %22 %24
+ %19 = OpINotEqual %v2bool %25 %17
+ %18 = OpSelect %v2uint %19 %27 %29
+ %30 = OpLoad %v2uint %x
+ %31 = OpShiftRightLogical %v2uint %30 %18
+ OpStore %x %31
+ %34 = OpLoad %v2uint %x
+ %37 = OpBitwiseAnd %v2uint %34 %36
+ %33 = OpINotEqual %v2bool %37 %17
+ %32 = OpSelect %v2uint %33 %39 %29
+ %40 = OpLoad %v2uint %x
+ %41 = OpShiftRightLogical %v2uint %40 %32
+ OpStore %x %41
+ %44 = OpLoad %v2uint %x
+ %47 = OpBitwiseAnd %v2uint %44 %46
+ %43 = OpINotEqual %v2bool %47 %17
+ %42 = OpSelect %v2uint %43 %49 %29
+ %50 = OpLoad %v2uint %x
+ %51 = OpShiftRightLogical %v2uint %50 %42
+ OpStore %x %51
+ %54 = OpLoad %v2uint %x
+ %57 = OpBitwiseAnd %v2uint %54 %56
+ %53 = OpINotEqual %v2bool %57 %17
+ %52 = OpSelect %v2uint %53 %59 %29
+ %60 = OpLoad %v2uint %x
+ %61 = OpShiftRightLogical %v2uint %60 %52
+ OpStore %x %61
+ %64 = OpLoad %v2uint %x
+ %65 = OpBitwiseAnd %v2uint %64 %59
+ %63 = OpINotEqual %v2bool %65 %17
+ %62 = OpSelect %v2uint %63 %67 %29
+ %69 = OpLoad %v2uint %x
+ %70 = OpIEqual %v2bool %69 %29
+ %68 = OpSelect %v2uint %70 %72 %29
+ %74 = OpBitwiseOr %v2uint %18 %32
+ %75 = OpBitwiseOr %v2uint %74 %42
+ %76 = OpBitwiseOr %v2uint %75 %52
+ %77 = OpBitwiseOr %v2uint %76 %62
+ %78 = OpBitwiseOr %v2uint %77 %68
+ OpReturnValue %78
+ OpFunctionEnd
+%firstLeadingBit_6fe804 = OpFunction %void None %79
+ %82 = OpLabel
+ %res = OpVariable %_ptr_Function_v2uint Function %17
+ %83 = OpFunctionCall %v2uint %tint_first_leading_bit %17
+ OpStore %res %83
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %85
+ %87 = OpLabel
+ %88 = OpFunctionCall %void %firstLeadingBit_6fe804
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %79
+ %90 = OpLabel
+ %91 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %91
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %79
+ %94 = OpLabel
+ %95 = OpFunctionCall %void %firstLeadingBit_6fe804
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %79
+ %97 = OpLabel
+ %98 = OpFunctionCall %void %firstLeadingBit_6fe804
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.wgsl
new file mode 100644
index 0000000..8eefa88
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/6fe804.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_6fe804() {
+ var res : vec2<u32> = firstLeadingBit(vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_6fe804();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_6fe804();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_6fe804();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl
new file mode 100644
index 0000000..737392e
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(vec<2, i32>) -> vec<2, i32>
+fn firstLeadingBit_a622c2() {
+ var res: vec2<i32> = firstLeadingBit(vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_a622c2();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_a622c2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_a622c2();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl
new file mode 100644
index 0000000..40a31ff
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+ivec2 tint_first_leading_bit(ivec2 v) {
+ uvec2 x = mix(uvec2(v), uvec2(~(v)), lessThan(v, ivec2(0)));
+ uvec2 b16 = mix(uvec2(0u), uvec2(16u), bvec2((x & uvec2(4294901760u))));
+ x = (x >> b16);
+ uvec2 b8 = mix(uvec2(0u), uvec2(8u), bvec2((x & uvec2(65280u))));
+ x = (x >> b8);
+ uvec2 b4 = mix(uvec2(0u), uvec2(4u), bvec2((x & uvec2(240u))));
+ x = (x >> b4);
+ uvec2 b2 = mix(uvec2(0u), uvec2(2u), bvec2((x & uvec2(12u))));
+ x = (x >> b2);
+ uvec2 b1 = mix(uvec2(0u), uvec2(1u), bvec2((x & uvec2(2u))));
+ uvec2 is_zero = mix(uvec2(0u), uvec2(4294967295u), equal(x, uvec2(0u)));
+ return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_a622c2() {
+ ivec2 res = tint_first_leading_bit(ivec2(0, 0));
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_a622c2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+ivec2 tint_first_leading_bit(ivec2 v) {
+ uvec2 x = mix(uvec2(v), uvec2(~(v)), lessThan(v, ivec2(0)));
+ uvec2 b16 = mix(uvec2(0u), uvec2(16u), bvec2((x & uvec2(4294901760u))));
+ x = (x >> b16);
+ uvec2 b8 = mix(uvec2(0u), uvec2(8u), bvec2((x & uvec2(65280u))));
+ x = (x >> b8);
+ uvec2 b4 = mix(uvec2(0u), uvec2(4u), bvec2((x & uvec2(240u))));
+ x = (x >> b4);
+ uvec2 b2 = mix(uvec2(0u), uvec2(2u), bvec2((x & uvec2(12u))));
+ x = (x >> b2);
+ uvec2 b1 = mix(uvec2(0u), uvec2(1u), bvec2((x & uvec2(2u))));
+ uvec2 is_zero = mix(uvec2(0u), uvec2(4294967295u), equal(x, uvec2(0u)));
+ return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_a622c2() {
+ ivec2 res = tint_first_leading_bit(ivec2(0, 0));
+}
+
+void fragment_main() {
+ firstLeadingBit_a622c2();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+ivec2 tint_first_leading_bit(ivec2 v) {
+ uvec2 x = mix(uvec2(v), uvec2(~(v)), lessThan(v, ivec2(0)));
+ uvec2 b16 = mix(uvec2(0u), uvec2(16u), bvec2((x & uvec2(4294901760u))));
+ x = (x >> b16);
+ uvec2 b8 = mix(uvec2(0u), uvec2(8u), bvec2((x & uvec2(65280u))));
+ x = (x >> b8);
+ uvec2 b4 = mix(uvec2(0u), uvec2(4u), bvec2((x & uvec2(240u))));
+ x = (x >> b4);
+ uvec2 b2 = mix(uvec2(0u), uvec2(2u), bvec2((x & uvec2(12u))));
+ x = (x >> b2);
+ uvec2 b1 = mix(uvec2(0u), uvec2(1u), bvec2((x & uvec2(2u))));
+ uvec2 is_zero = mix(uvec2(0u), uvec2(4294967295u), equal(x, uvec2(0u)));
+ return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_a622c2() {
+ ivec2 res = tint_first_leading_bit(ivec2(0, 0));
+}
+
+void compute_main() {
+ firstLeadingBit_a622c2();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.hlsl
new file mode 100644
index 0000000..c660637
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+int2 tint_first_leading_bit(int2 v) {
+ uint2 x = ((v < int2((0).xx)) ? uint2(~(v)) : uint2(v));
+ const uint2 b16 = (bool2((x & uint2((4294901760u).xx))) ? uint2((16u).xx) : uint2((0u).xx));
+ x = (x >> b16);
+ const uint2 b8 = (bool2((x & uint2((65280u).xx))) ? uint2((8u).xx) : uint2((0u).xx));
+ x = (x >> b8);
+ const uint2 b4 = (bool2((x & uint2((240u).xx))) ? uint2((4u).xx) : uint2((0u).xx));
+ x = (x >> b4);
+ const uint2 b2 = (bool2((x & uint2((12u).xx))) ? uint2((2u).xx) : uint2((0u).xx));
+ x = (x >> b2);
+ const uint2 b1 = (bool2((x & uint2((2u).xx))) ? uint2((1u).xx) : uint2((0u).xx));
+ const uint2 is_zero = ((x == uint2((0u).xx)) ? uint2((4294967295u).xx) : uint2((0u).xx));
+ return int2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_a622c2() {
+ int2 res = tint_first_leading_bit(int2(0, 0));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_a622c2();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_a622c2();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_a622c2();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.msl
new file mode 100644
index 0000000..c4bebbb
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+int2 tint_first_leading_bit(int2 v) {
+ uint2 x = select(uint2(v), uint2(~(v)), (v < int2(0)));
+ uint2 const b16 = select(uint2(0u), uint2(16u), bool2((x & uint2(4294901760u))));
+ x = (x >> b16);
+ uint2 const b8 = select(uint2(0u), uint2(8u), bool2((x & uint2(65280u))));
+ x = (x >> b8);
+ uint2 const b4 = select(uint2(0u), uint2(4u), bool2((x & uint2(240u))));
+ x = (x >> b4);
+ uint2 const b2 = select(uint2(0u), uint2(2u), bool2((x & uint2(12u))));
+ x = (x >> b2);
+ uint2 const b1 = select(uint2(0u), uint2(1u), bool2((x & uint2(2u))));
+ uint2 const is_zero = select(uint2(0u), uint2(4294967295u), (x == uint2(0u)));
+ return int2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_a622c2() {
+ int2 res = tint_first_leading_bit(int2());
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_a622c2();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_a622c2();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_a622c2();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.spvasm
new file mode 100644
index 0000000..3f27c36
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.spvasm
@@ -0,0 +1,154 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 110
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_a622c2 "firstLeadingBit_a622c2"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %v2int = OpTypeVector %int 2
+ %9 = OpTypeFunction %v2int %v2int
+ %uint = OpTypeInt 32 0
+ %v2uint = OpTypeVector %uint 2
+ %int_0 = OpConstant %int 0
+ %19 = OpConstantComposite %v2int %int_0 %int_0
+ %bool = OpTypeBool
+ %v2bool = OpTypeVector %bool 2
+%_ptr_Function_v2uint = OpTypePointer Function %v2uint
+ %28 = OpConstantNull %v2uint
+%uint_4294901760 = OpConstant %uint 4294901760
+ %33 = OpConstantComposite %v2uint %uint_4294901760 %uint_4294901760
+ %uint_16 = OpConstant %uint 16
+ %36 = OpConstantComposite %v2uint %uint_16 %uint_16
+ %uint_0 = OpConstant %uint 0
+ %38 = OpConstantComposite %v2uint %uint_0 %uint_0
+ %uint_65280 = OpConstant %uint 65280
+ %45 = OpConstantComposite %v2uint %uint_65280 %uint_65280
+ %uint_8 = OpConstant %uint 8
+ %48 = OpConstantComposite %v2uint %uint_8 %uint_8
+ %uint_240 = OpConstant %uint 240
+ %55 = OpConstantComposite %v2uint %uint_240 %uint_240
+ %uint_4 = OpConstant %uint 4
+ %58 = OpConstantComposite %v2uint %uint_4 %uint_4
+ %uint_12 = OpConstant %uint 12
+ %65 = OpConstantComposite %v2uint %uint_12 %uint_12
+ %uint_2 = OpConstant %uint 2
+ %68 = OpConstantComposite %v2uint %uint_2 %uint_2
+ %uint_1 = OpConstant %uint 1
+ %76 = OpConstantComposite %v2uint %uint_1 %uint_1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %81 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
+ %void = OpTypeVoid
+ %88 = OpTypeFunction %void
+ %93 = OpConstantNull %v2int
+%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %96 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %v2int None %9
+ %v = OpFunctionParameter %v2int
+ %14 = OpLabel
+ %x = OpVariable %_ptr_Function_v2uint Function %28
+ %20 = OpSLessThan %v2bool %v %19
+ %24 = OpNot %v2int %v
+ %23 = OpBitcast %v2uint %24
+ %25 = OpBitcast %v2uint %v
+ %15 = OpSelect %v2uint %20 %23 %25
+ OpStore %x %15
+ %31 = OpLoad %v2uint %x
+ %34 = OpBitwiseAnd %v2uint %31 %33
+ %30 = OpINotEqual %v2bool %34 %28
+ %29 = OpSelect %v2uint %30 %36 %38
+ %39 = OpLoad %v2uint %x
+ %40 = OpShiftRightLogical %v2uint %39 %29
+ OpStore %x %40
+ %43 = OpLoad %v2uint %x
+ %46 = OpBitwiseAnd %v2uint %43 %45
+ %42 = OpINotEqual %v2bool %46 %28
+ %41 = OpSelect %v2uint %42 %48 %38
+ %49 = OpLoad %v2uint %x
+ %50 = OpShiftRightLogical %v2uint %49 %41
+ OpStore %x %50
+ %53 = OpLoad %v2uint %x
+ %56 = OpBitwiseAnd %v2uint %53 %55
+ %52 = OpINotEqual %v2bool %56 %28
+ %51 = OpSelect %v2uint %52 %58 %38
+ %59 = OpLoad %v2uint %x
+ %60 = OpShiftRightLogical %v2uint %59 %51
+ OpStore %x %60
+ %63 = OpLoad %v2uint %x
+ %66 = OpBitwiseAnd %v2uint %63 %65
+ %62 = OpINotEqual %v2bool %66 %28
+ %61 = OpSelect %v2uint %62 %68 %38
+ %69 = OpLoad %v2uint %x
+ %70 = OpShiftRightLogical %v2uint %69 %61
+ OpStore %x %70
+ %73 = OpLoad %v2uint %x
+ %74 = OpBitwiseAnd %v2uint %73 %68
+ %72 = OpINotEqual %v2bool %74 %28
+ %71 = OpSelect %v2uint %72 %76 %38
+ %78 = OpLoad %v2uint %x
+ %79 = OpIEqual %v2bool %78 %38
+ %77 = OpSelect %v2uint %79 %81 %38
+ %83 = OpBitwiseOr %v2uint %29 %41
+ %84 = OpBitwiseOr %v2uint %83 %51
+ %85 = OpBitwiseOr %v2uint %84 %61
+ %86 = OpBitwiseOr %v2uint %85 %71
+ %87 = OpBitwiseOr %v2uint %86 %77
+ %82 = OpBitcast %v2int %87
+ OpReturnValue %82
+ OpFunctionEnd
+%firstLeadingBit_a622c2 = OpFunction %void None %88
+ %91 = OpLabel
+ %res = OpVariable %_ptr_Function_v2int Function %93
+ %92 = OpFunctionCall %v2int %tint_first_leading_bit %93
+ OpStore %res %92
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %96
+ %98 = OpLabel
+ %99 = OpFunctionCall %void %firstLeadingBit_a622c2
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %88
+ %101 = OpLabel
+ %102 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %102
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %88
+ %105 = OpLabel
+ %106 = OpFunctionCall %void %firstLeadingBit_a622c2
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %88
+ %108 = OpLabel
+ %109 = OpFunctionCall %void %firstLeadingBit_a622c2
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.wgsl
new file mode 100644
index 0000000..e7fb9d1
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/a622c2.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_a622c2() {
+ var res : vec2<i32> = firstLeadingBit(vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_a622c2();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_a622c2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_a622c2();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl
new file mode 100644
index 0000000..b085fdf
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(vec<4, i32>) -> vec<4, i32>
+fn firstLeadingBit_c1f940() {
+ var res: vec4<i32> = firstLeadingBit(vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_c1f940();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_c1f940();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_c1f940();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl
new file mode 100644
index 0000000..c73d7a8
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+ivec4 tint_first_leading_bit(ivec4 v) {
+ uvec4 x = mix(uvec4(v), uvec4(~(v)), lessThan(v, ivec4(0)));
+ uvec4 b16 = mix(uvec4(0u), uvec4(16u), bvec4((x & uvec4(4294901760u))));
+ x = (x >> b16);
+ uvec4 b8 = mix(uvec4(0u), uvec4(8u), bvec4((x & uvec4(65280u))));
+ x = (x >> b8);
+ uvec4 b4 = mix(uvec4(0u), uvec4(4u), bvec4((x & uvec4(240u))));
+ x = (x >> b4);
+ uvec4 b2 = mix(uvec4(0u), uvec4(2u), bvec4((x & uvec4(12u))));
+ x = (x >> b2);
+ uvec4 b1 = mix(uvec4(0u), uvec4(1u), bvec4((x & uvec4(2u))));
+ uvec4 is_zero = mix(uvec4(0u), uvec4(4294967295u), equal(x, uvec4(0u)));
+ return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_c1f940() {
+ ivec4 res = tint_first_leading_bit(ivec4(0, 0, 0, 0));
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_c1f940();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+ivec4 tint_first_leading_bit(ivec4 v) {
+ uvec4 x = mix(uvec4(v), uvec4(~(v)), lessThan(v, ivec4(0)));
+ uvec4 b16 = mix(uvec4(0u), uvec4(16u), bvec4((x & uvec4(4294901760u))));
+ x = (x >> b16);
+ uvec4 b8 = mix(uvec4(0u), uvec4(8u), bvec4((x & uvec4(65280u))));
+ x = (x >> b8);
+ uvec4 b4 = mix(uvec4(0u), uvec4(4u), bvec4((x & uvec4(240u))));
+ x = (x >> b4);
+ uvec4 b2 = mix(uvec4(0u), uvec4(2u), bvec4((x & uvec4(12u))));
+ x = (x >> b2);
+ uvec4 b1 = mix(uvec4(0u), uvec4(1u), bvec4((x & uvec4(2u))));
+ uvec4 is_zero = mix(uvec4(0u), uvec4(4294967295u), equal(x, uvec4(0u)));
+ return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_c1f940() {
+ ivec4 res = tint_first_leading_bit(ivec4(0, 0, 0, 0));
+}
+
+void fragment_main() {
+ firstLeadingBit_c1f940();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+ivec4 tint_first_leading_bit(ivec4 v) {
+ uvec4 x = mix(uvec4(v), uvec4(~(v)), lessThan(v, ivec4(0)));
+ uvec4 b16 = mix(uvec4(0u), uvec4(16u), bvec4((x & uvec4(4294901760u))));
+ x = (x >> b16);
+ uvec4 b8 = mix(uvec4(0u), uvec4(8u), bvec4((x & uvec4(65280u))));
+ x = (x >> b8);
+ uvec4 b4 = mix(uvec4(0u), uvec4(4u), bvec4((x & uvec4(240u))));
+ x = (x >> b4);
+ uvec4 b2 = mix(uvec4(0u), uvec4(2u), bvec4((x & uvec4(12u))));
+ x = (x >> b2);
+ uvec4 b1 = mix(uvec4(0u), uvec4(1u), bvec4((x & uvec4(2u))));
+ uvec4 is_zero = mix(uvec4(0u), uvec4(4294967295u), equal(x, uvec4(0u)));
+ return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_c1f940() {
+ ivec4 res = tint_first_leading_bit(ivec4(0, 0, 0, 0));
+}
+
+void compute_main() {
+ firstLeadingBit_c1f940();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.hlsl
new file mode 100644
index 0000000..bed5bed
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+int4 tint_first_leading_bit(int4 v) {
+ uint4 x = ((v < int4((0).xxxx)) ? uint4(~(v)) : uint4(v));
+ const uint4 b16 = (bool4((x & uint4((4294901760u).xxxx))) ? uint4((16u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b16);
+ const uint4 b8 = (bool4((x & uint4((65280u).xxxx))) ? uint4((8u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b8);
+ const uint4 b4 = (bool4((x & uint4((240u).xxxx))) ? uint4((4u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b4);
+ const uint4 b2 = (bool4((x & uint4((12u).xxxx))) ? uint4((2u).xxxx) : uint4((0u).xxxx));
+ x = (x >> b2);
+ const uint4 b1 = (bool4((x & uint4((2u).xxxx))) ? uint4((1u).xxxx) : uint4((0u).xxxx));
+ const uint4 is_zero = ((x == uint4((0u).xxxx)) ? uint4((4294967295u).xxxx) : uint4((0u).xxxx));
+ return int4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_c1f940() {
+ int4 res = tint_first_leading_bit(int4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_c1f940();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_c1f940();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_c1f940();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.msl
new file mode 100644
index 0000000..24eeb0d
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+int4 tint_first_leading_bit(int4 v) {
+ uint4 x = select(uint4(v), uint4(~(v)), (v < int4(0)));
+ uint4 const b16 = select(uint4(0u), uint4(16u), bool4((x & uint4(4294901760u))));
+ x = (x >> b16);
+ uint4 const b8 = select(uint4(0u), uint4(8u), bool4((x & uint4(65280u))));
+ x = (x >> b8);
+ uint4 const b4 = select(uint4(0u), uint4(4u), bool4((x & uint4(240u))));
+ x = (x >> b4);
+ uint4 const b2 = select(uint4(0u), uint4(2u), bool4((x & uint4(12u))));
+ x = (x >> b2);
+ uint4 const b1 = select(uint4(0u), uint4(1u), bool4((x & uint4(2u))));
+ uint4 const is_zero = select(uint4(0u), uint4(4294967295u), (x == uint4(0u)));
+ return int4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_c1f940() {
+ int4 res = tint_first_leading_bit(int4());
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_c1f940();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_c1f940();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_c1f940();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.spvasm
new file mode 100644
index 0000000..2804679
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.spvasm
@@ -0,0 +1,154 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 110
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_c1f940 "firstLeadingBit_c1f940"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %int = OpTypeInt 32 1
+ %v4int = OpTypeVector %int 4
+ %9 = OpTypeFunction %v4int %v4int
+ %uint = OpTypeInt 32 0
+ %v4uint = OpTypeVector %uint 4
+ %int_0 = OpConstant %int 0
+ %19 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
+ %bool = OpTypeBool
+ %v4bool = OpTypeVector %bool 4
+%_ptr_Function_v4uint = OpTypePointer Function %v4uint
+ %28 = OpConstantNull %v4uint
+%uint_4294901760 = OpConstant %uint 4294901760
+ %33 = OpConstantComposite %v4uint %uint_4294901760 %uint_4294901760 %uint_4294901760 %uint_4294901760
+ %uint_16 = OpConstant %uint 16
+ %36 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
+ %uint_0 = OpConstant %uint 0
+ %38 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
+ %uint_65280 = OpConstant %uint 65280
+ %45 = OpConstantComposite %v4uint %uint_65280 %uint_65280 %uint_65280 %uint_65280
+ %uint_8 = OpConstant %uint 8
+ %48 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
+ %uint_240 = OpConstant %uint 240
+ %55 = OpConstantComposite %v4uint %uint_240 %uint_240 %uint_240 %uint_240
+ %uint_4 = OpConstant %uint 4
+ %58 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
+ %uint_12 = OpConstant %uint 12
+ %65 = OpConstantComposite %v4uint %uint_12 %uint_12 %uint_12 %uint_12
+ %uint_2 = OpConstant %uint 2
+ %68 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
+ %uint_1 = OpConstant %uint 1
+ %76 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %81 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
+ %void = OpTypeVoid
+ %88 = OpTypeFunction %void
+ %93 = OpConstantNull %v4int
+%_ptr_Function_v4int = OpTypePointer Function %v4int
+ %96 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %v4int None %9
+ %v = OpFunctionParameter %v4int
+ %14 = OpLabel
+ %x = OpVariable %_ptr_Function_v4uint Function %28
+ %20 = OpSLessThan %v4bool %v %19
+ %24 = OpNot %v4int %v
+ %23 = OpBitcast %v4uint %24
+ %25 = OpBitcast %v4uint %v
+ %15 = OpSelect %v4uint %20 %23 %25
+ OpStore %x %15
+ %31 = OpLoad %v4uint %x
+ %34 = OpBitwiseAnd %v4uint %31 %33
+ %30 = OpINotEqual %v4bool %34 %28
+ %29 = OpSelect %v4uint %30 %36 %38
+ %39 = OpLoad %v4uint %x
+ %40 = OpShiftRightLogical %v4uint %39 %29
+ OpStore %x %40
+ %43 = OpLoad %v4uint %x
+ %46 = OpBitwiseAnd %v4uint %43 %45
+ %42 = OpINotEqual %v4bool %46 %28
+ %41 = OpSelect %v4uint %42 %48 %38
+ %49 = OpLoad %v4uint %x
+ %50 = OpShiftRightLogical %v4uint %49 %41
+ OpStore %x %50
+ %53 = OpLoad %v4uint %x
+ %56 = OpBitwiseAnd %v4uint %53 %55
+ %52 = OpINotEqual %v4bool %56 %28
+ %51 = OpSelect %v4uint %52 %58 %38
+ %59 = OpLoad %v4uint %x
+ %60 = OpShiftRightLogical %v4uint %59 %51
+ OpStore %x %60
+ %63 = OpLoad %v4uint %x
+ %66 = OpBitwiseAnd %v4uint %63 %65
+ %62 = OpINotEqual %v4bool %66 %28
+ %61 = OpSelect %v4uint %62 %68 %38
+ %69 = OpLoad %v4uint %x
+ %70 = OpShiftRightLogical %v4uint %69 %61
+ OpStore %x %70
+ %73 = OpLoad %v4uint %x
+ %74 = OpBitwiseAnd %v4uint %73 %68
+ %72 = OpINotEqual %v4bool %74 %28
+ %71 = OpSelect %v4uint %72 %76 %38
+ %78 = OpLoad %v4uint %x
+ %79 = OpIEqual %v4bool %78 %38
+ %77 = OpSelect %v4uint %79 %81 %38
+ %83 = OpBitwiseOr %v4uint %29 %41
+ %84 = OpBitwiseOr %v4uint %83 %51
+ %85 = OpBitwiseOr %v4uint %84 %61
+ %86 = OpBitwiseOr %v4uint %85 %71
+ %87 = OpBitwiseOr %v4uint %86 %77
+ %82 = OpBitcast %v4int %87
+ OpReturnValue %82
+ OpFunctionEnd
+%firstLeadingBit_c1f940 = OpFunction %void None %88
+ %91 = OpLabel
+ %res = OpVariable %_ptr_Function_v4int Function %93
+ %92 = OpFunctionCall %v4int %tint_first_leading_bit %93
+ OpStore %res %92
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %96
+ %98 = OpLabel
+ %99 = OpFunctionCall %void %firstLeadingBit_c1f940
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %88
+ %101 = OpLabel
+ %102 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %102
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %88
+ %105 = OpLabel
+ %106 = OpFunctionCall %void %firstLeadingBit_c1f940
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %88
+ %108 = OpLabel
+ %109 = OpFunctionCall %void %firstLeadingBit_c1f940
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.wgsl
new file mode 100644
index 0000000..b79dbd7
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/c1f940.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_c1f940() {
+ var res : vec4<i32> = firstLeadingBit(vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_c1f940();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_c1f940();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_c1f940();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl
new file mode 100644
index 0000000..a7e7460
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+// test/tint/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+// src/tint/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn firstLeadingBit(u32) -> u32
+fn firstLeadingBit_f0779d() {
+ var res: u32 = firstLeadingBit(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_f0779d();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_f0779d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_f0779d();
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl
new file mode 100644
index 0000000..2c08f91
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+
+uint tint_first_leading_bit(uint v) {
+ uint x = v;
+ uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_f0779d() {
+ uint res = tint_first_leading_bit(1u);
+}
+
+vec4 vertex_main() {
+ firstLeadingBit_f0779d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+ vec4 inner_result = vertex_main();
+ gl_Position = inner_result;
+ gl_Position.y = -(gl_Position.y);
+ gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+ return;
+}
+#version 310 es
+precision mediump float;
+
+uint tint_first_leading_bit(uint v) {
+ uint x = v;
+ uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_f0779d() {
+ uint res = tint_first_leading_bit(1u);
+}
+
+void fragment_main() {
+ firstLeadingBit_f0779d();
+}
+
+void main() {
+ fragment_main();
+ return;
+}
+#version 310 es
+
+uint tint_first_leading_bit(uint v) {
+ uint x = v;
+ uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_f0779d() {
+ uint res = tint_first_leading_bit(1u);
+}
+
+void compute_main() {
+ firstLeadingBit_f0779d();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+ compute_main();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.hlsl b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.hlsl
new file mode 100644
index 0000000..d89b4b3
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.hlsl
@@ -0,0 +1,45 @@
+uint tint_first_leading_bit(uint v) {
+ uint x = v;
+ const uint b16 = (bool((x & 4294901760u)) ? 16u : 0u);
+ x = (x >> b16);
+ const uint b8 = (bool((x & 65280u)) ? 8u : 0u);
+ x = (x >> b8);
+ const uint b4 = (bool((x & 240u)) ? 4u : 0u);
+ x = (x >> b4);
+ const uint b2 = (bool((x & 12u)) ? 2u : 0u);
+ x = (x >> b2);
+ const uint b1 = (bool((x & 2u)) ? 1u : 0u);
+ const uint is_zero = ((x == 0u) ? 4294967295u : 0u);
+ return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_f0779d() {
+ uint res = tint_first_leading_bit(1u);
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_f0779d();
+ return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ firstLeadingBit_f0779d();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ firstLeadingBit_f0779d();
+ return;
+}
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.msl b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.msl
new file mode 100644
index 0000000..226d827
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.msl
@@ -0,0 +1,48 @@
+#include <metal_stdlib>
+
+using namespace metal;
+uint tint_first_leading_bit(uint v) {
+ uint x = v;
+ uint const b16 = select(0u, 16u, bool((x & 4294901760u)));
+ x = (x >> b16);
+ uint const b8 = select(0u, 8u, bool((x & 65280u)));
+ x = (x >> b8);
+ uint const b4 = select(0u, 4u, bool((x & 240u)));
+ x = (x >> b4);
+ uint const b2 = select(0u, 2u, bool((x & 12u)));
+ x = (x >> b2);
+ uint const b1 = select(0u, 1u, bool((x & 2u)));
+ uint const is_zero = select(0u, 4294967295u, (x == 0u));
+ return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
+}
+
+void firstLeadingBit_f0779d() {
+ uint res = tint_first_leading_bit(1u);
+}
+
+struct tint_symbol {
+ float4 value [[position]];
+};
+
+float4 vertex_main_inner() {
+ firstLeadingBit_f0779d();
+ return float4();
+}
+
+vertex tint_symbol vertex_main() {
+ float4 const inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = {};
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+fragment void fragment_main() {
+ firstLeadingBit_f0779d();
+ return;
+}
+
+kernel void compute_main() {
+ firstLeadingBit_f0779d();
+ return;
+}
+
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.spvasm b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.spvasm
new file mode 100644
index 0000000..42c1b10
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.spvasm
@@ -0,0 +1,129 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 86
+; Schema: 0
+ OpCapability Shader
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+ OpEntryPoint Fragment %fragment_main "fragment_main"
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %fragment_main OriginUpperLeft
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpName %value "value"
+ OpName %vertex_point_size "vertex_point_size"
+ OpName %tint_first_leading_bit "tint_first_leading_bit"
+ OpName %v "v"
+ OpName %x "x"
+ OpName %firstLeadingBit_f0779d "firstLeadingBit_f0779d"
+ OpName %res "res"
+ OpName %vertex_main_inner "vertex_main_inner"
+ OpName %vertex_main "vertex_main"
+ OpName %fragment_main "fragment_main"
+ OpName %compute_main "compute_main"
+ OpDecorate %value BuiltIn Position
+ OpDecorate %vertex_point_size BuiltIn PointSize
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %5 = OpConstantNull %v4float
+ %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+ %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+ %uint = OpTypeInt 32 0
+ %9 = OpTypeFunction %uint %uint
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %16 = OpConstantNull %uint
+ %bool = OpTypeBool
+%uint_4294901760 = OpConstant %uint 4294901760
+ %uint_16 = OpConstant %uint 16
+ %uint_0 = OpConstant %uint 0
+ %uint_65280 = OpConstant %uint 65280
+ %uint_8 = OpConstant %uint 8
+ %uint_240 = OpConstant %uint 240
+ %uint_4 = OpConstant %uint 4
+ %uint_12 = OpConstant %uint 12
+ %uint_2 = OpConstant %uint 2
+ %uint_1 = OpConstant %uint 1
+%uint_4294967295 = OpConstant %uint 4294967295
+ %void = OpTypeVoid
+ %66 = OpTypeFunction %void
+ %72 = OpTypeFunction %v4float
+ %float_1 = OpConstant %float 1
+%tint_first_leading_bit = OpFunction %uint None %9
+ %v = OpFunctionParameter %uint
+ %13 = OpLabel
+ %x = OpVariable %_ptr_Function_uint Function %16
+ OpStore %x %v
+ %20 = OpLoad %uint %x
+ %22 = OpBitwiseAnd %uint %20 %uint_4294901760
+ %18 = OpINotEqual %bool %22 %16
+ %17 = OpSelect %uint %18 %uint_16 %uint_0
+ %25 = OpLoad %uint %x
+ %26 = OpShiftRightLogical %uint %25 %17
+ OpStore %x %26
+ %29 = OpLoad %uint %x
+ %31 = OpBitwiseAnd %uint %29 %uint_65280
+ %28 = OpINotEqual %bool %31 %16
+ %27 = OpSelect %uint %28 %uint_8 %uint_0
+ %33 = OpLoad %uint %x
+ %34 = OpShiftRightLogical %uint %33 %27
+ OpStore %x %34
+ %37 = OpLoad %uint %x
+ %39 = OpBitwiseAnd %uint %37 %uint_240
+ %36 = OpINotEqual %bool %39 %16
+ %35 = OpSelect %uint %36 %uint_4 %uint_0
+ %41 = OpLoad %uint %x
+ %42 = OpShiftRightLogical %uint %41 %35
+ OpStore %x %42
+ %45 = OpLoad %uint %x
+ %47 = OpBitwiseAnd %uint %45 %uint_12
+ %44 = OpINotEqual %bool %47 %16
+ %43 = OpSelect %uint %44 %uint_2 %uint_0
+ %49 = OpLoad %uint %x
+ %50 = OpShiftRightLogical %uint %49 %43
+ OpStore %x %50
+ %53 = OpLoad %uint %x
+ %54 = OpBitwiseAnd %uint %53 %uint_2
+ %52 = OpINotEqual %bool %54 %16
+ %51 = OpSelect %uint %52 %uint_1 %uint_0
+ %57 = OpLoad %uint %x
+ %58 = OpIEqual %bool %57 %uint_0
+ %56 = OpSelect %uint %58 %uint_4294967295 %uint_0
+ %61 = OpBitwiseOr %uint %17 %27
+ %62 = OpBitwiseOr %uint %61 %35
+ %63 = OpBitwiseOr %uint %62 %43
+ %64 = OpBitwiseOr %uint %63 %51
+ %65 = OpBitwiseOr %uint %64 %56
+ OpReturnValue %65
+ OpFunctionEnd
+%firstLeadingBit_f0779d = OpFunction %void None %66
+ %69 = OpLabel
+ %res = OpVariable %_ptr_Function_uint Function %16
+ %70 = OpFunctionCall %uint %tint_first_leading_bit %uint_1
+ OpStore %res %70
+ OpReturn
+ OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %72
+ %74 = OpLabel
+ %75 = OpFunctionCall %void %firstLeadingBit_f0779d
+ OpReturnValue %5
+ OpFunctionEnd
+%vertex_main = OpFunction %void None %66
+ %77 = OpLabel
+ %78 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %78
+ OpStore %vertex_point_size %float_1
+ OpReturn
+ OpFunctionEnd
+%fragment_main = OpFunction %void None %66
+ %81 = OpLabel
+ %82 = OpFunctionCall %void %firstLeadingBit_f0779d
+ OpReturn
+ OpFunctionEnd
+%compute_main = OpFunction %void None %66
+ %84 = OpLabel
+ %85 = OpFunctionCall %void %firstLeadingBit_f0779d
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.wgsl b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.wgsl
new file mode 100644
index 0000000..8f6430c
--- /dev/null
+++ b/test/tint/builtins/gen/firstLeadingBit/f0779d.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+fn firstLeadingBit_f0779d() {
+ var res : u32 = firstLeadingBit(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+ firstLeadingBit_f0779d();
+ return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+ firstLeadingBit_f0779d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+ firstLeadingBit_f0779d();
+}