GLSL: add .expected.glsl files for all tests.
Bug: tint:1301
Change-Id: Id3a591a2fa0dfdb112046d5c57defbae07483e0d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/69480
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/test/access/let/matrix.spvasm.expected.glsl b/test/access/let/matrix.spvasm.expected.glsl
new file mode 100644
index 0000000..cde810e
--- /dev/null
+++ b/test/access/let/matrix.spvasm.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ float x_24 = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f))[1u].y;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/let/matrix.wgsl.expected.glsl b/test/access/let/matrix.wgsl.expected.glsl
new file mode 100644
index 0000000..69e59d1
--- /dev/null
+++ b/test/access/let/matrix.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ vec3 v = m[1];
+ float f = v[1];
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/let/vector.spvasm.expected.glsl b/test/access/let/vector.spvasm.expected.glsl
new file mode 100644
index 0000000..9f6a084
--- /dev/null
+++ b/test/access/let/vector.spvasm.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ float x_11 = vec3(1.0f, 2.0f, 3.0f).y;
+ vec2 x_13 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z);
+ vec3 x_14 = vec3(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/let/vector.wgsl.expected.glsl b/test/access/let/vector.wgsl.expected.glsl
new file mode 100644
index 0000000..fe1e88c
--- /dev/null
+++ b/test/access/let/vector.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ vec3 v = vec3(1.0f, 2.0f, 3.0f);
+ float scalar = v.y;
+ vec2 swizzle2 = v.xz;
+ vec3 swizzle3 = v.xzy;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/var/matrix.spvasm.expected.glsl b/test/access/var/matrix.spvasm.expected.glsl
new file mode 100644
index 0000000..453e9f2
--- /dev/null
+++ b/test/access/var/matrix.spvasm.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ mat3 m = mat3(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+ vec3 x_15 = m[1];
+ float x_16 = x_15.y;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/var/matrix.wgsl.expected.glsl b/test/access/var/matrix.wgsl.expected.glsl
new file mode 100644
index 0000000..8416591
--- /dev/null
+++ b/test/access/var/matrix.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ mat3 m = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 v = m[1];
+ float f = v[1];
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/var/vector.spvasm.expected.glsl b/test/access/var/vector.spvasm.expected.glsl
new file mode 100644
index 0000000..076fbef
--- /dev/null
+++ b/test/access/var/vector.spvasm.expected.glsl
@@ -0,0 +1,23 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ vec3 v = vec3(0.0f, 0.0f, 0.0f);
+ float x_14 = v.y;
+ vec3 x_16 = v;
+ vec2 x_17 = vec2(x_16.x, x_16.z);
+ vec3 x_18 = v;
+ vec3 x_19 = vec3(x_18.x, x_18.z, x_18.y);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/access/var/vector.wgsl.expected.glsl b/test/access/var/vector.wgsl.expected.glsl
new file mode 100644
index 0000000..545f673
--- /dev/null
+++ b/test/access/var/vector.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ vec3 v = vec3(0.0f, 0.0f, 0.0f);
+ float scalar = v.y;
+ vec2 swizzle2 = v.xz;
+ vec3 swizzle3 = v.xzy;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/array/assign_to_function_var.wgsl.expected.glsl b/test/array/assign_to_function_var.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/array/assign_to_function_var.wgsl.expected.glsl
diff --git a/test/array/assign_to_private_var.wgsl.expected.glsl b/test/array/assign_to_private_var.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/array/assign_to_private_var.wgsl.expected.glsl
diff --git a/test/array/assign_to_storage_var.wgsl.expected.glsl b/test/array/assign_to_storage_var.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/array/assign_to_storage_var.wgsl.expected.glsl
diff --git a/test/array/assign_to_subexpr.wgsl.expected.glsl b/test/array/assign_to_subexpr.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/array/assign_to_subexpr.wgsl.expected.glsl
diff --git a/test/array/assign_to_workgroup_var.wgsl.expected.glsl b/test/array/assign_to_workgroup_var.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/array/assign_to_workgroup_var.wgsl.expected.glsl
diff --git a/test/array/function_parameter.wgsl.expected.glsl b/test/array/function_parameter.wgsl.expected.glsl
new file mode 100644
index 0000000..9164984
--- /dev/null
+++ b/test/array/function_parameter.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+#version 310 es
+precision mediump float;
+
+float f1(float a[4]) {
+ return a[3];
+}
+
+float f2(float a[3][4]) {
+ return a[2][3];
+}
+
+float f3(float a[2][3][4]) {
+ return a[1][2][3];
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ float a1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ float a2[3][4] = float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f));
+ float a3[2][3][4] = float[2][3][4](float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f)), float[3][4](float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f)));
+ float v1 = f1(a1);
+ float v2 = f2(a2);
+ float v3 = f3(a3);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/array/function_return_type.wgsl.expected.glsl b/test/array/function_return_type.wgsl.expected.glsl
new file mode 100644
index 0000000..1a9b8b1
--- /dev/null
+++ b/test/array/function_return_type.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+#version 310 es
+precision mediump float;
+
+float[4] f1() {
+ float tint_symbol_1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ return tint_symbol_1;
+}
+
+float[3][4] f2() {
+ float tint_symbol_2[3][4] = float[3][4](f1(), f1(), f1());
+ return tint_symbol_2;
+}
+
+float[2][3][4] f3() {
+ float tint_symbol_3[2][3][4] = float[2][3][4](f2(), f2());
+ return tint_symbol_3;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ float a1[4] = f1();
+ float a2[3][4] = f2();
+ float a3[2][3][4] = f3();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/array/size.wgsl.expected.glsl b/test/array/size.wgsl.expected.glsl
new file mode 100644
index 0000000..3f28448
--- /dev/null
+++ b/test/array/size.wgsl.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+const int slen = 4;
+const uint ulen = 4u;
+
+void tint_symbol() {
+ float signed_literal[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ float unsigned_literal[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ float signed_constant[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ float unsigned_constant[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ signed_literal = unsigned_constant;
+ signed_constant = unsigned_literal;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/array/type_constructor.wgsl.expected.glsl b/test/array/type_constructor.wgsl.expected.glsl
new file mode 100644
index 0000000..25c35d3
--- /dev/null
+++ b/test/array/type_constructor.wgsl.expected.glsl
@@ -0,0 +1,45 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int x = 42;
+ int empty[4] = int[4](0, 0, 0, 0);
+ int nonempty[4] = int[4](1, 2, 3, 4);
+ int nonempty_with_expr[4] = int[4](1, x, (x + 1), nonempty[3]);
+ int nested_empty[2][3][4] = int[2][3][4](int[3][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0), int[4](0, 0, 0, 0)), int[3][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0), int[4](0, 0, 0, 0)));
+ int tint_symbol_1[4] = int[4](1, 2, 3, 4);
+ int tint_symbol_2[4] = int[4](5, 6, 7, 8);
+ int tint_symbol_3[4] = int[4](9, 10, 11, 12);
+ int tint_symbol_4[3][4] = int[3][4](tint_symbol_1, tint_symbol_2, tint_symbol_3);
+ int tint_symbol_5[4] = int[4](13, 14, 15, 16);
+ int tint_symbol_6[4] = int[4](17, 18, 19, 20);
+ int tint_symbol_7[4] = int[4](21, 22, 23, 24);
+ int tint_symbol_8[3][4] = int[3][4](tint_symbol_5, tint_symbol_6, tint_symbol_7);
+ int nested_nonempty[2][3][4] = int[2][3][4](tint_symbol_4, tint_symbol_8);
+ int tint_symbol_9[4] = int[4](1, 2, x, (x + 1));
+ int tint_symbol_10[4] = int[4](5, 6, nonempty[2], (nonempty[3] + 1));
+ int tint_symbol_11[3][4] = int[3][4](tint_symbol_9, tint_symbol_10, nonempty);
+ int nested_nonempty_with_expr[2][3][4] = int[2][3][4](tint_symbol_11, nested_nonempty[1]);
+ int tint_symbol_12[4] = int[4](0, 0, 0, 0);
+ int subexpr_empty = tint_symbol_12[1];
+ int tint_symbol_13[4] = int[4](1, 2, 3, 4);
+ int subexpr_nonempty = tint_symbol_13[2];
+ int tint_symbol_14[4] = int[4](1, x, (x + 1), nonempty[3]);
+ int subexpr_nonempty_with_expr = tint_symbol_14[2];
+ int tint_symbol_15[2][4] = int[2][4](int[4](0, 0, 0, 0), int[4](0, 0, 0, 0));
+ int subexpr_nested_empty[4] = tint_symbol_15[1];
+ int tint_symbol_16[4] = int[4](1, 2, 3, 4);
+ int tint_symbol_17[4] = int[4](5, 6, 7, 8);
+ int tint_symbol_18[2][4] = int[2][4](tint_symbol_16, tint_symbol_17);
+ int subexpr_nested_nonempty[4] = tint_symbol_18[1];
+ int tint_symbol_19[4] = int[4](1, x, (x + 1), nonempty[3]);
+ int tint_symbol_20[2][4] = int[2][4](tint_symbol_19, nested_nonempty[1][2]);
+ int subexpr_nested_nonempty_with_expr[4] = tint_symbol_20[1];
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl b/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
new file mode 100644
index 0000000..4272981
--- /dev/null
+++ b/test/buffer/storage/dynamic_index/read.wgsl.expected.glsl
@@ -0,0 +1,47 @@
+#version 310 es
+precision mediump float;
+
+struct Inner {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ mat2x3 g;
+ mat3x2 h;
+ ivec4 i[4];
+};
+
+layout (binding = 0) buffer S_1 {
+ Inner arr[];
+} s;
+
+struct tint_symbol_2 {
+ uint idx;
+};
+
+void tint_symbol_inner(uint idx) {
+ ivec3 a = s.arr[idx].a;
+ int b = s.arr[idx].b;
+ uvec3 c = s.arr[idx].c;
+ uint d = s.arr[idx].d;
+ vec3 e = s.arr[idx].e;
+ float f = s.arr[idx].f;
+ mat2x3 g = s.arr[idx].g;
+ mat3x2 h = s.arr[idx].h;
+ ivec4 i[4] = s.arr[idx].i;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.idx);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.idx = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
diff --git a/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl b/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
new file mode 100644
index 0000000..8babfbd
--- /dev/null
+++ b/test/buffer/storage/dynamic_index/write.wgsl.expected.glsl
@@ -0,0 +1,48 @@
+#version 310 es
+precision mediump float;
+
+struct Inner {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ mat2x3 g;
+ mat3x2 h;
+ ivec4 i[4];
+};
+
+layout (binding = 0) buffer S_1 {
+ Inner arr[];
+} s;
+
+struct tint_symbol_2 {
+ uint idx;
+};
+
+void tint_symbol_inner(uint idx) {
+ s.arr[idx].a = ivec3(0, 0, 0);
+ s.arr[idx].b = 0;
+ s.arr[idx].c = uvec3(0u, 0u, 0u);
+ s.arr[idx].d = 0u;
+ s.arr[idx].e = vec3(0.0f, 0.0f, 0.0f);
+ s.arr[idx].f = 0.0f;
+ s.arr[idx].g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ s.arr[idx].h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ ivec4 tint_symbol_3[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+ s.arr[idx].i = tint_symbol_3;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.idx);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.idx = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
diff --git a/test/buffer/storage/static_index/read.wgsl.expected.glsl b/test/buffer/storage/static_index/read.wgsl.expected.glsl
new file mode 100644
index 0000000..4e36bd3
--- /dev/null
+++ b/test/buffer/storage/static_index/read.wgsl.expected.glsl
@@ -0,0 +1,42 @@
+#version 310 es
+precision mediump float;
+
+struct Inner {
+ int x;
+};
+struct tint_padded_array_element {
+ Inner el;
+};
+
+layout (binding = 0) buffer S_1 {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ mat2x3 g;
+ mat3x2 h;
+ Inner i;
+ tint_padded_array_element j[4];
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ ivec3 a = s.a;
+ int b = s.b;
+ uvec3 c = s.c;
+ uint d = s.d;
+ vec3 e = s.e;
+ float f = s.f;
+ mat2x3 g = s.g;
+ mat3x2 h = s.h;
+ Inner i = s.i;
+ tint_padded_array_element j[4] = s.j;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/buffer/storage/static_index/write.wgsl.expected.glsl b/test/buffer/storage/static_index/write.wgsl.expected.glsl
new file mode 100644
index 0000000..ab273ea
--- /dev/null
+++ b/test/buffer/storage/static_index/write.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+#version 310 es
+precision mediump float;
+
+struct Inner {
+ int x;
+};
+struct tint_padded_array_element {
+ Inner el;
+};
+
+layout (binding = 0) buffer S_1 {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ mat2x3 g;
+ mat3x2 h;
+ Inner i;
+ tint_padded_array_element j[4];
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ s.a = ivec3(0, 0, 0);
+ s.b = 0;
+ s.c = uvec3(0u, 0u, 0u);
+ s.d = 0u;
+ s.e = vec3(0.0f, 0.0f, 0.0f);
+ s.f = 0.0f;
+ s.g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ s.h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ Inner tint_symbol_1 = Inner(0);
+ s.i = tint_symbol_1;
+ tint_padded_array_element tint_symbol_2[4] = tint_padded_array_element[4](tint_padded_array_element(Inner(0)), tint_padded_array_element(Inner(0)), tint_padded_array_element(Inner(0)), tint_padded_array_element(Inner(0)));
+ s.j = tint_symbol_2;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
new file mode 100644
index 0000000..a21368d
--- /dev/null
+++ b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
@@ -0,0 +1,49 @@
+#version 310 es
+precision mediump float;
+
+struct Inner {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ ivec2 g;
+ ivec2 h;
+ mat2x3 i;
+ mat3x2 j;
+ ivec4 k[4];
+};
+
+layout (binding = 0) uniform S_1 {
+ Inner arr[8];
+} s;
+
+struct tint_symbol_2 {
+ uint idx;
+};
+
+void tint_symbol_inner(uint idx) {
+ ivec3 a = s.arr[idx].a;
+ int b = s.arr[idx].b;
+ uvec3 c = s.arr[idx].c;
+ uint d = s.arr[idx].d;
+ vec3 e = s.arr[idx].e;
+ float f = s.arr[idx].f;
+ ivec2 g = s.arr[idx].g;
+ ivec2 h = s.arr[idx].h;
+ mat2x3 i = s.arr[idx].i;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.idx);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.idx = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
diff --git a/test/buffer/uniform/static_index/read.wgsl.expected.glsl b/test/buffer/uniform/static_index/read.wgsl.expected.glsl
new file mode 100644
index 0000000..27169f0
--- /dev/null
+++ b/test/buffer/uniform/static_index/read.wgsl.expected.glsl
@@ -0,0 +1,46 @@
+#version 310 es
+precision mediump float;
+
+struct Inner {
+ int x;
+};
+struct tint_padded_array_element {
+ Inner el;
+};
+
+layout (binding = 0) uniform S_1 {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ ivec2 g;
+ ivec2 h;
+ mat2x3 i;
+ mat3x2 j;
+ Inner k;
+ tint_padded_array_element l[4];
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ ivec3 a = s.a;
+ int b = s.b;
+ uvec3 c = s.c;
+ uint d = s.d;
+ vec3 e = s.e;
+ float f = s.f;
+ ivec2 g = s.g;
+ ivec2 h = s.h;
+ mat2x3 i = s.i;
+ mat3x2 j = s.j;
+ Inner k = s.k;
+ tint_padded_array_element l[4] = s.l;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/chromium/1221120.wgsl.expected.glsl b/test/bug/chromium/1221120.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/chromium/1221120.wgsl.expected.glsl
diff --git a/test/bug/chromium/1236161.wgsl.expected.glsl b/test/bug/chromium/1236161.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/chromium/1236161.wgsl.expected.glsl
diff --git a/test/bug/chromium/1251009.wgsl.expected.glsl b/test/bug/chromium/1251009.wgsl.expected.glsl
new file mode 100644
index 0000000..eac1d6f
--- /dev/null
+++ b/test/bug/chromium/1251009.wgsl.expected.glsl
@@ -0,0 +1,55 @@
+#version 310 es
+precision mediump float;
+
+struct VertexInputs0 {
+ uint vertex_index;
+ int loc0;
+};
+struct VertexInputs1 {
+ uint loc1;
+ vec4 loc3;
+};
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ uint loc1_1;
+ vec4 loc3;
+ uint vertex_index;
+ uint instance_index;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+ uint foo = (inputs0.vertex_index + instance_index);
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ VertexInputs0 tint_symbol_4 = VertexInputs0(tint_symbol_1.vertex_index, tint_symbol_1.loc0);
+ VertexInputs1 tint_symbol_5 = VertexInputs1(tint_symbol_1.loc1_1, tint_symbol_1.loc3);
+ vec4 inner_result = tint_symbol_inner(tint_symbol_4, tint_symbol_1.loc1, tint_symbol_1.instance_index, tint_symbol_5);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+in int loc0;
+in uint loc1;
+in uint loc1_1;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc1_1 = loc1_1;
+ inputs.loc3 = loc3;
+ inputs.vertex_index = uint(gl_VertexID);
+ inputs.instance_index = uint(gl_InstanceID);
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/bug/dawn/947.wgsl.expected.glsl b/test/bug/dawn/947.wgsl.expected.glsl
new file mode 100644
index 0000000..d9d9455
--- /dev/null
+++ b/test/bug/dawn/947.wgsl.expected.glsl
@@ -0,0 +1,120 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Uniforms_1 {
+ vec2 u_scale;
+ vec2 u_offset;
+} uniforms;
+
+struct VertexOutputs {
+ vec2 texcoords;
+ vec4 position;
+};
+struct tint_symbol_2 {
+ uint VertexIndex;
+};
+struct tint_symbol_3 {
+ vec2 texcoords;
+ vec4 position;
+};
+
+VertexOutputs vs_main_inner(uint VertexIndex) {
+ vec2 texcoord[3] = vec2[3](vec2(-0.5f, 0.0f), vec2(1.5f, 0.0f), vec2(0.5f, 2.0f));
+ VertexOutputs tint_symbol = VertexOutputs(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ tint_symbol.position = vec4(((texcoord[VertexIndex] * 2.0f) - vec2(1.0f, 1.0f)), 0.0f, 1.0f);
+ bool flipY = (uniforms.u_scale.y < 0.0f);
+ if (flipY) {
+ tint_symbol.texcoords = ((((texcoord[VertexIndex] * uniforms.u_scale) + uniforms.u_offset) * vec2(1.0f, -1.0f)) + vec2(0.0f, 1.0f));
+ } else {
+ tint_symbol.texcoords = ((((texcoord[VertexIndex] * vec2(1.0f, -1.0f)) + vec2(0.0f, 1.0f)) * uniforms.u_scale) + uniforms.u_offset);
+ }
+ return tint_symbol;
+}
+
+struct tint_symbol_5 {
+ vec2 texcoord;
+};
+struct tint_symbol_6 {
+ vec4 value;
+};
+
+tint_symbol_3 vs_main(tint_symbol_2 tint_symbol_1) {
+ VertexOutputs inner_result = vs_main_inner(tint_symbol_1.VertexIndex);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.texcoords = inner_result.texcoords;
+ wrapper_result.position = inner_result.position;
+ return wrapper_result;
+}
+out vec2 texcoords;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.VertexIndex = uint(gl_VertexID);
+ tint_symbol_3 outputs;
+ outputs = vs_main(inputs);
+ texcoords = outputs.texcoords;
+ gl_Position = outputs.position;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct VertexOutputs {
+ vec2 texcoords;
+ vec4 position;
+};
+struct tint_symbol_2 {
+ uint VertexIndex;
+};
+struct tint_symbol_3 {
+ vec2 texcoords;
+ vec4 position;
+};
+
+
+uniform highp sampler2D myTexture;
+
+struct tint_symbol_5 {
+ vec2 texcoord;
+};
+struct tint_symbol_6 {
+ vec4 value;
+};
+
+vec4 fs_main_inner(vec2 texcoord) {
+ vec2 clampedTexcoord = clamp(texcoord, vec2(0.0f, 0.0f), vec2(1.0f, 1.0f));
+ if (!(all((clampedTexcoord == texcoord)))) {
+ discard;
+ }
+ vec4 srcColor = texture(myTexture, texcoord);
+ return srcColor;
+}
+
+tint_symbol_6 fs_main(tint_symbol_5 tint_symbol_4) {
+ vec4 inner_result_1 = fs_main_inner(tint_symbol_4.texcoord);
+ tint_symbol_6 wrapper_result_1 = tint_symbol_6(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+in vec2 texcoord;
+out vec4 value;
+void main() {
+ tint_symbol_5 inputs;
+ inputs.texcoord = texcoord;
+ tint_symbol_6 outputs;
+ outputs = fs_main(inputs);
+ value = outputs.value;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:28: 'all' : no matching overloaded function found
+ERROR: 0:28: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
new file mode 100644
index 0000000..8920c6e6
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ result.tint_symbol = s.data[ubo.dynamic_idx];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
new file mode 100644
index 0000000..22345a8
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ result.tint_symbol = s.data[ubo.dynamic_idx];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
new file mode 100644
index 0000000..e314c42
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+layout (binding = 2) buffer Result_1 {
+ int tint_symbol;
+} result;
+
+layout (binding = 1) buffer SSBO_1 {
+ int data[4];
+} ssbo;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ result.tint_symbol = ssbo.data[ubo.dynamic_idx];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
new file mode 100644
index 0000000..f0eb7e8
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+#version 310 es
+precision mediump float;
+
+struct tint_padded_array_element {
+ int el;
+};
+
+layout (binding = 0) uniform UBO_1 {
+ tint_padded_array_element data[4];
+ int dynamic_idx;
+} ubo;
+
+layout (binding = 2) buffer Result_1 {
+ int tint_symbol;
+} result;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ result.tint_symbol = ubo.data[ubo.dynamic_idx].el;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
new file mode 100644
index 0000000..c1acee0
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
@@ -0,0 +1,52 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+groupshared S s;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void f_inner(uint local_invocation_index) {
+ {
+ for(uint idx = local_invocation_index; (idx < 64u); idx = (idx + 1u)) {
+ uint i = idx;
+ s.data[i] = 0;
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ result.tint_symbol = s.data[ubo.dynamic_idx];
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f(tint_symbol_2 tint_symbol_1) {
+ f_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ f(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:16: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
new file mode 100644
index 0000000..3a085d7
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ s.data[ubo.dynamic_idx] = 1;
+ result.tint_symbol = s.data[3];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
new file mode 100644
index 0000000..5009af2
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
@@ -0,0 +1,32 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+
+void x(inout S p) {
+ p.data[ubo.dynamic_idx] = 1;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ x(s);
+ result.tint_symbol = s.data[3];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
new file mode 100644
index 0000000..ef743de
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ s.data[ubo.dynamic_idx] = 1;
+ result.tint_symbol = s.data[3];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
new file mode 100644
index 0000000..ee89365
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
@@ -0,0 +1,32 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+
+void x(inout S p) {
+ p.data[ubo.dynamic_idx] = 1;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ x(s);
+ result.tint_symbol = s.data[3];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
new file mode 100644
index 0000000..4374a4f
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+layout (binding = 2) buffer Result_1 {
+ int tint_symbol;
+} result;
+
+layout (binding = 1) buffer SSBO_1 {
+ int data[4];
+} ssbo;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ssbo.data[ubo.dynamic_idx] = 1;
+ result.tint_symbol = ssbo.data[3];
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
new file mode 100644
index 0000000..c561688
--- /dev/null
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
@@ -0,0 +1,53 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform UBO_1 {
+ int dynamic_idx;
+} ubo;
+
+struct S {
+ int data[64];
+};
+
+layout (binding = 1) buffer Result_1 {
+ int tint_symbol;
+} result;
+groupshared S s;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void f_inner(uint local_invocation_index) {
+ {
+ for(uint idx = local_invocation_index; (idx < 64u); idx = (idx + 1u)) {
+ uint i = idx;
+ s.data[i] = 0;
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ s.data[ubo.dynamic_idx] = 1;
+ result.tint_symbol = s.data[3];
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f(tint_symbol_2 tint_symbol_1) {
+ f_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ f(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:16: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl
new file mode 100644
index 0000000..dcde12e
--- /dev/null
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.glsl
@@ -0,0 +1,33 @@
+#version 310 es
+precision mediump float;
+
+vec2 v2f = vec2(0.0f, 0.0f);
+ivec3 v3i = ivec3(0, 0, 0);
+uvec4 v4u = uvec4(0u, 0u, 0u, 0u);
+bvec2 v2b = bvec2(false, false);
+
+void foo() {
+ {
+ for(int i = 0; (i < 2); i = (i + 1)) {
+ v2f[i] = 1.0f;
+ v3i[i] = 1;
+ v4u[i] = 1u;
+ v2b[i] = true;
+ }
+ }
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ {
+ for(int i = 0; (i < 2); i = (i + 1)) {
+ foo();
+ }
+ }
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl
new file mode 100644
index 0000000..680bcaa
--- /dev/null
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+#version 310 es
+precision mediump float;
+
+vec2 v2f = vec2(0.0f, 0.0f);
+ivec3 v3i = ivec3(0, 0, 0);
+uvec4 v4u = uvec4(0u, 0u, 0u, 0u);
+bvec2 v2b = bvec2(false, false);
+
+void foo() {
+ int i = 0;
+ v2f[i] = 1.0f;
+ v3i[i] = 1;
+ v4u[i] = 1u;
+ v2b[i] = true;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ {
+ for(int i = 0; (i < 2); i = (i + 1)) {
+ foo();
+ }
+ }
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl
new file mode 100644
index 0000000..ad1e7e7
--- /dev/null
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_types_all.wgsl.expected.glsl
@@ -0,0 +1,40 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ vec2 v2f = vec2(0.0f, 0.0f);
+ vec3 v3f = vec3(0.0f, 0.0f, 0.0f);
+ vec4 v4f = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ ivec2 v2i = ivec2(0, 0);
+ ivec3 v3i = ivec3(0, 0, 0);
+ ivec4 v4i = ivec4(0, 0, 0, 0);
+ uvec2 v2u = uvec2(0u, 0u);
+ uvec3 v3u = uvec3(0u, 0u, 0u);
+ uvec4 v4u = uvec4(0u, 0u, 0u, 0u);
+ bvec2 v2b = bvec2(false, false);
+ bvec3 v3b = bvec3(false, false, false);
+ bvec4 v4b = bvec4(false, false, false, false);
+ {
+ for(int i = 0; (i < 2); i = (i + 1)) {
+ v2f[i] = 1.0f;
+ v3f[i] = 1.0f;
+ v4f[i] = 1.0f;
+ v2i[i] = 1;
+ v3i[i] = 1;
+ v4i[i] = 1;
+ v2u[i] = 1u;
+ v3u[i] = 1u;
+ v4u[i] = 1u;
+ v2b[i] = true;
+ v3b[i] = true;
+ v4b[i] = true;
+ }
+ }
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl
new file mode 100644
index 0000000..8154232
--- /dev/null
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_types_repeated.wgsl.expected.glsl
@@ -0,0 +1,32 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ vec2 v2f = vec2(0.0f, 0.0f);
+ vec2 v2f_2 = vec2(0.0f, 0.0f);
+ ivec3 v3i = ivec3(0, 0, 0);
+ ivec3 v3i_2 = ivec3(0, 0, 0);
+ uvec4 v4u = uvec4(0u, 0u, 0u, 0u);
+ uvec4 v4u_2 = uvec4(0u, 0u, 0u, 0u);
+ bvec2 v2b = bvec2(false, false);
+ bvec2 v2b_2 = bvec2(false, false);
+ {
+ for(int i = 0; (i < 2); i = (i + 1)) {
+ v2f[i] = 1.0f;
+ v3i[i] = 1;
+ v4u[i] = 1u;
+ v2b[i] = true;
+ v2f_2[i] = 1.0f;
+ v3i_2[i] = 1;
+ v4u_2[i] = 1u;
+ v2b_2[i] = true;
+ }
+ }
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl
new file mode 100644
index 0000000..7211d43
--- /dev/null
+++ b/test/bug/fxc/vector_assignment_in_loop/loop_types_some.wgsl.expected.glsl
@@ -0,0 +1,41 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ vec2 v2f = vec2(0.0f, 0.0f);
+ vec3 v3f = vec3(0.0f, 0.0f, 0.0f);
+ vec4 v4f = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ ivec2 v2i = ivec2(0, 0);
+ ivec3 v3i = ivec3(0, 0, 0);
+ ivec4 v4i = ivec4(0, 0, 0, 0);
+ uvec2 v2u = uvec2(0u, 0u);
+ uvec3 v3u = uvec3(0u, 0u, 0u);
+ uvec4 v4u = uvec4(0u, 0u, 0u, 0u);
+ bvec2 v2b = bvec2(false, false);
+ bvec3 v3b = bvec3(false, false, false);
+ bvec4 v4b = bvec4(false, false, false, false);
+ {
+ for(int i = 0; (i < 2); i = (i + 1)) {
+ v2f[i] = 1.0f;
+ v2i[i] = 1;
+ v2u[i] = 1u;
+ v2b[i] = true;
+ }
+ }
+ int i = 0;
+ v3f[i] = 1.0f;
+ v4f[i] = 1.0f;
+ v3i[i] = 1;
+ v4i[i] = 1;
+ v3u[i] = 1u;
+ v4u[i] = 1u;
+ v3b[i] = true;
+ v4b[i] = true;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl b/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl
new file mode 100644
index 0000000..b81b3b6
--- /dev/null
+++ b/test/bug/fxc/vector_assignment_in_loop/no_loop.wgsl.expected.glsl
@@ -0,0 +1,37 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ vec2 v2f = vec2(0.0f, 0.0f);
+ vec3 v3f = vec3(0.0f, 0.0f, 0.0f);
+ vec4 v4f = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ ivec2 v2i = ivec2(0, 0);
+ ivec3 v3i = ivec3(0, 0, 0);
+ ivec4 v4i = ivec4(0, 0, 0, 0);
+ uvec2 v2u = uvec2(0u, 0u);
+ uvec3 v3u = uvec3(0u, 0u, 0u);
+ uvec4 v4u = uvec4(0u, 0u, 0u, 0u);
+ bvec2 v2b = bvec2(false, false);
+ bvec3 v3b = bvec3(false, false, false);
+ bvec4 v4b = bvec4(false, false, false, false);
+ int i = 0;
+ v2f[i] = 1.0f;
+ v3f[i] = 1.0f;
+ v4f[i] = 1.0f;
+ v2i[i] = 1;
+ v3i[i] = 1;
+ v4i[i] = 1;
+ v2u[i] = 1u;
+ v3u[i] = 1u;
+ v4u[i] = 1u;
+ v2b[i] = true;
+ v3b[i] = true;
+ v4b[i] = true;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/1046.wgsl.expected.glsl b/test/bug/tint/1046.wgsl.expected.glsl
new file mode 100644
index 0000000..c82363c
--- /dev/null
+++ b/test/bug/tint/1046.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct PointLight {
+ vec4 position;
+};
+
+layout (binding = 0) uniform Uniforms_1 {
+ mat4 worldView;
+ mat4 proj;
+ uint numPointLights;
+ uint color_source;
+ vec4 color;
+} uniforms;
+layout (binding = 1) buffer PointLights_1 {
+ PointLight values[];
+} pointLights;
+
+uniform highp sampler2D myTexture;
+
+struct FragmentInput {
+ vec4 position;
+ vec4 view_position;
+ vec4 normal;
+ vec2 uv;
+ vec4 color;
+};
+struct FragmentOutput {
+ vec4 color;
+};
+struct tint_symbol_3 {
+ vec4 view_position;
+ vec4 normal;
+ vec2 uv;
+ vec4 color;
+ vec4 position;
+};
+struct tint_symbol_4 {
+ vec4 color;
+};
+
+FragmentOutput tint_symbol_inner(FragmentInput fragment) {
+ FragmentOutput tint_symbol_1 = FragmentOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ tint_symbol_1.color = vec4(1.0f, 0.0f, 0.0f, 1.0f);
+ return tint_symbol_1;
+}
+
+tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
+ FragmentInput tint_symbol_5 = FragmentInput(tint_symbol_2.position, tint_symbol_2.view_position, tint_symbol_2.normal, tint_symbol_2.uv, tint_symbol_2.color);
+ FragmentOutput inner_result = tint_symbol_inner(tint_symbol_5);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.color = inner_result.color;
+ return wrapper_result;
+}
+in vec4 view_position;
+in vec4 normal;
+in vec2 uv;
+in vec4 color;
+out vec4 color;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.view_position = view_position;
+ inputs.normal = normal;
+ inputs.uv = uv;
+ inputs.color = color;
+ inputs.position = gl_FragCoord;
+ tint_symbol_4 outputs;
+ outputs = tint_symbol(inputs);
+ color = outputs.color;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:59: 'color' : redefinition
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/1064.wgsl.expected.glsl b/test/bug/tint/1064.wgsl.expected.glsl
new file mode 100644
index 0000000..c93c639
--- /dev/null
+++ b/test/bug/tint/1064.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+#version 310 es
+precision mediump float;
+
+void tint_symbol() {
+ while (true) {
+ if (false) {
+ } else {
+ break;
+ }
+ {
+ if (true) {
+ } else {
+ break;
+ }
+ }
+ }
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/1076.wgsl.expected.glsl b/test/bug/tint/1076.wgsl.expected.glsl
new file mode 100644
index 0000000..706f82f
--- /dev/null
+++ b/test/bug/tint/1076.wgsl.expected.glsl
@@ -0,0 +1,56 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct FragIn {
+ float a;
+ uint mask;
+};
+struct tint_symbol_3 {
+ float a;
+ float b;
+ uint mask;
+};
+struct tint_symbol_4 {
+ float a;
+ uint mask;
+};
+
+FragIn tint_symbol_inner(FragIn tint_symbol_1, float b) {
+ if ((tint_symbol_1.mask == 0u)) {
+ return tint_symbol_1;
+ }
+ FragIn tint_symbol_5 = FragIn(b, 1u);
+ return tint_symbol_5;
+}
+
+tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
+ FragIn tint_symbol_6 = FragIn(tint_symbol_2.a, tint_symbol_2.mask);
+ FragIn inner_result = tint_symbol_inner(tint_symbol_6, tint_symbol_2.b);
+ tint_symbol_4 wrapper_result = tint_symbol_4(0.0f, 0u);
+ wrapper_result.a = inner_result.a;
+ wrapper_result.mask = inner_result.mask;
+ return wrapper_result;
+}
+in float a;
+in float b;
+out float a;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.a = a;
+ inputs.b = b;
+ inputs.mask = uint(gl_SampleMask);
+ tint_symbol_4 outputs;
+ outputs = tint_symbol(inputs);
+ a = outputs.a;
+ gl_SampleMask = outputs.mask;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:36: 'a' : redefinition
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/1081.wgsl.expected.glsl b/test/bug/tint/1081.wgsl.expected.glsl
new file mode 100644
index 0000000..f86361a
--- /dev/null
+++ b/test/bug/tint/1081.wgsl.expected.glsl
@@ -0,0 +1,58 @@
+SKIP: FAILED
+
+bug/tint/1081.wgsl:9:25 warning: integral user-defined fragment inputs must have a flat interpolation attribute
+fn main([[location(1)]] x: vec3<i32>) -> [[location(2)]] i32 {
+ ^
+
+#version 310 es
+precision mediump float;
+
+int f(int x) {
+ if ((x == 10)) {
+ discard;
+ }
+ return x;
+}
+
+struct tint_symbol_2 {
+ ivec3 x;
+};
+struct tint_symbol_3 {
+ int value;
+};
+
+int tint_symbol_inner(ivec3 x) {
+ int y = x.x;
+ while (true) {
+ int r = f(y);
+ if ((r == 0)) {
+ break;
+ }
+ }
+ return y;
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ int inner_result = tint_symbol_inner(tint_symbol_1.x);
+ tint_symbol_3 wrapper_result = tint_symbol_3(0);
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+in ivec3 x;
+out int value;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.x = x;
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ value = outputs.value;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:35: 'int' : must be qualified as flat in
+ERROR: 0:35: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/1083.wgsl.expected.glsl b/test/bug/tint/1083.wgsl.expected.glsl
new file mode 100644
index 0000000..96a62a0
--- /dev/null
+++ b/test/bug/tint/1083.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int c = (1 / 0);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/tint/1086.wgsl.expected.glsl b/test/bug/tint/1086.wgsl.expected.glsl
new file mode 100644
index 0000000..23d3599
--- /dev/null
+++ b/test/bug/tint/1086.wgsl.expected.glsl
@@ -0,0 +1,22 @@
+#version 310 es
+precision mediump float;
+
+float v = 0.0f;
+
+void x(inout float p) {
+ p = 0.0f;
+}
+
+void g() {
+ x(v);
+}
+
+void f() {
+ g();
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/bug/tint/1088.spvasm.expected.glsl b/test/bug/tint/1088.spvasm.expected.glsl
new file mode 100644
index 0000000..d1e9121
--- /dev/null
+++ b/test/bug/tint/1088.spvasm.expected.glsl
@@ -0,0 +1,90 @@
+#version 310 es
+precision mediump float;
+
+struct tint_padded_array_element {
+ float el;
+};
+
+vec3 position = vec3(0.0f, 0.0f, 0.0f);
+layout (binding = 2) uniform LeftOver_1 {
+ mat4 worldViewProjection;
+ float time;
+ mat4 test2[2];
+ tint_padded_array_element test[4];
+} x_14;
+vec2 vUV = vec2(0.0f, 0.0f);
+vec2 uv = vec2(0.0f, 0.0f);
+vec3 normal = vec3(0.0f, 0.0f, 0.0f);
+vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+ vec4 q = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 p = vec3(0.0f, 0.0f, 0.0f);
+ vec3 x_13 = position;
+ q = vec4(x_13.x, x_13.y, x_13.z, 1.0f);
+ vec4 x_21 = q;
+ p = vec3(x_21.x, x_21.y, x_21.z);
+ float x_27 = p.x;
+ float x_41 = x_14.test[0].el;
+ float x_45 = position.y;
+ float x_49 = x_14.time;
+ p.x = (x_27 + sin(((x_41 * x_45) + x_49)));
+ float x_55 = p.y;
+ float x_57 = x_14.time;
+ p.y = (x_55 + sin((x_57 + 4.0f)));
+ mat4 x_69 = x_14.worldViewProjection;
+ vec3 x_70 = p;
+ tint_symbol = (x_69 * vec4(x_70.x, x_70.y, x_70.z, 1.0f));
+ vUV = uv;
+ float x_87 = tint_symbol.y;
+ tint_symbol.y = (x_87 * -1.0f);
+ return;
+}
+
+struct main_out {
+ vec4 tint_symbol;
+ vec2 vUV_1;
+};
+struct tint_symbol_3 {
+ vec3 position_param;
+ vec3 normal_param;
+ vec2 uv_param;
+};
+struct tint_symbol_4 {
+ vec2 vUV_1;
+ vec4 tint_symbol;
+};
+
+main_out tint_symbol_1_inner(vec3 position_param, vec2 uv_param, vec3 normal_param) {
+ position = position_param;
+ uv = uv_param;
+ normal = normal_param;
+ main_1();
+ main_out tint_symbol_5 = main_out(tint_symbol, vUV);
+ return tint_symbol_5;
+}
+
+tint_symbol_4 tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ main_out inner_result = tint_symbol_1_inner(tint_symbol_2.position_param, tint_symbol_2.uv_param, tint_symbol_2.normal_param);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.tint_symbol = inner_result.tint_symbol;
+ wrapper_result.vUV_1 = inner_result.vUV_1;
+ return wrapper_result;
+}
+in vec3 position_param;
+in vec3 normal_param;
+in vec2 uv_param;
+out vec2 vUV_1;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.position_param = position_param;
+ inputs.normal_param = normal_param;
+ inputs.uv_param = uv_param;
+ tint_symbol_4 outputs;
+ outputs = tint_symbol_1(inputs);
+ vUV_1 = outputs.vUV_1;
+ gl_Position = outputs.tint_symbol;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/bug/tint/1113.wgsl.expected.glsl b/test/bug/tint/1113.wgsl.expected.glsl
new file mode 100644
index 0000000..0aeef4e
--- /dev/null
+++ b/test/bug/tint/1113.wgsl.expected.glsl
@@ -0,0 +1,357 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Uniforms_1 {
+ uint numTriangles;
+ uint gridSize;
+ uint pad1;
+ uint pad2;
+ vec3 bbMin;
+ vec3 bbMax;
+} uniforms;
+layout (binding = 10) buffer U32s_1 {
+ uint values[];
+} indices;
+layout (binding = 11) buffer F32s_1 {
+ float values[];
+} positions;
+layout (binding = 20) buffer AU32s_1 {
+ uint values[];
+} counters;
+layout (binding = 21) buffer AI32s_1 {
+ int values[];
+} LUT;
+layout (binding = 50) buffer Dbg_1 {
+ uint offsetCounter;
+ uint pad0;
+ uint pad1;
+ uint pad2;
+ uint value0;
+ uint value1;
+ uint value2;
+ uint value3;
+ float value_f32_0;
+ float value_f32_1;
+ float value_f32_2;
+ float value_f32_3;
+} dbg;
+
+vec3 toVoxelPos(vec3 position) {
+ vec3 bbMin = vec3(uniforms.bbMin.x, uniforms.bbMin.y, uniforms.bbMin.z);
+ vec3 bbMax = vec3(uniforms.bbMax.x, uniforms.bbMax.y, uniforms.bbMax.z);
+ vec3 bbSize = (bbMax - bbMin);
+ float cubeSize = max(max(bbSize.x, bbSize.y), bbSize.z);
+ float gridSize = float(uniforms.gridSize);
+ float gx = ((gridSize * (position.x - uniforms.bbMin.x)) / cubeSize);
+ float gy = ((gridSize * (position.y - uniforms.bbMin.y)) / cubeSize);
+ float gz = ((gridSize * (position.z - uniforms.bbMin.z)) / cubeSize);
+ return vec3(gx, gy, gz);
+}
+
+uint toIndex1D(uint gridSize, vec3 voxelPos) {
+ uvec3 icoord = uvec3(voxelPos);
+ return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
+}
+
+vec3 loadPosition(uint vertexIndex) {
+ vec3 position = vec3(positions.values[((3u * vertexIndex) + 0u)], positions.values[((3u * vertexIndex) + 1u)], positions.values[((3u * vertexIndex) + 2u)]);
+ return position;
+}
+
+void doIgnore() {
+ uint g42 = uniforms.numTriangles;
+ uint kj6 = dbg.value1;
+ uint atomic_result = 0u;
+ InterlockedOr(counters.values[0], 0, atomic_result);
+ uint b53 = atomic_result;
+ uint rwg = indices.values[0];
+ float rb5 = positions.values[0];
+ int atomic_result_1 = 0;
+ InterlockedOr(LUT.values[0], 0, atomic_result_1);
+ int g55 = atomic_result_1;
+}
+
+struct tint_symbol_1 {
+ uvec3 GlobalInvocationID;
+};
+
+void main_count_inner(uvec3 GlobalInvocationID) {
+ uint triangleIndex = GlobalInvocationID.x;
+ if ((triangleIndex >= uniforms.numTriangles)) {
+ return;
+ }
+ doIgnore();
+ uint i0 = indices.values[((3u * triangleIndex) + 0u)];
+ uint i1 = indices.values[((3u * triangleIndex) + 1u)];
+ uint i2 = indices.values[((3u * triangleIndex) + 2u)];
+ vec3 p0 = loadPosition(i0);
+ vec3 p1 = loadPosition(i1);
+ vec3 p2 = loadPosition(i2);
+ vec3 center = (((p0 + p1) + p2) / 3.0f);
+ vec3 voxelPos = toVoxelPos(center);
+ uint voxelIndex = toIndex1D(uniforms.gridSize, voxelPos);
+ uint atomic_result_2 = 0u;
+ InterlockedAdd(counters.values[voxelIndex], 1u, atomic_result_2);
+ uint acefg = atomic_result_2;
+ if ((triangleIndex == 0u)) {
+ dbg.value0 = uniforms.gridSize;
+ dbg.value_f32_0 = center.x;
+ dbg.value_f32_1 = center.y;
+ dbg.value_f32_2 = center.z;
+ }
+}
+
+struct tint_symbol_3 {
+ uvec3 GlobalInvocationID;
+};
+struct tint_symbol_5 {
+ uvec3 GlobalInvocationID;
+};
+
+layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
+void main_count(tint_symbol_1 tint_symbol) {
+ main_count_inner(tint_symbol.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ main_count(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:66: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:66: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Uniforms_1 {
+ uint numTriangles;
+ uint gridSize;
+ uint pad1;
+ uint pad2;
+ vec3 bbMin;
+ vec3 bbMax;
+} uniforms;
+layout (binding = 10) buffer U32s_1 {
+ uint values[];
+} indices;
+layout (binding = 11) buffer F32s_1 {
+ float values[];
+} positions;
+layout (binding = 20) buffer AU32s_1 {
+ uint values[];
+} counters;
+layout (binding = 21) buffer AI32s_1 {
+ int values[];
+} LUT;
+layout (binding = 50) buffer Dbg_1 {
+ uint offsetCounter;
+ uint pad0;
+ uint pad1;
+ uint pad2;
+ uint value0;
+ uint value1;
+ uint value2;
+ uint value3;
+ float value_f32_0;
+ float value_f32_1;
+ float value_f32_2;
+ float value_f32_3;
+} dbg;
+
+void doIgnore() {
+ uint g42 = uniforms.numTriangles;
+ uint kj6 = dbg.value1;
+ uint atomic_result = 0u;
+ InterlockedOr(counters.values[0], 0, atomic_result);
+ uint b53 = atomic_result;
+ uint rwg = indices.values[0];
+ float rb5 = positions.values[0];
+ int atomic_result_1 = 0;
+ InterlockedOr(LUT.values[0], 0, atomic_result_1);
+ int g55 = atomic_result_1;
+}
+
+struct tint_symbol_1 {
+ uvec3 GlobalInvocationID;
+};
+struct tint_symbol_3 {
+ uvec3 GlobalInvocationID;
+};
+
+void main_create_lut_inner(uvec3 GlobalInvocationID) {
+ uint voxelIndex = GlobalInvocationID.x;
+ doIgnore();
+ uint maxVoxels = ((uniforms.gridSize * uniforms.gridSize) * uniforms.gridSize);
+ if ((voxelIndex >= maxVoxels)) {
+ return;
+ }
+ uint atomic_result_2 = 0u;
+ InterlockedOr(counters.values[voxelIndex], 0, atomic_result_2);
+ uint numTriangles = atomic_result_2;
+ int offset = -1;
+ if ((numTriangles > 0u)) {
+ uint atomic_result_3 = 0u;
+ InterlockedAdd(dbg.offsetCounter, numTriangles, atomic_result_3);
+ offset = int(atomic_result_3);
+ }
+ int atomic_result_4 = 0;
+ InterlockedExchange(LUT.values[voxelIndex], offset, atomic_result_4);
+}
+
+struct tint_symbol_5 {
+ uvec3 GlobalInvocationID;
+};
+
+layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
+void main_create_lut(tint_symbol_3 tint_symbol_2) {
+ main_create_lut_inner(tint_symbol_2.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_3 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ main_create_lut(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:44: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:44: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Uniforms_1 {
+ uint numTriangles;
+ uint gridSize;
+ uint pad1;
+ uint pad2;
+ vec3 bbMin;
+ vec3 bbMax;
+} uniforms;
+layout (binding = 10) buffer U32s_1 {
+ uint values[];
+} indices;
+layout (binding = 11) buffer F32s_1 {
+ float values[];
+} positions;
+layout (binding = 20) buffer AU32s_1 {
+ uint values[];
+} counters;
+layout (binding = 21) buffer AI32s_1 {
+ int values[];
+} LUT;
+layout (binding = 50) buffer Dbg_1 {
+ uint offsetCounter;
+ uint pad0;
+ uint pad1;
+ uint pad2;
+ uint value0;
+ uint value1;
+ uint value2;
+ uint value3;
+ float value_f32_0;
+ float value_f32_1;
+ float value_f32_2;
+ float value_f32_3;
+} dbg;
+
+vec3 toVoxelPos(vec3 position) {
+ vec3 bbMin = vec3(uniforms.bbMin.x, uniforms.bbMin.y, uniforms.bbMin.z);
+ vec3 bbMax = vec3(uniforms.bbMax.x, uniforms.bbMax.y, uniforms.bbMax.z);
+ vec3 bbSize = (bbMax - bbMin);
+ float cubeSize = max(max(bbSize.x, bbSize.y), bbSize.z);
+ float gridSize = float(uniforms.gridSize);
+ float gx = ((gridSize * (position.x - uniforms.bbMin.x)) / cubeSize);
+ float gy = ((gridSize * (position.y - uniforms.bbMin.y)) / cubeSize);
+ float gz = ((gridSize * (position.z - uniforms.bbMin.z)) / cubeSize);
+ return vec3(gx, gy, gz);
+}
+
+uint toIndex1D(uint gridSize, vec3 voxelPos) {
+ uvec3 icoord = uvec3(voxelPos);
+ return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z));
+}
+
+vec3 loadPosition(uint vertexIndex) {
+ vec3 position = vec3(positions.values[((3u * vertexIndex) + 0u)], positions.values[((3u * vertexIndex) + 1u)], positions.values[((3u * vertexIndex) + 2u)]);
+ return position;
+}
+
+void doIgnore() {
+ uint g42 = uniforms.numTriangles;
+ uint kj6 = dbg.value1;
+ uint atomic_result = 0u;
+ InterlockedOr(counters.values[0], 0, atomic_result);
+ uint b53 = atomic_result;
+ uint rwg = indices.values[0];
+ float rb5 = positions.values[0];
+ int atomic_result_1 = 0;
+ InterlockedOr(LUT.values[0], 0, atomic_result_1);
+ int g55 = atomic_result_1;
+}
+
+struct tint_symbol_1 {
+ uvec3 GlobalInvocationID;
+};
+struct tint_symbol_3 {
+ uvec3 GlobalInvocationID;
+};
+struct tint_symbol_5 {
+ uvec3 GlobalInvocationID;
+};
+
+void main_sort_triangles_inner(uvec3 GlobalInvocationID) {
+ uint triangleIndex = GlobalInvocationID.x;
+ doIgnore();
+ if ((triangleIndex >= uniforms.numTriangles)) {
+ return;
+ }
+ uint i0 = indices.values[((3u * triangleIndex) + 0u)];
+ uint i1 = indices.values[((3u * triangleIndex) + 1u)];
+ uint i2 = indices.values[((3u * triangleIndex) + 2u)];
+ vec3 p0 = loadPosition(i0);
+ vec3 p1 = loadPosition(i1);
+ vec3 p2 = loadPosition(i2);
+ vec3 center = (((p0 + p1) + p2) / 3.0f);
+ vec3 voxelPos = toVoxelPos(center);
+ uint voxelIndex = toIndex1D(uniforms.gridSize, voxelPos);
+ int atomic_result_2 = 0;
+ InterlockedAdd(LUT.values[voxelIndex], 1, atomic_result_2);
+ int triangleOffset = atomic_result_2;
+}
+
+layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
+void main_sort_triangles(tint_symbol_5 tint_symbol_4) {
+ main_sort_triangles_inner(tint_symbol_4.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_5 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ main_sort_triangles(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:66: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:66: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/1121.wgsl.expected.glsl b/test/bug/tint/1121.wgsl.expected.glsl
new file mode 100644
index 0000000..5dd520f
--- /dev/null
+++ b/test/bug/tint/1121.wgsl.expected.glsl
@@ -0,0 +1,146 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct LightData {
+ vec4 position;
+ vec3 color;
+ float radius;
+};
+
+layout (binding = 0) buffer LightsBuffer_1 {
+ LightData lights[];
+} lightsBuffer;
+
+struct TileLightIdData {
+ uint count;
+ uint lightId[64];
+};
+
+layout (binding = 0) buffer Tiles_1 {
+ TileLightIdData data[4];
+} tileLightId;
+
+layout (binding = 0) uniform Config_1 {
+ uint numLights;
+ uint numTiles;
+ uint tileCountX;
+ uint tileCountY;
+ uint numTileLightSlot;
+ uint tileSize;
+} config;
+
+layout (binding = 0) uniform Uniforms_1 {
+ vec4 tint_symbol;
+ vec4 tint_symbol_1;
+ mat4 viewMatrix;
+ mat4 projectionMatrix;
+ vec4 fullScreenSize;
+} uniforms;
+
+struct tint_symbol_4 {
+ uvec3 GlobalInvocationID;
+};
+
+void tint_symbol_2_inner(uvec3 GlobalInvocationID) {
+ uint index = GlobalInvocationID.x;
+ if ((index >= config.numLights)) {
+ return;
+ }
+ lightsBuffer.lights[index].position.y = ((lightsBuffer.lights[index].position.y - 0.100000001f) + (0.001f * (float(index) - (64.0f * floor((float(index) / 64.0f))))));
+ if ((lightsBuffer.lights[index].position.y < uniforms.tint_symbol.y)) {
+ lightsBuffer.lights[index].position.y = uniforms.tint_symbol_1.y;
+ }
+ mat4 M = uniforms.projectionMatrix;
+ float viewNear = (-(M[3][2]) / (-1.0f + M[2][2]));
+ float viewFar = (-(M[3][2]) / (1.0f + M[2][2]));
+ vec4 lightPos = lightsBuffer.lights[index].position;
+ lightPos = (uniforms.viewMatrix * lightPos);
+ lightPos = (lightPos / lightPos.w);
+ float lightRadius = lightsBuffer.lights[index].radius;
+ vec4 boxMin = (lightPos - vec4(vec3((lightRadius).xxx), 0.0f));
+ vec4 boxMax = (lightPos + vec4(vec3((lightRadius).xxx), 0.0f));
+ vec4 frustumPlanes[6] = vec4[6](vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ frustumPlanes[4] = vec4(0.0f, 0.0f, -1.0f, viewNear);
+ frustumPlanes[5] = vec4(0.0f, 0.0f, 1.0f, -(viewFar));
+ int TILE_SIZE = 16;
+ int TILE_COUNT_X = 2;
+ {
+ for(int y_1 = 0; (y_1 < 2); y_1 = (y_1 + 1)) {
+ {
+ for(int x_1 = 0; (x_1 < TILE_COUNT_X); x_1 = (x_1 + 1)) {
+ ivec2 tilePixel0Idx = ivec2((x_1 * TILE_SIZE), (y_1 * TILE_SIZE));
+ vec2 floorCoord = (((2.0f * vec2(tilePixel0Idx)) / uniforms.fullScreenSize.xy) - vec2((1.0f).xx));
+ vec2 ceilCoord = (((2.0f * vec2((tilePixel0Idx + ivec2((TILE_SIZE).xx)))) / uniforms.fullScreenSize.xy) - vec2((1.0f).xx));
+ vec2 viewFloorCoord = vec2((((-(viewNear) * floorCoord.x) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * floorCoord.y) - (M[2][1] * viewNear)) / M[1][1]));
+ vec2 viewCeilCoord = vec2((((-(viewNear) * ceilCoord.x) - (M[2][0] * viewNear)) / M[0][0]), (((-(viewNear) * ceilCoord.y) - (M[2][1] * viewNear)) / M[1][1]));
+ frustumPlanes[0] = vec4(1.0f, 0.0f, (-(viewFloorCoord.x) / viewNear), 0.0f);
+ frustumPlanes[1] = vec4(-1.0f, 0.0f, (viewCeilCoord.x / viewNear), 0.0f);
+ frustumPlanes[2] = vec4(0.0f, 1.0f, (-(viewFloorCoord.y) / viewNear), 0.0f);
+ frustumPlanes[3] = vec4(0.0f, -1.0f, (viewCeilCoord.y / viewNear), 0.0f);
+ float dp = 0.0f;
+ {
+ for(uint i = 0u; (i < 6u); i = (i + 1u)) {
+ vec4 p = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ if ((frustumPlanes[i].x > 0.0f)) {
+ p.x = boxMax.x;
+ } else {
+ p.x = boxMin.x;
+ }
+ if ((frustumPlanes[i].y > 0.0f)) {
+ p.y = boxMax.y;
+ } else {
+ p.y = boxMin.y;
+ }
+ if ((frustumPlanes[i].z > 0.0f)) {
+ p.z = boxMax.z;
+ } else {
+ p.z = boxMin.z;
+ }
+ p.w = 1.0f;
+ dp = (dp + min(0.0f, dot(p, frustumPlanes[i])));
+ }
+ }
+ if ((dp >= 0.0f)) {
+ uint tileId = uint((x_1 + (y_1 * TILE_COUNT_X)));
+ bool tint_tmp = (tileId < 0u);
+ if (!tint_tmp) {
+ tint_tmp = (tileId >= config.numTiles);
+ }
+ if ((tint_tmp)) {
+ continue;
+ }
+ uint atomic_result = 0u;
+ InterlockedAdd(tileLightId.data[tileId].count, 1u, atomic_result);
+ uint offset = atomic_result;
+ if ((offset >= config.numTileLightSlot)) {
+ continue;
+ }
+ tileLightId.data[tileId].lightId[offset] = GlobalInvocationID.x;
+ }
+ }
+ }
+ }
+ }
+}
+
+layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol_2(tint_symbol_4 tint_symbol_3) {
+ tint_symbol_2_inner(tint_symbol_3.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_4 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ tint_symbol_2(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:60: 'scalar swizzle' : not supported with this profile: es
+ERROR: 0:60: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/1136.wgsl.expected.glsl b/test/bug/tint/1136.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/1136.wgsl.expected.glsl
diff --git a/test/bug/tint/219.spvasm.expected.glsl b/test/bug/tint/219.spvasm.expected.glsl
new file mode 100644
index 0000000..2eeb7d1
--- /dev/null
+++ b/test/bug/tint/219.spvasm.expected.glsl
@@ -0,0 +1,24 @@
+#version 310 es
+precision mediump float;
+
+float x_200(inout vec2 x_201) {
+ float x_212 = x_201.x;
+ return x_212;
+}
+
+void main_1() {
+ vec2 x_11 = vec2(0.0f, 0.0f);
+ float x_12 = x_200(x_11);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/221.wgsl.expected.glsl b/test/bug/tint/221.wgsl.expected.glsl
new file mode 100644
index 0000000..a6e8124
--- /dev/null
+++ b/test/bug/tint/221.wgsl.expected.glsl
@@ -0,0 +1,37 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer Buf_1 {
+ uint count;
+ uint data[50];
+} b;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uint i = 0u;
+ while (true) {
+ if ((i >= b.count)) {
+ break;
+ }
+ uint p_save = i;
+ if (((i % 2u) == 0u)) {
+ {
+ b.data[p_save] = (b.data[p_save] * 2u);
+ i = (i + 1u);
+ }
+ continue;
+ }
+ b.data[p_save] = 0u;
+ {
+ b.data[p_save] = (b.data[p_save] * 2u);
+ i = (i + 1u);
+ }
+ }
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/292.wgsl.expected.glsl b/test/bug/tint/292.wgsl.expected.glsl
new file mode 100644
index 0000000..475e7418
--- /dev/null
+++ b/test/bug/tint/292.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ vec3 light = vec3(1.200000048f, 1.0f, 2.0f);
+ vec3 negative_light = -(light);
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/bug/tint/294.wgsl.expected.glsl b/test/bug/tint/294.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/294.wgsl.expected.glsl
diff --git a/test/bug/tint/369.wgsl.expected.glsl b/test/bug/tint/369.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/369.wgsl.expected.glsl
diff --git a/test/bug/tint/403.wgsl.expected.glsl b/test/bug/tint/403.wgsl.expected.glsl
new file mode 100644
index 0000000..15c7fd4
--- /dev/null
+++ b/test/bug/tint/403.wgsl.expected.glsl
@@ -0,0 +1,55 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform vertexUniformBuffer1_1 {
+ mat2 transform1;
+} x_20;
+layout (binding = 0) uniform vertexUniformBuffer2_1 {
+ mat2 transform2;
+} x_26;
+
+struct tint_symbol_2 {
+ uint gl_VertexIndex;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(uint gl_VertexIndex) {
+ vec2 indexable[3] = vec2[3](vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+ mat2 x_23 = x_20.transform1;
+ mat2 x_28 = x_26.transform2;
+ uint x_46 = gl_VertexIndex;
+ vec2 tint_symbol_4[3] = vec2[3](vec2(-1.0f, 1.0f), vec2(1.0f, 1.0f), vec2(-1.0f, -1.0f));
+ indexable = tint_symbol_4;
+ vec2 x_51 = indexable[x_46];
+ vec2 x_52 = (mat2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51);
+ return vec4(x_52.x, x_52.y, 0.0f, 1.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ vec4 inner_result = tint_symbol_inner(tint_symbol_1.gl_VertexIndex);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.gl_VertexIndex = uint(gl_VertexID);
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:19: 'gl_VertexIndex' : identifiers starting with "gl_" are reserved
+ERROR: 0:19: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/413.spvasm.expected.glsl b/test/bug/tint/413.spvasm.expected.glsl
new file mode 100644
index 0000000..c3dc7bc
--- /dev/null
+++ b/test/bug/tint/413.spvasm.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D Src;
+uniform highp writeonly image2D Dst;
+
+void main_1() {
+ uvec4 srcValue = uvec4(0u, 0u, 0u, 0u);
+ uvec4 x_18 = texelFetch(Src, ivec3(0, 0, 0));
+ srcValue = x_18;
+ uint x_22 = srcValue.x;
+ srcValue.x = (x_22 + uint(1));
+ imageStore(Dst, ivec2(0, 0), srcValue).x;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'texelFetch' : no matching overloaded function found
+ERROR: 0:9: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:9: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/453.wgsl.expected.glsl b/test/bug/tint/453.wgsl.expected.glsl
new file mode 100644
index 0000000..5eec44f
--- /dev/null
+++ b/test/bug/tint/453.wgsl.expected.glsl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D Src;
+uniform highp writeonly image2D Dst;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uvec4 srcValue = uvec4(0u, 0u, 0u, 0u);
+ uvec4 x_22 = texelFetch(Src, ivec3(0, 0, 0));
+ srcValue = x_22;
+ uint x_24 = srcValue.x;
+ uint x_25 = (x_24 + 1u);
+ imageStore(Dst, ivec2(0, 0), srcValue.xxxx).x;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:10: 'texelFetch' : no matching overloaded function found
+ERROR: 0:10: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:10: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/492.wgsl.expected.glsl b/test/bug/tint/492.wgsl.expected.glsl
new file mode 100644
index 0000000..69f3063
--- /dev/null
+++ b/test/bug/tint/492.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a;
+} buf;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ buf.a = 12;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/534.wgsl.expected.glsl b/test/bug/tint/534.wgsl.expected.glsl
new file mode 100644
index 0000000..8a8429e
--- /dev/null
+++ b/test/bug/tint/534.wgsl.expected.glsl
@@ -0,0 +1,76 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+uniform highp sampler2D src;
+uniform highp sampler2D dst;
+layout (binding = 2) buffer OutputBuf_1 {
+ uint result[];
+} tint_symbol;
+layout (binding = 3) uniform Uniforms_1 {
+ uint dstTextureFlipY;
+ uint isFloat16;
+ uint isRGB10A2Unorm;
+ uint channelCount;
+} uniforms;
+
+uint ConvertToFp16FloatValue(float fp32) {
+ return 1u;
+}
+
+struct tint_symbol_3 {
+ uvec3 GlobalInvocationID;
+};
+
+void tint_symbol_1_inner(uvec3 GlobalInvocationID) {
+ ivec2 size = textureSize(src);
+ ivec2 dstTexCoord = ivec2(GlobalInvocationID.xy);
+ ivec2 srcTexCoord = dstTexCoord;
+ if ((uniforms.dstTextureFlipY == 1u)) {
+ srcTexCoord.y = ((size.y - dstTexCoord.y) - 1);
+ }
+ vec4 srcColor = texelFetch(src, ivec3(srcTexCoord, 0));
+ vec4 dstColor = texelFetch(dst, ivec3(dstTexCoord, 0));
+ bool success = true;
+ uvec4 srcColorBits = uvec4(0u, 0u, 0u, 0u);
+ uvec4 dstColorBits = uvec4(dstColor);
+ {
+ for(uint i = 0u; (i < uniforms.channelCount); i = (i + 1u)) {
+ srcColorBits[i] = ConvertToFp16FloatValue(srcColor[i]);
+ bool tint_tmp = success;
+ if (tint_tmp) {
+ tint_tmp = (srcColorBits[i] == dstColorBits[i]);
+ }
+ success = (tint_tmp);
+ }
+ }
+ uint outputIndex = ((GlobalInvocationID.y * uint(size.x)) + GlobalInvocationID.x);
+ if (success) {
+ tint_symbol.result[outputIndex] = uint(1);
+ } else {
+ tint_symbol.result[outputIndex] = uint(0);
+ }
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ tint_symbol_1_inner(tint_symbol_2.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_3 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ tint_symbol_1(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:26: 'textureSize' : no matching overloaded function found
+ERROR: 0:26: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:26: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/744.wgsl.expected.glsl b/test/bug/tint/744.wgsl.expected.glsl
new file mode 100644
index 0000000..e8890c4
--- /dev/null
+++ b/test/bug/tint/744.wgsl.expected.glsl
@@ -0,0 +1,51 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer Matrix_1 {
+ uint numbers[];
+} firstMatrix;
+layout (binding = 1) buffer Matrix_2 {
+ uint numbers[];
+} secondMatrix;
+layout (binding = 2) buffer Matrix_3 {
+ uint numbers[];
+} resultMatrix;
+layout (binding = 3) uniform Uniforms_1 {
+ uvec2 aShape;
+ uvec2 bShape;
+ uvec2 outShape;
+} uniforms;
+
+struct tint_symbol_2 {
+ uvec3 global_id;
+};
+
+void tint_symbol_inner(uvec3 global_id) {
+ uvec2 resultCell = uvec2(global_id.y, global_id.x);
+ uint dimInner = uniforms.aShape.y;
+ uint dimOutter = uniforms.outShape.y;
+ uint result = 0u;
+ {
+ for(uint i = 0u; (i < dimInner); i = (i + 1u)) {
+ uint a = (i + (resultCell.x * dimInner));
+ uint b = (resultCell.y + (i * dimOutter));
+ result = (result + (firstMatrix.numbers[a] * secondMatrix.numbers[b]));
+ }
+ }
+ uint index = (resultCell.y + (resultCell.x * dimOutter));
+ resultMatrix.numbers[index] = result;
+}
+
+layout(local_size_x = 2, local_size_y = 2, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.global_id);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.global_id = gl_GlobalInvocationID;
+ tint_symbol(inputs);
+}
+
+
diff --git a/test/bug/tint/749.spvasm.expected.glsl b/test/bug/tint/749.spvasm.expected.glsl
new file mode 100644
index 0000000..f58102f
--- /dev/null
+++ b/test/bug/tint/749.spvasm.expected.glsl
@@ -0,0 +1,1584 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct QuicksortObject {
+ int numbers[10];
+};
+
+QuicksortObject obj = QuicksortObject(int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+layout (binding = 0) uniform buf0_1 {
+ vec2 resolution;
+} x_188;
+vec4 x_GLF_color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void swap_i1_i1_(inout int i, inout int j) {
+ int temp = 0;
+ int x_932 = temp;
+ temp = 0;
+ temp = x_932;
+ vec3 x_523 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
+ int x_933 = i;
+ i = 0;
+ i = x_933;
+ int x_28 = i;
+ int x_934 = j;
+ j = 0;
+ j = x_934;
+ vec3 x_524 = vec3(x_523.y, x_523.x, x_523.y);
+ int x_935 = temp;
+ temp = 0;
+ temp = x_935;
+ int x_30_save = x_28;
+ int x_936 = obj.numbers[x_30_save];
+ obj.numbers[x_30_save] = 0;
+ obj.numbers[x_30_save] = x_936;
+ int x_31 = obj.numbers[x_30_save];
+ int x_937 = temp;
+ temp = 0;
+ temp = x_937;
+ temp = x_31;
+ int x_938 = j;
+ j = 0;
+ j = x_938;
+ vec3 x_525 = vec3(x_523.z, vec3(1.0f, 2.0f, 3.0f).x, x_523.y);
+ int x_939 = i;
+ i = 0;
+ i = x_939;
+ int x_32 = i;
+ int x_940 = obj.numbers[x_30_save];
+ obj.numbers[x_30_save] = 0;
+ obj.numbers[x_30_save] = x_940;
+ int x_33 = j;
+ int x_941 = i;
+ i = 0;
+ i = x_941;
+ vec3 x_526 = vec3(x_525.x, x_525.z, x_525.z);
+ int x_942 = obj.numbers[x_30_save];
+ obj.numbers[x_30_save] = 0;
+ obj.numbers[x_30_save] = x_942;
+ int x_34_save = x_33;
+ int x_35 = obj.numbers[x_34_save];
+ QuicksortObject x_943 = obj;
+ int tint_symbol_5[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_6 = QuicksortObject(tint_symbol_5);
+ obj = tint_symbol_6;
+ obj = x_943;
+ vec2 x_527 = vec2(x_526.x, x_526.x);
+ int x_36_save = x_32;
+ vec3 x_528 = vec3(x_524.x, x_524.z, x_524.x);
+ obj.numbers[x_36_save] = x_35;
+ QuicksortObject x_944 = obj;
+ int tint_symbol_7[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_8 = QuicksortObject(tint_symbol_7);
+ obj = tint_symbol_8;
+ obj = x_944;
+ vec3 x_529 = vec3(x_526.y, x_526.z, x_526.x);
+ int x_945 = i;
+ i = 0;
+ i = x_945;
+ int x_37 = j;
+ int x_946 = temp;
+ temp = 0;
+ temp = x_946;
+ vec2 x_530 = vec2(x_529.z, x_529.y);
+ int x_947 = obj.numbers[x_34_save];
+ obj.numbers[x_34_save] = 0;
+ obj.numbers[x_34_save] = x_947;
+ int x_38 = temp;
+ int x_948 = j;
+ j = 0;
+ j = x_948;
+ vec3 x_531 = vec3(x_527.x, x_526.y, x_526.x);
+ int x_949 = obj.numbers[x_36_save];
+ obj.numbers[x_36_save] = 0;
+ obj.numbers[x_36_save] = x_949;
+ QuicksortObject x_950 = obj;
+ int tint_symbol_9[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_10 = QuicksortObject(tint_symbol_9);
+ obj = tint_symbol_10;
+ obj = x_950;
+ vec3 x_532 = vec3(x_528.x, x_528.y, x_528.x);
+ int x_951 = obj.numbers[x_34_save];
+ obj.numbers[x_34_save] = 0;
+ obj.numbers[x_34_save] = x_951;
+ obj.numbers[x_37] = x_38;
+ return;
+}
+
+int performPartition_i1_i1_(inout int l, inout int h) {
+ int param_3 = 0;
+ int i_1 = 0;
+ int j_1 = 0;
+ int param_2 = 0;
+ int param_1 = 0;
+ int param = 0;
+ int pivot = 0;
+ vec2 x_537 = vec2(0.0f, 0.0f);
+ vec3 x_538 = vec3(0.0f, 0.0f, 0.0f);
+ int x_952 = h;
+ h = 0;
+ h = x_952;
+ int x_41 = h;
+ int x_953 = l;
+ l = 0;
+ l = x_953;
+ int x_42_save = x_41;
+ int x_954 = obj.numbers[x_42_save];
+ obj.numbers[x_42_save] = 0;
+ obj.numbers[x_42_save] = x_954;
+ int x_43 = obj.numbers[x_42_save];
+ int x_955 = param_3;
+ param_3 = 0;
+ param_3 = x_955;
+ vec3 x_534 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z);
+ int x_956 = param_1;
+ param_1 = 0;
+ param_1 = x_956;
+ pivot = x_43;
+ int x_45 = l;
+ int x_957 = h;
+ h = 0;
+ h = x_957;
+ int x_958 = j_1;
+ j_1 = 0;
+ j_1 = x_958;
+ vec3 x_535 = vec3(x_534.y, x_534.z, x_534.y);
+ int x_959 = l;
+ l = 0;
+ l = x_959;
+ i_1 = (x_45 - int(1u));
+ int x_49 = l;
+ vec3 x_536 = vec3(x_534.x, x_534.z, x_535.x);
+ j_1 = 10;
+ QuicksortObject x_960 = obj;
+ int tint_symbol_11[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_12 = QuicksortObject(tint_symbol_11);
+ obj = tint_symbol_12;
+ obj = x_960;
+ while (true) {
+ int x_961 = pivot;
+ pivot = 0;
+ pivot = x_961;
+ int x_962 = param_1;
+ param_1 = 0;
+ param_1 = x_962;
+ int x_55 = j_1;
+ int x_963 = pivot;
+ pivot = 0;
+ pivot = x_963;
+ x_537 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
+ QuicksortObject x_964 = obj;
+ int tint_symbol_13[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_14 = QuicksortObject(tint_symbol_13);
+ obj = tint_symbol_14;
+ obj = x_964;
+ int x_56 = h;
+ int x_965 = h;
+ h = 0;
+ h = x_965;
+ int x_966 = param;
+ param = 0;
+ param = x_966;
+ int x_967 = j_1;
+ j_1 = 0;
+ j_1 = x_967;
+ x_538 = vec3(x_534.x, x_537.y, x_534.z);
+ int x_968 = param;
+ param = 0;
+ param = x_968;
+ if ((x_55 <= (x_56 - int(1u)))) {
+ } else {
+ break;
+ }
+ int x_60 = j_1;
+ int x_969 = obj.numbers[x_42_save];
+ obj.numbers[x_42_save] = 0;
+ obj.numbers[x_42_save] = x_969;
+ int x_61_save = x_60;
+ int x_970 = h;
+ h = 0;
+ h = x_970;
+ vec3 x_539 = vec3(x_537.x, x_535.z, x_537.x);
+ int x_971 = param_1;
+ param_1 = 0;
+ param_1 = x_971;
+ int x_62 = obj.numbers[x_61_save];
+ QuicksortObject x_972 = obj;
+ int tint_symbol_15[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_16 = QuicksortObject(tint_symbol_15);
+ obj = tint_symbol_16;
+ obj = x_972;
+ int x_63 = pivot;
+ vec2 x_540 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_534.z);
+ int x_973 = i_1;
+ i_1 = 0;
+ i_1 = x_973;
+ int x_974 = l;
+ l = 0;
+ l = x_974;
+ vec3 x_541 = vec3(x_534.y, x_534.x, x_534.y);
+ int x_975 = pivot;
+ pivot = 0;
+ pivot = x_975;
+ if ((x_62 <= x_63)) {
+ vec3 x_542 = vec3(x_541.z, x_541.x, x_541.x);
+ int x_976 = param_3;
+ param_3 = 0;
+ param_3 = x_976;
+ int x_67 = i_1;
+ int x_977 = pivot;
+ pivot = 0;
+ pivot = x_977;
+ vec2 x_543 = vec2(x_539.x, x_541.y);
+ int x_978 = i_1;
+ i_1 = 0;
+ i_1 = x_978;
+ int x_979 = param;
+ param = 0;
+ param = x_979;
+ i_1 = (x_67 + int(1u));
+ int x_980 = l;
+ l = 0;
+ l = x_980;
+ vec3 x_544 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y, x_540.x);
+ int x_70 = i_1;
+ vec2 x_545 = vec2(x_537.y, x_538.x);
+ int x_981 = param;
+ param = 0;
+ param = x_981;
+ param = x_70;
+ int x_982 = param;
+ param = 0;
+ param = x_982;
+ vec2 x_546 = vec2(x_545.x, x_545.x);
+ int x_983 = i_1;
+ i_1 = 0;
+ i_1 = x_983;
+ param_1 = j_1;
+ int x_984 = param_3;
+ param_3 = 0;
+ param_3 = x_984;
+ swap_i1_i1_(param, param_1);
+ int x_985 = param_1;
+ param_1 = 0;
+ param_1 = x_985;
+ }
+ QuicksortObject x_986 = obj;
+ int tint_symbol_17[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_18 = QuicksortObject(tint_symbol_17);
+ obj = tint_symbol_18;
+ obj = x_986;
+ {
+ int x_987 = h;
+ h = 0;
+ h = x_987;
+ int x_74 = j_1;
+ int x_988 = h;
+ h = 0;
+ h = x_988;
+ vec3 x_547 = vec3(x_539.x, x_541.z, x_541.z);
+ int x_989 = obj.numbers[x_61_save];
+ obj.numbers[x_61_save] = 0;
+ obj.numbers[x_61_save] = x_989;
+ int x_990 = param;
+ param = 0;
+ param = x_990;
+ j_1 = (1 + x_74);
+ int x_991 = param_1;
+ param_1 = 0;
+ param_1 = x_991;
+ vec3 x_548 = vec3(x_541.y, x_541.z, x_541.x);
+ int x_992 = obj.numbers[x_61_save];
+ obj.numbers[x_61_save] = 0;
+ obj.numbers[x_61_save] = x_992;
+ }
+ }
+ int x_76 = i_1;
+ int x_993 = obj.numbers[x_42_save];
+ obj.numbers[x_42_save] = 0;
+ obj.numbers[x_42_save] = x_993;
+ vec2 x_549 = vec2(x_534.x, x_534.y);
+ QuicksortObject x_994 = obj;
+ int tint_symbol_19[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_20 = QuicksortObject(tint_symbol_19);
+ obj = tint_symbol_20;
+ obj = x_994;
+ int x_995 = h;
+ h = 0;
+ h = x_995;
+ i_1 = (1 + x_76);
+ int x_996 = param_1;
+ param_1 = 0;
+ param_1 = x_996;
+ int x_79 = i_1;
+ int x_997 = j_1;
+ j_1 = 0;
+ j_1 = x_997;
+ vec2 x_550 = vec2(x_534.x, x_534.x);
+ int x_998 = param_1;
+ param_1 = 0;
+ param_1 = x_998;
+ param_2 = x_79;
+ vec2 x_551 = vec2(x_534.y, x_536.x);
+ int x_999 = pivot;
+ pivot = 0;
+ pivot = x_999;
+ int x_81 = h;
+ vec2 x_552 = vec2(x_550.x, x_549.y);
+ int x_1000 = h;
+ h = 0;
+ h = x_1000;
+ param_3 = x_81;
+ int x_1001 = i_1;
+ i_1 = 0;
+ i_1 = x_1001;
+ vec2 x_553 = vec2(x_549.y, x_552.x);
+ int x_1002 = h;
+ h = 0;
+ h = x_1002;
+ swap_i1_i1_(param_2, param_3);
+ int x_1003 = l;
+ l = 0;
+ l = x_1003;
+ vec2 x_554 = vec2(x_536.z, vec3(1.0f, 2.0f, 3.0f).y);
+ int x_1004 = param_1;
+ param_1 = 0;
+ param_1 = x_1004;
+ int x_83 = i_1;
+ int x_1005 = param;
+ param = 0;
+ param = x_1005;
+ vec2 x_555 = vec2(x_534.y, x_534.x);
+ int x_1006 = j_1;
+ j_1 = 0;
+ j_1 = x_1006;
+ return x_83;
+}
+
+void quicksort_() {
+ int param_4 = 0;
+ int h_1 = 0;
+ int p = 0;
+ int l_1 = 0;
+ int top = 0;
+ int stack[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ int param_5 = 0;
+ l_1 = 0;
+ int x_1007 = param_5;
+ param_5 = 0;
+ param_5 = x_1007;
+ h_1 = 9;
+ int x_1008[10] = stack;
+ int tint_symbol_21[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_21;
+ stack = x_1008;
+ vec2 x_556 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y);
+ int x_1009 = param_5;
+ param_5 = 0;
+ param_5 = x_1009;
+ top = -1;
+ int x_1010 = p;
+ p = 0;
+ p = x_1010;
+ int x_93 = top;
+ vec2 x_557 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
+ int x_1011 = p;
+ p = 0;
+ p = x_1011;
+ int x_94 = (x_93 + int(1u));
+ int x_1012 = top;
+ top = 0;
+ top = x_1012;
+ vec2 x_558 = vec2(x_556.y, x_557.y);
+ int x_1013 = param_4;
+ param_4 = 0;
+ param_4 = x_1013;
+ top = x_94;
+ int x_1014 = h_1;
+ h_1 = 0;
+ h_1 = x_1014;
+ vec3 x_559 = vec3(x_557.y, x_557.x, x_557.x);
+ int x_1015 = param_4;
+ param_4 = 0;
+ param_4 = x_1015;
+ int x_95 = l_1;
+ QuicksortObject x_1016 = obj;
+ int tint_symbol_22[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_23 = QuicksortObject(tint_symbol_22);
+ obj = tint_symbol_23;
+ obj = x_1016;
+ vec3 x_560 = vec3(x_559.y, x_559.x, x_557.x);
+ int x_96_save = x_94;
+ int x_1017[10] = stack;
+ int tint_symbol_24[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_24;
+ stack = x_1017;
+ vec3 x_561 = vec3(x_556.y, x_556.y, x_556.y);
+ int x_1018 = l_1;
+ l_1 = 0;
+ l_1 = 0;
+ stack[x_96_save] = x_95;
+ int x_1019 = param_5;
+ param_5 = 0;
+ param_5 = x_1019;
+ int x_97 = top;
+ int x_1020 = param_4;
+ param_4 = 0;
+ param_4 = x_1020;
+ vec3 x_562 = vec3(vec3(1.0f, 2.0f, 3.0f).z, x_558.y, vec3(1.0f, 2.0f, 3.0f).y);
+ int x_1021 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1021;
+ int x_98 = (x_97 + 1);
+ int x_1022 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1022;
+ vec3 x_563 = vec3(x_559.x, x_559.z, x_556.y);
+ top = x_98;
+ int x_1023 = param_4;
+ param_4 = 0;
+ param_4 = x_1023;
+ int x_99 = h_1;
+ int x_1024 = param_4;
+ param_4 = 0;
+ param_4 = x_1024;
+ vec3 x_564 = vec3(x_558.x, x_561.x, x_558.y);
+ int x_1025 = l_1;
+ l_1 = 0;
+ l_1 = x_1025;
+ int x_100_save = x_98;
+ int x_1026 = param_5;
+ param_5 = 0;
+ param_5 = x_1026;
+ vec2 x_565 = vec2(x_564.z, x_564.z);
+ int x_1027 = p;
+ p = 0;
+ p = x_1027;
+ stack[x_100_save] = x_99;
+ while (true) {
+ vec3 x_566 = vec3(x_563.x, x_563.x, x_563.x);
+ int x_1028 = h_1;
+ h_1 = 0;
+ h_1 = x_1028;
+ int x_1029[10] = stack;
+ int tint_symbol_25[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_25;
+ stack = x_1029;
+ int x_106 = top;
+ int x_1030[10] = stack;
+ int tint_symbol_26[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_26;
+ stack = x_1030;
+ vec2 x_567 = vec2(x_558.x, x_564.z);
+ int x_1031 = param_4;
+ param_4 = 0;
+ param_4 = x_1031;
+ if ((x_106 >= int(0u))) {
+ } else {
+ break;
+ }
+ QuicksortObject x_1032 = obj;
+ int tint_symbol_27[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_28 = QuicksortObject(tint_symbol_27);
+ obj = tint_symbol_28;
+ obj = x_1032;
+ vec3 x_568 = vec3(x_559.y, x_559.x, x_563.y);
+ int x_1033 = param_4;
+ param_4 = 0;
+ param_4 = x_1033;
+ int x_108 = top;
+ vec3 x_569 = vec3(x_565.x, x_567.y, x_565.x);
+ int x_1034 = h_1;
+ h_1 = 0;
+ h_1 = x_1034;
+ vec2 x_570 = vec2(x_556.x, x_556.x);
+ int x_1035 = p;
+ p = 0;
+ p = x_1035;
+ top = (x_108 - int(1u));
+ int x_1036 = p;
+ p = 0;
+ p = x_1036;
+ int x_110_save = x_108;
+ int x_1037 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1037;
+ int x_111 = stack[x_110_save];
+ int x_1038[10] = stack;
+ int tint_symbol_29[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_29;
+ stack = x_1038;
+ vec3 x_571 = vec3(x_559.y, x_559.x, x_564.y);
+ int x_1039 = l_1;
+ l_1 = 0;
+ l_1 = x_1039;
+ h_1 = x_111;
+ int x_1040[10] = stack;
+ int tint_symbol_30[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_30;
+ stack = x_1040;
+ vec2 x_572 = vec2(x_562.y, x_561.y);
+ int x_1041 = p;
+ p = 0;
+ p = x_1041;
+ int x_112 = top;
+ int x_1042 = param_4;
+ param_4 = 0;
+ param_4 = x_1042;
+ int x_1043 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1043;
+ vec2 x_573 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
+ top = (x_112 - 1);
+ int x_1044 = param_5;
+ param_5 = 0;
+ param_5 = x_1044;
+ vec3 x_574 = vec3(x_570.y, x_565.x, x_570.y);
+ int x_1045 = h_1;
+ h_1 = 0;
+ h_1 = x_1045;
+ int x_114_save = x_112;
+ vec2 x_575 = vec2(x_564.y, x_564.z);
+ int x_1046 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1046;
+ int x_115 = stack[x_114_save];
+ int x_1047 = p;
+ p = 0;
+ p = x_1047;
+ vec3 x_576 = vec3(x_573.y, x_573.y, x_565.x);
+ int x_1048 = param_5;
+ param_5 = 0;
+ param_5 = x_1048;
+ l_1 = x_115;
+ int x_1049 = top;
+ top = 0;
+ top = x_1049;
+ param_4 = l_1;
+ int x_1050 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1050;
+ vec2 x_577 = vec2(x_569.y, x_569.z);
+ int x_120 = h_1;
+ vec2 x_578 = vec2(x_558.x, vec3(1.0f, 2.0f, 3.0f).y);
+ param_5 = x_120;
+ int x_1051 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1051;
+ int x_121 = performPartition_i1_i1_(param_4, param_5);
+ vec2 x_579 = vec2(x_567.x, x_568.x);
+ int x_1052 = param_5;
+ param_5 = 0;
+ param_5 = x_1052;
+ p = x_121;
+ int x_1053 = param_4;
+ param_4 = 0;
+ param_4 = x_1053;
+ int x_122 = p;
+ int x_1054 = h_1;
+ h_1 = 0;
+ h_1 = x_1054;
+ vec2 x_580 = vec2(x_568.y, x_568.y);
+ int x_1055 = l_1;
+ l_1 = 0;
+ l_1 = x_1055;
+ int x_1056 = h_1;
+ h_1 = 0;
+ h_1 = x_1056;
+ int x_124 = l_1;
+ int x_1057 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1057;
+ int x_1058 = h_1;
+ h_1 = 0;
+ h_1 = x_1058;
+ vec2 x_582 = vec2(x_567.y, x_573.x);
+ int x_1059 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1059;
+ if (((x_122 - int(1u)) > x_124)) {
+ int x_1060 = param_4;
+ param_4 = 0;
+ param_4 = x_1060;
+ int x_128 = top;
+ vec2 x_583 = vec2(x_571.y, x_556.y);
+ int x_1061 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1061;
+ int x_1062[10] = stack;
+ int tint_symbol_31[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_31;
+ stack = x_1062;
+ vec2 x_584 = vec2(x_569.z, x_569.y);
+ vec3 x_585 = vec3(x_580.y, x_577.x, x_577.x);
+ int x_130 = l_1;
+ int x_1063 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1063;
+ vec2 x_586 = vec2(x_564.x, x_585.x);
+ int x_1064 = param_5;
+ param_5 = 0;
+ param_5 = x_1064;
+ int x_131_save = (1 + x_128);
+ int x_1065 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1065;
+ vec3 x_587 = vec3(x_566.y, x_566.y, x_563.x);
+ int x_1066 = param_5;
+ param_5 = 0;
+ param_5 = x_1066;
+ stack[x_131_save] = x_130;
+ int x_132 = top;
+ int x_1067 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1067;
+ vec2 x_588 = vec2(x_575.y, x_575.x);
+ int x_1068 = stack[x_131_save];
+ stack[x_131_save] = 0;
+ stack[x_131_save] = x_1068;
+ int x_133 = int((1u + uint(x_132)));
+ int x_1069 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1069;
+ vec3 x_589 = vec3(x_576.z, x_588.y, x_576.z);
+ int x_1070 = h_1;
+ h_1 = 0;
+ h_1 = x_1070;
+ top = x_133;
+ int x_1071[10] = stack;
+ int tint_symbol_32[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_32;
+ stack = x_1071;
+ int x_134 = p;
+ vec2 x_590 = vec2(x_576.x, x_573.y);
+ int x_1072 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1072;
+ int x_136_save = x_133;
+ int x_1073 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1073;
+ stack[x_136_save] = (x_134 - int(1u));
+ int x_1074 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1074;
+ vec2 x_591 = vec2(x_569.z, x_569.y);
+ int x_1075 = stack[x_136_save];
+ stack[x_136_save] = 0;
+ stack[x_136_save] = x_1075;
+ }
+ int x_1076 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1076;
+ vec2 x_592 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).y);
+ QuicksortObject x_1077 = obj;
+ int tint_symbol_33[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_34 = QuicksortObject(tint_symbol_33);
+ obj = tint_symbol_34;
+ obj = x_1077;
+ int x_137 = p;
+ int x_1078 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1078;
+ vec3 x_593 = vec3(x_571.z, x_556.x, x_556.y);
+ int x_1079 = p;
+ p = 0;
+ p = x_1079;
+ vec3 x_594 = vec3(x_563.z, x_563.x, x_575.x);
+ int x_1080 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1080;
+ int x_139 = h_1;
+ int x_1081 = top;
+ top = 0;
+ top = x_1081;
+ vec3 x_595 = vec3(x_560.z, x_568.x, x_560.x);
+ int x_1082 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1082;
+ int x_1083 = p;
+ p = 0;
+ p = x_1083;
+ if ((int((1u + uint(x_137))) < x_139)) {
+ int x_1084 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1084;
+ vec2 x_596 = vec2(x_592.y, x_582.x);
+ int x_1085 = l_1;
+ l_1 = 0;
+ l_1 = x_1085;
+ int x_143 = top;
+ int x_1086 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1086;
+ vec3 x_597 = vec3(x_562.y, x_560.y, x_560.y);
+ int x_144 = (x_143 + 1);
+ int x_1087 = param_5;
+ param_5 = 0;
+ param_5 = x_1087;
+ top = x_144;
+ int x_1088 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1088;
+ int x_145 = p;
+ int x_1089 = param_5;
+ param_5 = 0;
+ param_5 = x_1089;
+ vec3 x_599 = vec3(x_560.z, x_560.x, x_568.x);
+ int x_1090 = p;
+ p = 0;
+ p = x_1090;
+ vec3 x_600 = vec3(x_556.x, x_580.x, x_580.x);
+ int x_1091 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1091;
+ int x_147_save = x_144;
+ int x_1092 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1092;
+ vec2 x_601 = vec2(x_563.x, x_563.y);
+ stack[x_147_save] = int((1u + uint(x_145)));
+ int x_1093[10] = stack;
+ int tint_symbol_35[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_35;
+ stack = x_1093;
+ int x_148 = top;
+ int x_1094 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1094;
+ vec2 x_602 = vec2(x_565.y, x_599.y);
+ int x_1095[10] = stack;
+ int tint_symbol_36[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ stack = tint_symbol_36;
+ stack = x_1095;
+ int x_149 = (x_148 + int(1u));
+ int x_1096 = stack[x_147_save];
+ stack[x_147_save] = 0;
+ stack[x_147_save] = x_1096;
+ top = x_149;
+ int x_1097 = param_4;
+ param_4 = 0;
+ param_4 = x_1097;
+ int x_150 = h_1;
+ int x_1098 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1098;
+ int x_1099 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1099;
+ stack[x_149] = x_150;
+ int x_1100 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1100;
+ vec3 x_603 = vec3(x_568.y, x_564.x, x_564.x);
+ int x_1101 = l_1;
+ l_1 = 0;
+ l_1 = x_1101;
+ }
+ int x_1102 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1102;
+ {
+ int x_1103 = l_1;
+ l_1 = 0;
+ l_1 = x_1103;
+ vec2 x_604 = vec2(x_563.z, x_564.x);
+ QuicksortObject x_1104 = obj;
+ int tint_symbol_37[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_38 = QuicksortObject(tint_symbol_37);
+ obj = tint_symbol_38;
+ obj = x_1104;
+ }
+ }
+ int x_1105 = h_1;
+ h_1 = 0;
+ h_1 = x_1105;
+ return;
+}
+
+void main_1() {
+ vec3 color = vec3(0.0f, 0.0f, 0.0f);
+ int i_2 = 0;
+ vec2 uv = vec2(0.0f, 0.0f);
+ vec2 x_717 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_717;
+ i_2 = 0;
+ QuicksortObject x_721 = obj;
+ int tint_symbol_39[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_40 = QuicksortObject(tint_symbol_39);
+ obj = tint_symbol_40;
+ obj = x_721;
+ if (true) {
+ QuicksortObject x_722 = obj;
+ int tint_symbol_41[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_42 = QuicksortObject(tint_symbol_41);
+ obj = tint_symbol_42;
+ obj = x_722;
+ vec2 x_431 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
+ int x_158 = i_2;
+ vec2 x_723 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_723;
+ vec3 x_725 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_725;
+ vec2 x_432 = vec2(x_431.y, x_431.y);
+ QuicksortObject x_726 = obj;
+ int tint_symbol_43[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_44 = QuicksortObject(tint_symbol_43);
+ obj = tint_symbol_44;
+ obj = x_726;
+ }
+ QuicksortObject x_756 = obj;
+ int tint_symbol_45[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_46 = QuicksortObject(tint_symbol_45);
+ obj = tint_symbol_46;
+ obj = x_756;
+ vec2 x_446 = vec2(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).x);
+ int x_757 = i_2;
+ i_2 = 0;
+ i_2 = x_757;
+ quicksort_();
+ QuicksortObject x_758 = obj;
+ int tint_symbol_47[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_48 = QuicksortObject(tint_symbol_47);
+ obj = tint_symbol_48;
+ obj = x_758;
+ vec4 x_184 = tint_symbol;
+ vec2 x_759 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_759;
+ vec2 x_447 = vec2(vec2(0.0f, 0.0f).y, vec2(0.0f, 0.0f).y);
+ vec2 x_760 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_760;
+ vec2 x_185 = vec2(x_184.x, x_184.y);
+ vec3 x_448 = vec3(x_185.y, x_446.y, x_446.y);
+ QuicksortObject x_761 = obj;
+ int tint_symbol_49[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_50 = QuicksortObject(tint_symbol_49);
+ obj = tint_symbol_50;
+ obj = x_761;
+ vec2 x_762 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_762;
+ vec2 x_191 = x_188.resolution;
+ QuicksortObject x_763 = obj;
+ int tint_symbol_51[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_52 = QuicksortObject(tint_symbol_51);
+ obj = tint_symbol_52;
+ obj = x_763;
+ vec3 x_449 = vec3(x_184.y, vec3(1.0f, 2.0f, 3.0f).z, x_184.w);
+ vec3 x_764 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_764;
+ vec2 x_192 = (x_185 / x_191);
+ QuicksortObject x_765 = obj;
+ int tint_symbol_53[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_54 = QuicksortObject(tint_symbol_53);
+ obj = tint_symbol_54;
+ obj = x_765;
+ vec2 x_450 = vec2(x_447.x, x_185.y);
+ vec3 x_766 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ vec3 x_767 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_767;
+ color = x_766;
+ uv = x_192;
+ color = vec3(1.0f, 2.0f, 3.0f);
+ vec3 x_768 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_768;
+ vec3 x_451 = vec3(x_185.x, x_185.y, x_446.y);
+ QuicksortObject x_769 = obj;
+ int tint_symbol_55[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_56 = QuicksortObject(tint_symbol_55);
+ obj = tint_symbol_56;
+ obj = x_769;
+ int x_770 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_770;
+ int x_201 = obj.numbers[0u];
+ QuicksortObject x_771 = obj;
+ int tint_symbol_57[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_58 = QuicksortObject(tint_symbol_57);
+ obj = tint_symbol_58;
+ obj = x_771;
+ int x_772 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_772;
+ float x_206 = color.x;
+ float x_773 = color.x;
+ color.x = 0.0f;
+ color.x = x_773;
+ vec2 x_452 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y);
+ int x_774 = i_2;
+ i_2 = 0;
+ i_2 = x_774;
+ QuicksortObject x_775 = obj;
+ int tint_symbol_59[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_60 = QuicksortObject(tint_symbol_59);
+ obj = tint_symbol_60;
+ obj = x_775;
+ vec3 x_453 = vec3(x_451.x, x_450.x, x_450.y);
+ color.x = (x_206 + float(x_201));
+ vec2 x_776 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_776;
+ vec2 x_777 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_777;
+ vec2 x_454 = vec2(x_184.y, x_184.y);
+ float x_210 = uv.x;
+ vec2 x_455 = vec2(x_192.y, x_192.x);
+ float x_778 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_778;
+ QuicksortObject x_779 = obj;
+ int tint_symbol_61[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_62 = QuicksortObject(tint_symbol_61);
+ obj = tint_symbol_62;
+ obj = x_779;
+ if ((x_210 > 0.25f)) {
+ int x_780 = i_2;
+ i_2 = 0;
+ i_2 = x_780;
+ int x_781 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_781;
+ vec3 x_456 = vec3(vec2(0.0f, 0.0f).y, x_448.y, x_448.y);
+ float x_782 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_782;
+ int x_216 = obj.numbers[1];
+ QuicksortObject x_783 = obj;
+ int tint_symbol_63[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_64 = QuicksortObject(tint_symbol_63);
+ obj = tint_symbol_64;
+ obj = x_783;
+ vec2 x_457 = vec2(x_454.x, x_454.x);
+ vec2 x_784 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_784;
+ QuicksortObject x_785 = obj;
+ int tint_symbol_65[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_66 = QuicksortObject(tint_symbol_65);
+ obj = tint_symbol_66;
+ obj = x_785;
+ vec2 x_458 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec2(0.0f, 0.0f).y);
+ int x_786 = i_2;
+ i_2 = 0;
+ i_2 = x_786;
+ float x_219 = color[0];
+ float x_787 = color[0];
+ color[0] = 0.0f;
+ color[0] = x_787;
+ vec3 x_788 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_788;
+ vec3 x_789 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_789;
+ vec3 x_459 = vec3(x_454.y, x_454.y, x_447.y);
+ float x_790 = color[0];
+ color[0] = 0.0f;
+ color[0] = x_790;
+ color.x = (float(x_216) + x_219);
+ int x_791 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_791;
+ }
+ float x_792 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_792;
+ float x_793 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_793;
+ float x_223 = uv.x;
+ float x_794 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_794;
+ vec3 x_460 = vec3(x_453.z, x_453.y, x_453.y);
+ vec2 x_795 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_795;
+ float x_796 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_796;
+ vec2 x_461 = vec2(vec2(0.0f, 0.0f).y, vec2(0.0f, 0.0f).y);
+ float x_797 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_797;
+ if ((x_223 > 0.5f)) {
+ float x_798 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_798;
+ vec2 x_462 = vec2(x_446.x, x_446.x);
+ float x_799 = color.x;
+ color.x = 0.0f;
+ color.x = x_799;
+ float x_800 = color.x;
+ color.x = 0.0f;
+ color.x = x_800;
+ vec3 x_463 = vec3(x_453.x, x_453.z, x_461.y);
+ float x_801 = color.x;
+ color.x = 0.0f;
+ color.x = x_801;
+ int x_230 = obj.numbers[2u];
+ float x_802 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_802;
+ float x_803 = color.x;
+ color.x = 0.0f;
+ color.x = x_803;
+ int x_804 = obj.numbers[2u];
+ obj.numbers[2u] = 0;
+ obj.numbers[2u] = x_804;
+ vec2 x_464 = vec2(x_450.y, x_191.x);
+ float x_805 = color.y;
+ color.y = 0.0f;
+ color.y = x_805;
+ float x_234 = color.y;
+ int x_806 = obj.numbers[2u];
+ obj.numbers[2u] = 0;
+ obj.numbers[2u] = x_806;
+ vec2 x_465 = vec2(x_463.x, x_185.x);
+ float x_807 = color.x;
+ color.x = 0.0f;
+ color.x = x_807;
+ int x_808 = i_2;
+ i_2 = 0;
+ i_2 = x_808;
+ vec2 x_466 = vec2(x_455.y, vec2(0.0f, 0.0f).y);
+ int x_809 = i_2;
+ i_2 = 0;
+ i_2 = x_809;
+ color.y = (float(x_230) + x_234);
+ float x_810 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_810;
+ }
+ int x_811 = i_2;
+ i_2 = 0;
+ i_2 = x_811;
+ vec2 x_467 = vec2(x_191.x, x_191.x);
+ float x_812 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_812;
+ float x_238 = uv[0];
+ vec3 x_813 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_813;
+ float x_814 = color.x;
+ color.x = 0.0f;
+ color.x = x_814;
+ if ((x_238 > 0.75f)) {
+ float x_815 = color.x;
+ color.x = 0.0f;
+ color.x = x_815;
+ int x_245 = obj.numbers[3];
+ float x_816 = color.x;
+ color.x = 0.0f;
+ color.x = x_816;
+ QuicksortObject x_817 = obj;
+ int tint_symbol_67[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_68 = QuicksortObject(tint_symbol_67);
+ obj = tint_symbol_68;
+ obj = x_817;
+ vec3 x_468 = vec3(x_467.x, x_467.x, x_467.x);
+ float x_818 = uv[0];
+ uv[0] = 0.0f;
+ uv[0] = x_818;
+ float x_819 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_819;
+ float x_249 = color.z;
+ vec3 x_820 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_820;
+ vec3 x_469 = vec3(x_467.x, x_191.y, x_467.y);
+ float x_821 = color.z;
+ color.z = 0.0f;
+ color.z = x_821;
+ int x_822 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_822;
+ vec2 x_470 = vec2(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).y);
+ float x_823 = color.z;
+ color.z = 0.0f;
+ color.z = x_823;
+ color.z = (x_249 + float(x_245));
+ vec2 x_824 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_824;
+ vec2 x_471 = vec2(x_470.y, x_470.y);
+ }
+ float x_825 = uv[0];
+ uv[0] = 0.0f;
+ uv[0] = x_825;
+ vec3 x_472 = vec3(x_454.x, x_454.y, x_454.y);
+ int x_254 = obj.numbers[4];
+ float x_826 = uv[0];
+ uv[0] = 0.0f;
+ uv[0] = x_826;
+ vec3 x_827 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_827;
+ vec3 x_473 = vec3(x_446.y, x_453.x, x_453.x);
+ int x_828 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_828;
+ vec2 x_474 = vec2(x_191.x, x_184.z);
+ float x_829 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_829;
+ float x_257 = color.y;
+ float x_830 = color.y;
+ color.y = 0.0f;
+ color.y = x_830;
+ vec2 x_475 = vec2(x_467.x, x_450.x);
+ float x_831 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_831;
+ float x_832 = color.x;
+ color.x = 0.0f;
+ color.x = x_832;
+ vec2 x_476 = vec2(x_451.z, x_460.y);
+ color.y = (x_257 + float(x_254));
+ vec3 x_477 = vec3(vec2(0.0f, 0.0f).x, x_472.x, vec2(0.0f, 0.0f).y);
+ float x_833 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_833;
+ float x_834 = color.x;
+ color.x = 0.0f;
+ color.x = x_834;
+ vec2 x_478 = vec2(x_472.x, x_472.y);
+ float x_835 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_835;
+ float x_261 = uv.y;
+ int x_836 = i_2;
+ i_2 = 0;
+ i_2 = x_836;
+ vec3 x_479 = vec3(vec2(0.0f, 0.0f).y, x_454.y, vec2(0.0f, 0.0f).x);
+ int x_837 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_837;
+ float x_838 = color.y;
+ color.y = 0.0f;
+ color.y = x_838;
+ vec3 x_480 = vec3(x_446.x, x_446.x, vec2(0.0f, 0.0f).y);
+ float x_839 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_839;
+ if ((x_261 > 0.25f)) {
+ vec2 x_481 = vec2(x_447.x, x_480.z);
+ vec3 x_840 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_840;
+ int x_267 = obj.numbers[5u];
+ float x_841 = color.x;
+ color.x = 0.0f;
+ color.x = x_841;
+ int x_842 = i_2;
+ i_2 = 0;
+ i_2 = x_842;
+ int x_843 = i_2;
+ i_2 = 0;
+ i_2 = x_843;
+ float x_270 = color.x;
+ float x_844 = uv[0];
+ uv[0] = 0.0f;
+ uv[0] = x_844;
+ vec3 x_482 = vec3(x_455.x, x_475.y, x_455.y);
+ QuicksortObject x_845 = obj;
+ int tint_symbol_69[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_70 = QuicksortObject(tint_symbol_69);
+ obj = tint_symbol_70;
+ obj = x_845;
+ float x_846 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_846;
+ int x_847 = i_2;
+ i_2 = 0;
+ i_2 = x_847;
+ vec3 x_483 = vec3(x_184.w, x_184.w, x_192.x);
+ float x_848 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_848;
+ color.x = (float(x_267) + x_270);
+ vec3 x_484 = vec3(x_454.y, x_450.x, x_454.y);
+ float x_849 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_849;
+ }
+ float x_850 = color.x;
+ color.x = 0.0f;
+ color.x = x_850;
+ vec3 x_485 = vec3(x_467.x, x_450.y, x_450.x);
+ float x_851 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_851;
+ int x_852 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_852;
+ float x_274 = uv.y;
+ int x_853 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_853;
+ if ((x_274 > 0.5f)) {
+ float x_854 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_854;
+ vec2 x_486 = vec2(x_480.y, x_455.y);
+ float x_855 = color.y;
+ color.y = 0.0f;
+ color.y = x_855;
+ vec2 x_487 = vec2(x_449.z, x_449.y);
+ float x_856 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_856;
+ int x_280 = obj.numbers[6u];
+ float x_857 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_857;
+ int x_858 = i_2;
+ i_2 = 0;
+ i_2 = x_858;
+ int x_859 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_859;
+ vec2 x_488 = vec2(x_473.z, x_473.y);
+ float x_283 = color.y;
+ vec2 x_860 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_860;
+ float x_861 = color.x;
+ color.x = 0.0f;
+ color.x = x_861;
+ vec2 x_489 = vec2(x_475.y, x_475.x);
+ int x_862 = obj.numbers[6u];
+ obj.numbers[6u] = 0;
+ obj.numbers[6u] = x_862;
+ int x_863 = obj.numbers[6u];
+ obj.numbers[6u] = 0;
+ obj.numbers[6u] = x_863;
+ vec2 x_490 = vec2(x_480.z, x_480.z);
+ QuicksortObject x_864 = obj;
+ int tint_symbol_71[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_72 = QuicksortObject(tint_symbol_71);
+ obj = tint_symbol_72;
+ obj = x_864;
+ color.y = (float(x_280) + x_283);
+ float x_865 = color.x;
+ color.x = 0.0f;
+ color.x = x_865;
+ vec2 x_491 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_454.x);
+ float x_866 = color.y;
+ color.y = 0.0f;
+ color.y = x_866;
+ }
+ vec2 x_492 = vec2(x_455.y, x_455.y);
+ float x_867 = color.x;
+ color.x = 0.0f;
+ color.x = x_867;
+ float x_287 = uv.y;
+ QuicksortObject x_868 = obj;
+ int tint_symbol_73[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_74 = QuicksortObject(tint_symbol_73);
+ obj = tint_symbol_74;
+ obj = x_868;
+ vec2 x_493 = vec2(x_475.x, x_475.y);
+ float x_869 = uv[0];
+ uv[0] = 0.0f;
+ uv[0] = x_869;
+ float x_870 = color.y;
+ color.y = 0.0f;
+ color.y = x_870;
+ vec3 x_494 = vec3(x_191.x, x_191.y, x_191.y);
+ int x_871 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_871;
+ if ((x_287 > 0.75f)) {
+ vec3 x_872 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_872;
+ float x_873 = color.x;
+ color.x = 0.0f;
+ color.x = x_873;
+ vec3 x_495 = vec3(x_192.y, x_192.x, x_192.y);
+ vec3 x_874 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_874;
+ int x_293 = obj.numbers[7];
+ float x_875 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_875;
+ vec3 x_496 = vec3(x_475.x, x_467.y, x_467.x);
+ float x_876 = color.y;
+ color.y = 0.0f;
+ color.y = x_876;
+ vec2 x_497 = vec2(x_477.x, x_461.y);
+ int x_877 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_877;
+ float x_878 = color.y;
+ color.y = 0.0f;
+ color.y = x_878;
+ vec3 x_498 = vec3(x_478.x, x_478.y, x_478.x);
+ float x_879 = color.x;
+ color.x = 0.0f;
+ color.x = x_879;
+ float x_296 = color.z;
+ float x_880 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_880;
+ vec2 x_499 = vec2(x_184.x, x_184.y);
+ float x_881 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_881;
+ float x_882 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_882;
+ float x_883 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_883;
+ vec3 x_500 = vec3(x_499.y, x_499.y, x_494.z);
+ float x_884 = color.z;
+ color.z = 0.0f;
+ color.z = x_884;
+ color.z = (float(x_293) + x_296);
+ float x_885 = color.y;
+ color.y = 0.0f;
+ color.y = x_885;
+ vec2 x_501 = vec2(x_453.x, x_453.z);
+ float x_886 = color.x;
+ color.x = 0.0f;
+ color.x = x_886;
+ }
+ int x_887 = i_2;
+ i_2 = 0;
+ i_2 = x_887;
+ vec2 x_502 = vec2(x_451.y, x_192.y);
+ vec2 x_888 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_888;
+ int x_301 = obj.numbers[8];
+ int x_889 = i_2;
+ i_2 = 0;
+ i_2 = x_889;
+ vec2 x_503 = vec2(x_185.x, x_451.z);
+ int x_890 = obj.numbers[8];
+ obj.numbers[8] = 0;
+ obj.numbers[8] = x_890;
+ float x_891 = color.y;
+ color.y = 0.0f;
+ color.y = x_891;
+ vec2 x_504 = vec2(x_453.y, vec2(0.0f, 0.0f).x);
+ float x_892 = color.x;
+ color.x = 0.0f;
+ color.x = x_892;
+ vec3 x_505 = vec3(x_504.x, x_504.y, x_504.x);
+ float x_893 = color.z;
+ color.z = 0.0f;
+ color.z = x_893;
+ float x_304 = color.z;
+ float x_894 = color.x;
+ color.x = 0.0f;
+ color.x = x_894;
+ vec2 x_506 = vec2(x_493.x, x_492.x);
+ int x_895 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_895;
+ float x_896 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_896;
+ vec2 x_507 = vec2(x_461.x, x_447.x);
+ float x_897 = color.y;
+ color.y = 0.0f;
+ color.y = x_897;
+ color.z = (x_304 + float(x_301));
+ vec2 x_898 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_898;
+ float x_899 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_899;
+ vec3 x_508 = vec3(x_461.y, x_461.x, x_506.y);
+ float x_900 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_900;
+ float x_308 = uv.x;
+ float x_901 = color.y;
+ color.y = 0.0f;
+ color.y = x_901;
+ vec3 x_509 = vec3(x_503.y, x_503.x, x_448.z);
+ float x_902 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_902;
+ float x_310 = uv.y;
+ float x_903 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_903;
+ float x_904 = color.z;
+ color.z = 0.0f;
+ color.z = x_904;
+ vec3 x_510 = vec3(vec3(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
+ float x_905 = color.z;
+ color.z = 0.0f;
+ color.z = x_905;
+ int x_906 = i_2;
+ i_2 = 0;
+ i_2 = x_906;
+ vec2 x_511 = vec2(x_485.z, x_485.y);
+ vec3 x_907 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_907;
+ float x_908 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_908;
+ vec3 x_512 = vec3(x_455.y, x_455.y, x_455.y);
+ int x_909 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_909;
+ if ((abs((x_308 - x_310)) < 0.25f)) {
+ float x_910 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_910;
+ QuicksortObject x_911 = obj;
+ int tint_symbol_75[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_76 = QuicksortObject(tint_symbol_75);
+ obj = tint_symbol_76;
+ obj = x_911;
+ vec3 x_513 = vec3(x_505.z, x_505.x, x_448.x);
+ int x_912 = obj.numbers[8];
+ obj.numbers[8] = 0;
+ obj.numbers[8] = x_912;
+ int x_317 = obj.numbers[9u];
+ vec3 x_514 = vec3(x_474.y, x_474.y, x_474.y);
+ float x_913 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_913;
+ float x_320 = color.x;
+ float x_914 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_914;
+ vec2 x_515 = vec2(x_502.x, x_502.y);
+ float x_915 = color.x;
+ color.x = 0.0f;
+ color.x = x_915;
+ vec3 x_916 = color;
+ color = vec3(0.0f, 0.0f, 0.0f);
+ color = x_916;
+ vec2 x_516 = vec2(x_452.x, x_452.x);
+ vec2 x_917 = uv;
+ uv = vec2(0.0f, 0.0f);
+ uv = x_917;
+ float x_918 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_918;
+ vec3 x_517 = vec3(vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).x, vec2(0.0f, 0.0f).y);
+ color.x = (float(x_317) + x_320);
+ float x_919 = color.x;
+ color.x = 0.0f;
+ color.x = x_919;
+ vec3 x_518 = vec3(x_480.y, x_508.x, x_480.x);
+ float x_920 = color.x;
+ color.x = 0.0f;
+ color.x = x_920;
+ }
+ float x_921 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_921;
+ vec3 x_325 = color;
+ float x_922 = uv[0];
+ uv[0] = 0.0f;
+ uv[0] = x_922;
+ vec3 x_519 = vec3(x_447.x, x_446.x, x_446.y);
+ vec3 x_326 = normalize(x_325);
+ float x_923 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_923;
+ QuicksortObject x_924 = obj;
+ int tint_symbol_77[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_78 = QuicksortObject(tint_symbol_77);
+ obj = tint_symbol_78;
+ obj = x_924;
+ QuicksortObject x_925 = obj;
+ int tint_symbol_79[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_80 = QuicksortObject(tint_symbol_79);
+ obj = tint_symbol_80;
+ obj = x_925;
+ float x_926 = color.y;
+ color.y = 0.0f;
+ color.y = x_926;
+ vec2 x_520 = vec2(x_506.y, x_519.y);
+ float x_927 = color.y;
+ color.y = 0.0f;
+ color.y = x_927;
+ vec4 x_330 = vec4(x_326.x, x_326.y, x_326.z, 1.0f);
+ float x_928 = uv.y;
+ uv.y = 0.0f;
+ uv.y = x_928;
+ vec3 x_521 = vec3(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y, x_520.y);
+ float x_929 = uv.x;
+ uv.x = 0.0f;
+ uv.x = x_929;
+ x_GLF_color = x_330;
+ QuicksortObject x_930 = obj;
+ int tint_symbol_81[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ QuicksortObject tint_symbol_82 = QuicksortObject(tint_symbol_81);
+ obj = tint_symbol_82;
+ obj = x_930;
+ vec3 x_522 = vec3(x_330.w, x_330.y, x_493.x);
+ float x_931 = color.x;
+ color.x = 0.0f;
+ color.x = x_931;
+ return;
+}
+
+struct main_out {
+ vec4 x_GLF_color_1;
+};
+struct tint_symbol_3 {
+ vec4 gl_FragCoord_param;
+};
+struct tint_symbol_4 {
+ vec4 x_GLF_color_1;
+};
+
+main_out tint_symbol_1_inner(vec4 gl_FragCoord_param) {
+ tint_symbol = gl_FragCoord_param;
+ main_1();
+ main_out tint_symbol_83 = main_out(x_GLF_color);
+ return tint_symbol_83;
+}
+
+tint_symbol_4 tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ main_out inner_result = tint_symbol_1_inner(tint_symbol_2.gl_FragCoord_param);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
+ return wrapper_result;
+}
+out vec4 x_GLF_color_1;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.gl_FragCoord_param = gl_FragCoord;
+ tint_symbol_4 outputs;
+ outputs = tint_symbol_1(inputs);
+ x_GLF_color_1 = outputs.x_GLF_color_1;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:1553: 'gl_FragCoord_param' : identifiers starting with "gl_" are reserved
+ERROR: 0:1553: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/757.wgsl.expected.glsl b/test/bug/tint/757.wgsl.expected.glsl
new file mode 100644
index 0000000..d877f23
--- /dev/null
+++ b/test/bug/tint/757.wgsl.expected.glsl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+uniform highp sampler2DArray myTexture;
+
+layout (binding = 3) buffer Result_1 {
+ float values[];
+} result;
+
+struct tint_symbol_2 {
+ uvec3 GlobalInvocationID;
+};
+
+void tint_symbol_inner(uvec3 GlobalInvocationID) {
+ uint flatIndex = ((((2u * 2u) * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x);
+ flatIndex = (flatIndex * 1u);
+ vec4 texel = texelFetch(myTexture, ivec4(ivec3(ivec2(GlobalInvocationID.xy), 0), 0));
+ {
+ for(uint i = 0u; (i < 1u); i = (i + 1u)) {
+ result.values[(flatIndex + i)] = texel.r;
+ }
+ }
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:18: 'texelFetch' : no matching overloaded function found
+ERROR: 0:18: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:18: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/764.wgsl.expected.glsl b/test/bug/tint/764.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/764.wgsl.expected.glsl
diff --git a/test/bug/tint/782.wgsl.expected.glsl b/test/bug/tint/782.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/782.wgsl.expected.glsl
diff --git a/test/bug/tint/804.spv.expected.glsl b/test/bug/tint/804.spv.expected.glsl
new file mode 100644
index 0000000..2bc83db
--- /dev/null
+++ b/test/bug/tint/804.spv.expected.glsl
@@ -0,0 +1,3 @@
+SKIP: FAILED
+
+error: extended arithmetic is not finalized for WGSL: https://github.com/gpuweb/gpuweb/issues/1565: %712 = OpISubBorrow %710 %107 %470
diff --git a/test/bug/tint/807.spv.expected.glsl b/test/bug/tint/807.spv.expected.glsl
new file mode 100644
index 0000000..f624e54
--- /dev/null
+++ b/test/bug/tint/807.spv.expected.glsl
@@ -0,0 +1,3 @@
+SKIP: FAILED
+
+error: undef pointer is not valid: %845 = OpUndef %434
diff --git a/test/bug/tint/824.wgsl.expected.glsl b/test/bug/tint/824.wgsl.expected.glsl
new file mode 100644
index 0000000..c8179b1
--- /dev/null
+++ b/test/bug/tint/824.wgsl.expected.glsl
@@ -0,0 +1,46 @@
+#version 310 es
+precision mediump float;
+
+struct Output {
+ vec4 Position;
+ vec4 color;
+};
+struct tint_symbol_3 {
+ uint VertexIndex;
+ uint InstanceIndex;
+};
+struct tint_symbol_4 {
+ vec4 color;
+ vec4 Position;
+};
+
+Output tint_symbol_inner(uint VertexIndex, uint InstanceIndex) {
+ vec2 zv[4] = vec2[4](vec2(0.200000003f, 0.200000003f), vec2(0.300000012f, 0.300000012f), vec2(-0.100000001f, -0.100000001f), vec2(1.100000024f, 1.100000024f));
+ float z = zv[InstanceIndex].x;
+ Output tint_symbol_1 = Output(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ tint_symbol_1.Position = vec4(0.5f, 0.5f, z, 1.0f);
+ vec4 colors[4] = vec4[4](vec4(1.0f, 0.0f, 0.0f, 1.0f), vec4(0.0f, 1.0f, 0.0f, 1.0f), vec4(0.0f, 0.0f, 1.0f, 1.0f), vec4(1.0f, 1.0f, 1.0f, 1.0f));
+ tint_symbol_1.color = colors[InstanceIndex];
+ return tint_symbol_1;
+}
+
+tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
+ Output inner_result = tint_symbol_inner(tint_symbol_2.VertexIndex, tint_symbol_2.InstanceIndex);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.Position = inner_result.Position;
+ wrapper_result.color = inner_result.color;
+ return wrapper_result;
+}
+out vec4 color;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.VertexIndex = uint(gl_VertexID);
+ inputs.InstanceIndex = uint(gl_InstanceID);
+ tint_symbol_4 outputs;
+ outputs = tint_symbol(inputs);
+ color = outputs.color;
+ gl_Position = outputs.Position;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/bug/tint/825.wgsl.expected.glsl b/test/bug/tint/825.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/825.wgsl.expected.glsl
diff --git a/test/bug/tint/827.wgsl.expected.glsl b/test/bug/tint/827.wgsl.expected.glsl
new file mode 100644
index 0000000..9c634b7
--- /dev/null
+++ b/test/bug/tint/827.wgsl.expected.glsl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+const uint width = 128u;
+uniform highp sampler2D tex;
+layout (binding = 1) buffer Result_1 {
+ float values[];
+} result;
+
+struct tint_symbol_2 {
+ uvec3 GlobalInvocationId;
+};
+
+void tint_symbol_inner(uvec3 GlobalInvocationId) {
+ result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = texelFetch(tex, ivec3(int(GlobalInvocationId.x), int(GlobalInvocationId.y), 0)).x;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.GlobalInvocationId);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.GlobalInvocationId = gl_GlobalInvocationID;
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:16: 'texelFetch' : no matching overloaded function found
+ERROR: 0:16: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/870.spvasm.expected.glsl b/test/bug/tint/870.spvasm.expected.glsl
new file mode 100644
index 0000000..631204b
--- /dev/null
+++ b/test/bug/tint/870.spvasm.expected.glsl
@@ -0,0 +1,35 @@
+#version 310 es
+precision mediump float;
+
+struct sspp962805860buildInformationS {
+ vec4 footprint;
+ vec4 offset;
+ int essence;
+ int orientation[6];
+};
+
+layout (binding = 2) buffer x_B4_BuildInformation_1 {
+ sspp962805860buildInformationS passthru;
+} sspp962805860buildInformation;
+
+void main_1() {
+ int orientation[6] = int[6](0, 0, 0, 0, 0, 0);
+ int x_23[6] = sspp962805860buildInformation.passthru.orientation;
+ orientation[0] = x_23[0u];
+ orientation[1] = x_23[1u];
+ orientation[2] = x_23[2u];
+ orientation[3] = x_23[3u];
+ orientation[4] = x_23[4u];
+ orientation[5] = x_23[5u];
+ return;
+}
+
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/913.wgsl.expected.glsl b/test/bug/tint/913.wgsl.expected.glsl
new file mode 100644
index 0000000..0830bdf
--- /dev/null
+++ b/test/bug/tint/913.wgsl.expected.glsl
@@ -0,0 +1,116 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+uniform highp sampler2D src;
+uniform highp sampler2D dst;
+layout (binding = 2) buffer OutputBuf_1 {
+ uint result[];
+} tint_symbol;
+layout (binding = 3) uniform Uniforms_1 {
+ uint dstTextureFlipY;
+ uint channelCount;
+ uvec2 srcCopyOrigin;
+ uvec2 dstCopyOrigin;
+ uvec2 copySize;
+} uniforms;
+
+bool aboutEqual(float value, float expect) {
+ return (abs((value - expect)) < 0.001f);
+}
+
+struct tint_symbol_3 {
+ uvec3 GlobalInvocationID;
+};
+
+void tint_symbol_1_inner(uvec3 GlobalInvocationID) {
+ ivec2 srcSize = textureSize(src);
+ ivec2 dstSize = textureSize(dst);
+ uvec2 dstTexCoord = uvec2(GlobalInvocationID.xy);
+ vec4 nonCoveredColor = vec4(0.0f, 1.0f, 0.0f, 1.0f);
+ bool success = true;
+ bool tint_tmp_2 = (dstTexCoord.x < uniforms.dstCopyOrigin.x);
+ if (!tint_tmp_2) {
+ tint_tmp_2 = (dstTexCoord.y < uniforms.dstCopyOrigin.y);
+ }
+ bool tint_tmp_1 = (tint_tmp_2);
+ if (!tint_tmp_1) {
+ tint_tmp_1 = (dstTexCoord.x >= (uniforms.dstCopyOrigin.x + uniforms.copySize.x));
+ }
+ bool tint_tmp = (tint_tmp_1);
+ if (!tint_tmp) {
+ tint_tmp = (dstTexCoord.y >= (uniforms.dstCopyOrigin.y + uniforms.copySize.y));
+ }
+ if ((tint_tmp)) {
+ bool tint_tmp_3 = success;
+ if (tint_tmp_3) {
+ tint_tmp_3 = all((texelFetch(dst, ivec3(ivec2(dstTexCoord), 0)) == nonCoveredColor));
+ }
+ success = (tint_tmp_3);
+ } else {
+ uvec2 srcTexCoord = ((dstTexCoord - uniforms.dstCopyOrigin) + uniforms.srcCopyOrigin);
+ if ((uniforms.dstTextureFlipY == 1u)) {
+ srcTexCoord.y = ((uint(srcSize.y) - srcTexCoord.y) - 1u);
+ }
+ vec4 srcColor = texelFetch(src, ivec3(ivec2(srcTexCoord), 0));
+ vec4 dstColor = texelFetch(dst, ivec3(ivec2(dstTexCoord), 0));
+ if ((uniforms.channelCount == 2u)) {
+ bool tint_tmp_5 = success;
+ if (tint_tmp_5) {
+ tint_tmp_5 = aboutEqual(dstColor.r, srcColor.r);
+ }
+ bool tint_tmp_4 = (tint_tmp_5);
+ if (tint_tmp_4) {
+ tint_tmp_4 = aboutEqual(dstColor.g, srcColor.g);
+ }
+ success = (tint_tmp_4);
+ } else {
+ bool tint_tmp_9 = success;
+ if (tint_tmp_9) {
+ tint_tmp_9 = aboutEqual(dstColor.r, srcColor.r);
+ }
+ bool tint_tmp_8 = (tint_tmp_9);
+ if (tint_tmp_8) {
+ tint_tmp_8 = aboutEqual(dstColor.g, srcColor.g);
+ }
+ bool tint_tmp_7 = (tint_tmp_8);
+ if (tint_tmp_7) {
+ tint_tmp_7 = aboutEqual(dstColor.b, srcColor.b);
+ }
+ bool tint_tmp_6 = (tint_tmp_7);
+ if (tint_tmp_6) {
+ tint_tmp_6 = aboutEqual(dstColor.a, srcColor.a);
+ }
+ success = (tint_tmp_6);
+ }
+ }
+ uint outputIndex = ((GlobalInvocationID.y * uint(dstSize.x)) + GlobalInvocationID.x);
+ if (success) {
+ tint_symbol.result[outputIndex] = 1u;
+ } else {
+ tint_symbol.result[outputIndex] = 0u;
+ }
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ tint_symbol_1_inner(tint_symbol_2.GlobalInvocationID);
+ return;
+}
+void main() {
+ tint_symbol_3 inputs;
+ inputs.GlobalInvocationID = gl_GlobalInvocationID;
+ tint_symbol_1(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:27: 'textureSize' : no matching overloaded function found
+ERROR: 0:27: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:27: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/914.wgsl.expected.glsl b/test/bug/tint/914.wgsl.expected.glsl
new file mode 100644
index 0000000..026388e
--- /dev/null
+++ b/test/bug/tint/914.wgsl.expected.glsl
@@ -0,0 +1,177 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer Matrix_1 {
+ float numbers[];
+} firstMatrix;
+layout (binding = 1) buffer Matrix_2 {
+ float numbers[];
+} secondMatrix;
+layout (binding = 2) buffer Matrix_3 {
+ float numbers[];
+} resultMatrix;
+layout (binding = 3) uniform Uniforms_1 {
+ uint dimAOuter;
+ uint dimInner;
+ uint dimBOuter;
+} uniforms;
+
+float mm_readA(uint row, uint col) {
+ bool tint_tmp = (row < uniforms.dimAOuter);
+ if (tint_tmp) {
+ tint_tmp = (col < uniforms.dimInner);
+ }
+ if ((tint_tmp)) {
+ float result = firstMatrix.numbers[((row * uniforms.dimInner) + col)];
+ return result;
+ }
+ return 0.0f;
+}
+
+float mm_readB(uint row, uint col) {
+ bool tint_tmp_1 = (row < uniforms.dimInner);
+ if (tint_tmp_1) {
+ tint_tmp_1 = (col < uniforms.dimBOuter);
+ }
+ if ((tint_tmp_1)) {
+ float result = secondMatrix.numbers[((row * uniforms.dimBOuter) + col)];
+ return result;
+ }
+ return 0.0f;
+}
+
+void mm_write(uint row, uint col, float value) {
+ bool tint_tmp_2 = (row < uniforms.dimAOuter);
+ if (tint_tmp_2) {
+ tint_tmp_2 = (col < uniforms.dimBOuter);
+ }
+ if ((tint_tmp_2)) {
+ uint index = (col + (row * uniforms.dimBOuter));
+ resultMatrix.numbers[index] = value;
+ }
+}
+
+const uint RowPerThread = 4u;
+const uint ColPerThread = 4u;
+const uint TileAOuter = 64u;
+const uint TileBOuter = 64u;
+const uint TileInner = 64u;
+groupshared float mm_Asub[64][64];
+groupshared float mm_Bsub[64][64];
+
+struct tint_symbol_2 {
+ uvec3 local_id;
+ uint local_invocation_index;
+ uvec3 global_id;
+};
+
+void tint_symbol_inner(uvec3 local_id, uvec3 global_id, uint local_invocation_index) {
+ {
+ for(uint idx = local_invocation_index; (idx < 4096u); idx = (idx + 256u)) {
+ uint i = (idx / 64u);
+ uint i_1 = (idx % 64u);
+ mm_Asub[i][i_1] = 0.0f;
+ mm_Bsub[i][i_1] = 0.0f;
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ uint tileRow = (local_id.y * RowPerThread);
+ uint tileCol = (local_id.x * ColPerThread);
+ uint globalRow = (global_id.y * RowPerThread);
+ uint globalCol = (global_id.x * ColPerThread);
+ uint numTiles = (((uniforms.dimInner - 1u) / TileInner) + 1u);
+ float acc[16] = float[16](0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ float ACached = 0.0f;
+ float BCached[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ {
+ for(uint index = 0u; (index < (RowPerThread * ColPerThread)); index = (index + 1u)) {
+ acc[index] = 0.0f;
+ }
+ }
+ uint ColPerThreadA = (TileInner / 16u);
+ uint tileColA = (local_id.x * ColPerThreadA);
+ uint RowPerThreadB = (TileInner / 16u);
+ uint tileRowB = (local_id.y * RowPerThreadB);
+ {
+ for(uint t = 0u; (t < numTiles); t = (t + 1u)) {
+ {
+ for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
+ {
+ for(uint innerCol = 0u; (innerCol < ColPerThreadA); innerCol = (innerCol + 1u)) {
+ uint inputRow = (tileRow + innerRow);
+ uint inputCol = (tileColA + innerCol);
+ mm_Asub[inputRow][inputCol] = mm_readA((globalRow + innerRow), ((t * TileInner) + inputCol));
+ }
+ }
+ }
+ }
+ {
+ for(uint innerRow = 0u; (innerRow < RowPerThreadB); innerRow = (innerRow + 1u)) {
+ {
+ for(uint innerCol = 0u; (innerCol < ColPerThread); innerCol = (innerCol + 1u)) {
+ uint inputRow = (tileRowB + innerRow);
+ uint inputCol = (tileCol + innerCol);
+ mm_Bsub[innerCol][inputCol] = mm_readB(((t * TileInner) + inputRow), (globalCol + innerCol));
+ }
+ }
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ {
+ for(uint k = 0u; (k < TileInner); k = (k + 1u)) {
+ {
+ for(uint inner = 0u; (inner < ColPerThread); inner = (inner + 1u)) {
+ BCached[inner] = mm_Bsub[k][(tileCol + inner)];
+ }
+ }
+ {
+ for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
+ ACached = mm_Asub[(tileRow + innerRow)][k];
+ {
+ for(uint innerCol = 0u; (innerCol < ColPerThread); innerCol = (innerCol + 1u)) {
+ uint index = ((innerRow * ColPerThread) + innerCol);
+ acc[index] = (acc[index] + (ACached * BCached[innerCol]));
+ }
+ }
+ }
+ }
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ }
+ }
+ {
+ for(uint innerRow = 0u; (innerRow < RowPerThread); innerRow = (innerRow + 1u)) {
+ {
+ for(uint innerCol = 0u; (innerCol < ColPerThread); innerCol = (innerCol + 1u)) {
+ uint index = ((innerRow * ColPerThread) + innerCol);
+ mm_write((globalRow + innerRow), (globalCol + innerCol), acc[index]);
+ }
+ }
+ }
+ }
+}
+
+layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_id, tint_symbol_1.global_id, tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_id = gl_LocalInvocationID;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ inputs.global_id = gl_GlobalInvocationID;
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:60: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/922.wgsl.expected.glsl b/test/bug/tint/922.wgsl.expected.glsl
new file mode 100644
index 0000000..0fffaa7
--- /dev/null
+++ b/test/bug/tint/922.wgsl.expected.glsl
@@ -0,0 +1,182 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct Mat4x4_ {
+ vec4 mx;
+ vec4 my;
+ vec4 mz;
+ vec4 mw;
+};
+struct Mat4x3_ {
+ vec4 mx;
+ vec4 my;
+ vec4 mz;
+};
+struct Mat4x2_ {
+ vec4 mx;
+ vec4 my;
+};
+struct VertexOutput {
+ vec4 v_Color;
+ vec2 v_TexCoord;
+ vec4 member;
+};
+
+layout (binding = 0) uniform ub_SceneParams_1 {
+ Mat4x4_ u_Projection;
+} global;
+layout (binding = 1) uniform ub_MaterialParams_1 {
+ Mat4x2_ u_TexMtx[1];
+ vec4 u_Misc0_;
+} global1;
+layout (binding = 2) uniform ub_PacketParams_1 {
+ Mat4x3_ u_PosMtx[32];
+} global2;
+vec3 a_Position1 = vec3(0.0f, 0.0f, 0.0f);
+vec2 a_UV1 = vec2(0.0f, 0.0f);
+vec4 a_Color1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+vec3 a_Normal1 = vec3(0.0f, 0.0f, 0.0f);
+float a_PosMtxIdx1 = 0.0f;
+vec4 v_Color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+vec2 v_TexCoord = vec2(0.0f, 0.0f);
+vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+vec4 Mul(Mat4x4_ m8, vec4 v) {
+ Mat4x4_ m9 = Mat4x4_(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ vec4 v1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ m9 = m8;
+ v1 = v;
+ return vec4(dot(m9.mx, v1), dot(m9.my, v1), dot(m9.mz, v1), dot(m9.mw, v1));
+}
+
+vec2 Mul2(Mat4x2_ m12, vec4 v4) {
+ Mat4x2_ m13 = Mat4x2_(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ vec4 v5 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ m13 = m12;
+ v5 = v4;
+ return vec2(dot(m13.mx, v5), dot(m13.my, v5));
+}
+
+Mat4x4_ x_Mat4x4_(float n) {
+ float n1 = 0.0f;
+ Mat4x4_ o = Mat4x4_(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ n1 = n;
+ o.mx = vec4(n1, 0.0f, 0.0f, 0.0f);
+ o.my = vec4(0.0f, n1, 0.0f, 0.0f);
+ o.mz = vec4(0.0f, 0.0f, n1, 0.0f);
+ o.mw = vec4(0.0f, 0.0f, 0.0f, n1);
+ return o;
+}
+
+Mat4x4_ x_Mat4x4_1(Mat4x3_ m16) {
+ Mat4x3_ m17 = Mat4x3_(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ Mat4x4_ o1 = Mat4x4_(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ m17 = m16;
+ Mat4x4_ x_e4 = x_Mat4x4_(1.0f);
+ o1 = x_e4;
+ o1.mx = m17.mx;
+ o1.my = m17.my;
+ o1.mz = m17.mz;
+ return o1;
+}
+
+void main1() {
+ Mat4x3_ t_PosMtx = Mat4x3_(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ vec2 t_TexSpaceCoord = vec2(0.0f, 0.0f);
+ Mat4x3_ x_e18 = global2.u_PosMtx[int(a_PosMtxIdx1)];
+ t_PosMtx = x_e18;
+ Mat4x4_ x_e24 = x_Mat4x4_1(t_PosMtx);
+ vec3 x_e25 = a_Position1;
+ Mat4x4_ x_e30 = x_Mat4x4_1(t_PosMtx);
+ vec4 x_e34 = Mul(x_e30, vec4(a_Position1, 1.0f));
+ Mat4x4_ x_e35 = global.u_Projection;
+ Mat4x4_ x_e38 = x_Mat4x4_1(t_PosMtx);
+ vec3 x_e39 = a_Position1;
+ Mat4x4_ x_e44 = x_Mat4x4_1(t_PosMtx);
+ vec4 x_e48 = Mul(x_e44, vec4(a_Position1, 1.0f));
+ vec4 x_e49 = Mul(x_e35, x_e48);
+ tint_symbol = x_e49;
+ v_Color = a_Color1;
+ vec4 x_e52 = global1.u_Misc0_;
+ if ((x_e52.x == 2.0f)) {
+ {
+ vec3 x_e59 = a_Normal1;
+ Mat4x2_ x_e64 = global1.u_TexMtx[0];
+ vec2 x_e68 = Mul2(x_e64, vec4(a_Normal1, 1.0f));
+ v_TexCoord = x_e68.xy;
+ return;
+ }
+ } else {
+ {
+ vec2 x_e73 = a_UV1;
+ Mat4x2_ x_e79 = global1.u_TexMtx[0];
+ vec2 x_e84 = Mul2(x_e79, vec4(a_UV1, 1.0f, 1.0f));
+ v_TexCoord = x_e84.xy;
+ return;
+ }
+ }
+}
+
+struct tint_symbol_3 {
+ vec3 a_Position;
+ vec2 a_UV;
+ vec4 a_Color;
+ vec3 a_Normal;
+ float a_PosMtxIdx;
+};
+struct tint_symbol_4 {
+ vec4 v_Color;
+ vec2 v_TexCoord;
+ vec4 member;
+};
+
+VertexOutput tint_symbol_1_inner(vec3 a_Position, vec2 a_UV, vec4 a_Color, vec3 a_Normal, float a_PosMtxIdx) {
+ a_Position1 = a_Position;
+ a_UV1 = a_UV;
+ a_Color1 = a_Color;
+ a_Normal1 = a_Normal;
+ a_PosMtxIdx1 = a_PosMtxIdx;
+ main1();
+ VertexOutput tint_symbol_5 = VertexOutput(v_Color, v_TexCoord, tint_symbol);
+ return tint_symbol_5;
+}
+
+tint_symbol_4 tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ VertexOutput inner_result = tint_symbol_1_inner(tint_symbol_2.a_Position, tint_symbol_2.a_UV, tint_symbol_2.a_Color, tint_symbol_2.a_Normal, tint_symbol_2.a_PosMtxIdx);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.v_Color = inner_result.v_Color;
+ wrapper_result.v_TexCoord = inner_result.v_TexCoord;
+ wrapper_result.member = inner_result.member;
+ return wrapper_result;
+}
+in vec3 a_Position;
+in vec2 a_UV;
+in vec4 a_Color;
+in vec3 a_Normal;
+in float a_PosMtxIdx;
+out vec4 v_Color;
+out vec2 v_TexCoord;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.a_Position = a_Position;
+ inputs.a_UV = a_UV;
+ inputs.a_Color = a_Color;
+ inputs.a_Normal = a_Normal;
+ inputs.a_PosMtxIdx = a_PosMtxIdx;
+ tint_symbol_4 outputs;
+ outputs = tint_symbol_1(inputs);
+ v_Color = outputs.v_Color;
+ v_TexCoord = outputs.v_TexCoord;
+ gl_Position = outputs.member;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:157: 'v_Color' : redefinition
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/926.wgsl.expected.glsl b/test/bug/tint/926.wgsl.expected.glsl
new file mode 100644
index 0000000..e1fb812
--- /dev/null
+++ b/test/bug/tint/926.wgsl.expected.glsl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 5) buffer DrawIndirectArgs_1 {
+ uint vertexCount;
+} drawOut;
+uint cubeVerts = 0u;
+
+struct tint_symbol_1 {
+ uvec3 global_id;
+};
+
+void computeMain_inner(uvec3 global_id) {
+ uint atomic_result = 0u;
+ InterlockedAdd(drawOut.vertexCount, cubeVerts, atomic_result);
+ uint firstVertex = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void computeMain(tint_symbol_1 tint_symbol) {
+ computeMain_inner(tint_symbol.global_id);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.global_id = gl_GlobalInvocationID;
+ computeMain(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:16: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:16: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/942.wgsl.expected.glsl b/test/bug/tint/942.wgsl.expected.glsl
new file mode 100644
index 0000000..5947312
--- /dev/null
+++ b/test/bug/tint/942.wgsl.expected.glsl
@@ -0,0 +1,104 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+
+layout (binding = 1) uniform Params_1 {
+ uint filterDim;
+ uint blockDim;
+} params;
+uniform highp sampler2D inputTex;
+uniform highp writeonly image2D outputTex;
+
+layout (binding = 3) uniform Flip_1 {
+ uint value;
+} flip;
+groupshared vec3 tile[4][256];
+
+struct tint_symbol_2 {
+ uvec3 LocalInvocationID;
+ uint local_invocation_index;
+ uvec3 WorkGroupID;
+};
+
+void tint_symbol_inner(uvec3 WorkGroupID, uvec3 LocalInvocationID, uint local_invocation_index) {
+ {
+ for(uint idx = local_invocation_index; (idx < 1024u); idx = (idx + 64u)) {
+ uint i_1 = (idx / 256u);
+ uint i_2 = (idx % 256u);
+ tile[i_1][i_2] = vec3(0.0f, 0.0f, 0.0f);
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ uint filterOffset = ((params.filterDim - 1u) / 2u);
+ ivec2 dims = textureSize(inputTex0);
+ ivec2 baseIndex = (ivec2(((WorkGroupID.xy * uvec2(params.blockDim, 4u)) + (LocalInvocationID.xy * uvec2(4u, 1u)))) - ivec2(int(filterOffset), 0));
+ {
+ for(uint r = 0u; (r < 4u); r = (r + 1u)) {
+ {
+ for(uint c = 0u; (c < 4u); c = (c + 1u)) {
+ ivec2 loadIndex = (baseIndex + ivec2(int(c), int(r)));
+ if ((flip.value != 0u)) {
+ loadIndex = loadIndex.yx;
+ }
+ tile[r][((4u * LocalInvocationID.x) + c)] = textureLod(inputTex, ((vec2(loadIndex) + vec2(0.25f, 0.25f)) / vec2(dims)), 0.0f).rgb;
+ }
+ }
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ {
+ for(uint r = 0u; (r < 4u); r = (r + 1u)) {
+ {
+ for(uint c = 0u; (c < 4u); c = (c + 1u)) {
+ ivec2 writeIndex = (baseIndex + ivec2(int(c), int(r)));
+ if ((flip.value != 0u)) {
+ writeIndex = writeIndex.yx;
+ }
+ uint center = ((4u * LocalInvocationID.x) + c);
+ bool tint_tmp_1 = (center >= filterOffset);
+ if (tint_tmp_1) {
+ tint_tmp_1 = (center < (256u - filterOffset));
+ }
+ bool tint_tmp = (tint_tmp_1);
+ if (tint_tmp) {
+ tint_tmp = all((writeIndex < dims));
+ }
+ if ((tint_tmp)) {
+ vec3 acc = vec3(0.0f, 0.0f, 0.0f);
+ {
+ for(uint f = 0u; (f < params.filterDim); f = (f + 1u)) {
+ uint i = ((center + f) - filterOffset);
+ acc = (acc + ((1.0f / float(params.filterDim)) * tile[r][i]));
+ }
+ }
+ imageStore(outputTex, writeIndex, vec4(acc, 1.0f)).x;
+ }
+ }
+ }
+ }
+ }
+}
+
+layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.WorkGroupID, tint_symbol_1.LocalInvocationID, tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.LocalInvocationID = gl_LocalInvocationID;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ inputs.WorkGroupID = gl_WorkGroupID;
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:16: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/943.spvasm.expected.glsl b/test/bug/tint/943.spvasm.expected.glsl
new file mode 100644
index 0000000..da855d3
--- /dev/null
+++ b/test/bug/tint/943.spvasm.expected.glsl
@@ -0,0 +1,402 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+int dimAOuter_1 = 0;
+layout (binding = 3) uniform Uniforms_1 {
+ float NAN;
+ ivec3 aShape;
+ ivec3 bShape;
+ ivec3 outShape;
+ ivec2 outShapeStrides;
+} x_48;
+int dimInner_1 = 0;
+int dimBOuter_1 = 0;
+layout (binding = 0) buffer ssbOut_1 {
+ float result[];
+} x_54;
+uvec3 tint_symbol = uvec3(0u, 0u, 0u);
+uvec3 tint_symbol_1 = uvec3(0u, 0u, 0u);
+groupshared float mm_Asub[64][64];
+groupshared float mm_Bsub[64][1];
+layout (binding = 1) buffer ssbA_1 {
+ float A[];
+} x_165;
+int batch = 0;
+layout (binding = 2) buffer ssbB_1 {
+ float B[];
+} x_185;
+
+bool coordsInBounds_vi2_vi2_(inout ivec2 coord, inout ivec2 shape) {
+ bool x_87 = false;
+ bool x_88_phi = false;
+ ivec2 x_76 = coord;
+ bool x_81 = all((x_76 >= ivec2(0, 0)));
+ x_88_phi = x_81;
+ if (x_81) {
+ ivec2 x_84 = coord;
+ ivec2 x_85 = shape;
+ x_87 = all((x_84 < x_85));
+ x_88_phi = x_87;
+ }
+ return x_88_phi;
+}
+
+float mm_readA_i1_i1_(inout int row, inout int col) {
+ int batchASize = 0;
+ ivec2 param_10 = ivec2(0, 0);
+ ivec2 param_11 = ivec2(0, 0);
+ float x_430 = 0.0f;
+ int x_417 = x_48.aShape.y;
+ int x_419 = x_48.aShape.z;
+ batchASize = (x_417 * x_419);
+ int x_421 = row;
+ int x_422 = col;
+ int x_424 = dimAOuter_1;
+ int x_425 = dimInner_1;
+ param_10 = ivec2(x_421, x_422);
+ param_11 = ivec2(x_424, x_425);
+ bool x_429 = coordsInBounds_vi2_vi2_(param_10, param_11);
+ if (x_429) {
+ int x_438 = batch;
+ int x_439 = batchASize;
+ int x_441 = row;
+ int x_442 = dimInner_1;
+ int x_445 = col;
+ float x_448 = x_165.A[(((x_438 * x_439) + (x_441 * x_442)) + x_445)];
+ x_430 = x_448;
+ } else {
+ x_430 = 0.0f;
+ }
+ return x_430;
+}
+
+float mm_readB_i1_i1_(inout int row_1, inout int col_1) {
+ int batchBSize = 0;
+ ivec2 param_12 = ivec2(0, 0);
+ ivec2 param_13 = ivec2(0, 0);
+ float x_468 = 0.0f;
+ int x_455 = x_48.bShape.y;
+ int x_457 = x_48.bShape.z;
+ batchBSize = (x_455 * x_457);
+ int x_459 = row_1;
+ int x_460 = col_1;
+ int x_462 = dimInner_1;
+ int x_463 = dimBOuter_1;
+ param_12 = ivec2(x_459, x_460);
+ param_13 = ivec2(x_462, x_463);
+ bool x_467 = coordsInBounds_vi2_vi2_(param_12, param_13);
+ if (x_467) {
+ int x_475 = batch;
+ int x_476 = batchBSize;
+ int x_478 = row_1;
+ int x_479 = dimBOuter_1;
+ int x_482 = col_1;
+ float x_485 = x_185.B[(((x_475 * x_476) + (x_478 * x_479)) + x_482)];
+ x_468 = x_485;
+ } else {
+ x_468 = 0.0f;
+ }
+ return x_468;
+}
+
+int getOutputFlatIndex_vi3_(inout ivec3 coords) {
+ ivec3 x_99 = coords;
+ int x_105 = x_48.outShapeStrides.x;
+ int x_107 = x_48.outShapeStrides.y;
+ return int(dot(vec3(x_99), vec3(ivec3(x_105, x_107, 1))));
+}
+
+void setOutput_i1_f1_(inout int flatIndex, inout float value) {
+ int x_95 = flatIndex;
+ float x_96 = value;
+ x_54.result[x_95] = x_96;
+ return;
+}
+
+void setOutput_i1_i1_i1_f1_(inout int d0, inout int d1, inout int d2, inout float value_1) {
+ int flatIndex_1 = 0;
+ ivec3 param = ivec3(0, 0, 0);
+ int param_1 = 0;
+ float param_2 = 0.0f;
+ int x_115 = d0;
+ int x_116 = d1;
+ int x_117 = d2;
+ param = ivec3(x_115, x_116, x_117);
+ int x_120 = getOutputFlatIndex_vi3_(param);
+ flatIndex_1 = x_120;
+ param_1 = flatIndex_1;
+ float x_124 = value_1;
+ param_2 = x_124;
+ setOutput_i1_f1_(param_1, param_2);
+ return;
+}
+
+void mm_write_i1_i1_f1_(inout int row_2, inout int col_2, inout float value_2) {
+ ivec3 outCoord = ivec3(0, 0, 0);
+ int param_14 = 0;
+ int param_15 = 0;
+ int param_16 = 0;
+ float param_17 = 0.0f;
+ int x_491 = batch;
+ int x_492 = row_2;
+ int x_493 = col_2;
+ outCoord = ivec3(x_491, x_492, x_493);
+ param_14 = batch;
+ int x_498 = row_2;
+ param_15 = x_498;
+ int x_500 = col_2;
+ param_16 = x_500;
+ float x_502 = value_2;
+ param_17 = x_502;
+ setOutput_i1_i1_i1_f1_(param_14, param_15, param_16, param_17);
+ return;
+}
+
+void mm_matMul_i1_i1_i1_(inout int dimAOuter, inout int dimInner, inout int dimBOuter) {
+ int tileRow = 0;
+ int tileCol = 0;
+ int globalRow = 0;
+ int globalCol = 0;
+ int numTiles = 0;
+ int innerRow = 0;
+ int innerCol = 0;
+ float acc[1][1] = float[1][1](float[1](0.0f));
+ int tileColA = 0;
+ int tileRowB = 0;
+ int t = 0;
+ int innerRow_1 = 0;
+ int innerCol_1 = 0;
+ int inputRow = 0;
+ int inputCol = 0;
+ int param_3 = 0;
+ int param_4 = 0;
+ int innerRow_2 = 0;
+ int innerCol_2 = 0;
+ int inputRow_1 = 0;
+ int inputCol_1 = 0;
+ int param_5 = 0;
+ int param_6 = 0;
+ int k = 0;
+ int inner = 0;
+ float BCached[1] = float[1](0.0f);
+ int innerRow_3 = 0;
+ float ACached = 0.0f;
+ int innerCol_3 = 0;
+ int innerRow_4 = 0;
+ int innerCol_4 = 0;
+ int param_7 = 0;
+ int param_8 = 0;
+ float param_9 = 0.0f;
+ uint x_132 = tint_symbol.y;
+ tileRow = (int(x_132) * 1);
+ uint x_137 = tint_symbol.x;
+ tileCol = (int(x_137) * 1);
+ uint x_143 = tint_symbol_1.y;
+ globalRow = (int(x_143) * 1);
+ uint x_148 = tint_symbol_1.x;
+ globalCol = (int(x_148) * 1);
+ int x_152 = dimInner;
+ numTiles = (((x_152 - 1) / 64) + 1);
+ innerRow = 0;
+ {
+ for(; (innerRow < 1); innerRow = (innerRow + 1)) {
+ innerCol = 0;
+ {
+ for(; (innerCol < 1); innerCol = (innerCol + 1)) {
+ acc[innerRow][innerCol] = 0.0f;
+ }
+ }
+ }
+ }
+ uint x_187 = tint_symbol.x;
+ tileColA = (int(x_187) * 64);
+ uint x_192 = tint_symbol.y;
+ tileRowB = (int(x_192) * 1);
+ t = 0;
+ {
+ for(; (t < numTiles); t = (t + 1)) {
+ innerRow_1 = 0;
+ {
+ for(; (innerRow_1 < 1); innerRow_1 = (innerRow_1 + 1)) {
+ innerCol_1 = 0;
+ {
+ for(; (innerCol_1 < 64); innerCol_1 = (innerCol_1 + 1)) {
+ inputRow = (tileRow + innerRow_1);
+ inputCol = (tileColA + innerCol_1);
+ int x_233 = inputRow;
+ int x_234 = inputCol;
+ int x_238 = t;
+ int x_240 = inputCol;
+ param_3 = (globalRow + innerRow_1);
+ param_4 = ((x_238 * 64) + x_240);
+ float x_244 = mm_readA_i1_i1_(param_3, param_4);
+ mm_Asub[x_233][x_234] = x_244;
+ }
+ }
+ }
+ }
+ innerRow_2 = 0;
+ {
+ for(; (innerRow_2 < 1); innerRow_2 = (innerRow_2 + 1)) {
+ innerCol_2 = 0;
+ {
+ for(; (innerCol_2 < 1); innerCol_2 = (innerCol_2 + 1)) {
+ inputRow_1 = (tileRowB + innerRow_2);
+ inputCol_1 = (tileCol + innerCol_2);
+ int x_278 = inputRow_1;
+ int x_279 = inputCol_1;
+ int x_284 = globalCol;
+ int x_285 = innerCol_2;
+ param_5 = ((t * 64) + inputRow_1);
+ param_6 = (x_284 + x_285);
+ float x_289 = mm_readB_i1_i1_(param_5, param_6);
+ mm_Bsub[x_278][x_279] = x_289;
+ }
+ }
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ k = 0;
+ {
+ for(; (k < 64); k = (k + 1)) {
+ inner = 0;
+ {
+ for(; (inner < 1); inner = (inner + 1)) {
+ int x_314 = inner;
+ float x_320 = mm_Bsub[k][(tileCol + inner)];
+ BCached[x_314] = x_320;
+ }
+ }
+ innerRow_3 = 0;
+ {
+ for(; (innerRow_3 < 1); innerRow_3 = (innerRow_3 + 1)) {
+ float x_338 = mm_Asub[(tileRow + innerRow_3)][k];
+ ACached = x_338;
+ innerCol_3 = 0;
+ {
+ for(; (innerCol_3 < 1); innerCol_3 = (innerCol_3 + 1)) {
+ int x_347 = innerRow_3;
+ int x_348 = innerCol_3;
+ float x_349 = ACached;
+ float x_352 = BCached[innerCol_3];
+ float x_355 = acc[x_347][x_348];
+ acc[x_347][x_348] = (x_355 + (x_349 * x_352));
+ }
+ }
+ }
+ }
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ }
+ }
+ innerRow_4 = 0;
+ {
+ for(; (innerRow_4 < 1); innerRow_4 = (innerRow_4 + 1)) {
+ innerCol_4 = 0;
+ while (true) {
+ bool x_393 = false;
+ bool x_394_phi = false;
+ if ((innerCol_4 < 1)) {
+ } else {
+ break;
+ }
+ int x_382 = globalCol;
+ int x_383 = innerCol_4;
+ int x_385 = dimBOuter;
+ bool x_386 = ((x_382 + x_383) < x_385);
+ x_394_phi = x_386;
+ if (x_386) {
+ int x_389 = globalRow;
+ int x_390 = innerRow_4;
+ int x_392 = dimAOuter;
+ x_393 = ((x_389 + x_390) < x_392);
+ x_394_phi = x_393;
+ }
+ if (x_394_phi) {
+ int x_400 = globalCol;
+ int x_401 = innerCol_4;
+ int x_403 = innerRow_4;
+ int x_404 = innerCol_4;
+ param_7 = (globalRow + innerRow_4);
+ param_8 = (x_400 + x_401);
+ float x_409 = acc[x_403][x_404];
+ param_9 = x_409;
+ mm_write_i1_i1_f1_(param_7, param_8, param_9);
+ }
+ {
+ innerCol_4 = (innerCol_4 + 1);
+ }
+ }
+ }
+ }
+ return;
+}
+
+void main_1() {
+ int param_18 = 0;
+ int param_19 = 0;
+ int param_20 = 0;
+ int x_67 = x_48.aShape.y;
+ dimAOuter_1 = x_67;
+ int x_71 = x_48.aShape.z;
+ dimInner_1 = x_71;
+ int x_75 = x_48.bShape.z;
+ dimBOuter_1 = x_75;
+ uint x_505 = tint_symbol_1.z;
+ batch = int(x_505);
+ param_18 = dimAOuter_1;
+ param_19 = dimInner_1;
+ param_20 = dimBOuter_1;
+ mm_matMul_i1_i1_i1_(param_18, param_19, param_20);
+ return;
+}
+
+struct tint_symbol_4 {
+ uvec3 gl_LocalInvocationID_param;
+ uint local_invocation_index;
+ uvec3 gl_GlobalInvocationID_param;
+};
+
+void tint_symbol_2_inner(uvec3 gl_LocalInvocationID_param, uvec3 gl_GlobalInvocationID_param, uint local_invocation_index) {
+ {
+ uint i_1 = local_invocation_index;
+ uint i_2 = (local_invocation_index % 1u);
+ mm_Bsub[i_1][i_2] = 0.0f;
+ }
+ {
+ for(uint idx = local_invocation_index; (idx < 4096u); idx = (idx + 64u)) {
+ uint i = (idx / 64u);
+ uint i_1 = (idx % 64u);
+ mm_Asub[i][i_1] = 0.0f;
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+ tint_symbol = gl_LocalInvocationID_param;
+ tint_symbol_1 = gl_GlobalInvocationID_param;
+ main_1();
+}
+
+layout(local_size_x = 1, local_size_y = 64, local_size_z = 1) in;
+void tint_symbol_2(tint_symbol_4 tint_symbol_3) {
+ tint_symbol_2_inner(tint_symbol_3.gl_LocalInvocationID_param, tint_symbol_3.gl_GlobalInvocationID_param, tint_symbol_3.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_4 inputs;
+ inputs.gl_LocalInvocationID_param = gl_LocalInvocationID;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ inputs.gl_GlobalInvocationID_param = gl_GlobalInvocationID;
+ tint_symbol_2(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:20: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/948.wgsl.expected.glsl b/test/bug/tint/948.wgsl.expected.glsl
new file mode 100644
index 0000000..a34da83
--- /dev/null
+++ b/test/bug/tint/948.wgsl.expected.glsl
@@ -0,0 +1,227 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 9) uniform LeftOver_1 {
+ float time;
+ uint padding;
+ mat4 worldViewProjection;
+ vec2 outputSize;
+ vec2 stageSize;
+ vec2 spriteMapSize;
+ float stageScale;
+ float spriteCount;
+ vec3 colorMul;
+} x_20;
+uniform highp sampler2D frameMapTexture;
+
+vec2 tUV = vec2(0.0f, 0.0f);
+uniform highp sampler2D tileMapsTexture0;
+
+uniform highp sampler2D tileMapsTexture1;
+uniform highp sampler2D animationMapTexture;
+
+float mt = 0.0f;
+uniform highp sampler2D spriteSheetTexture;
+
+vec4 glFragColor = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+vec2 tileID_1 = vec2(0.0f, 0.0f);
+vec2 levelUnits = vec2(0.0f, 0.0f);
+vec2 stageUnits_1 = vec2(0.0f, 0.0f);
+vec3 vPosition = vec3(0.0f, 0.0f, 0.0f);
+vec2 vUV = vec2(0.0f, 0.0f);
+
+mat4 getFrameData_f1_(inout float frameID) {
+ float fX = 0.0f;
+ float x_15 = frameID;
+ float x_25 = x_20.spriteCount;
+ fX = (x_15 / x_25);
+ vec4 x_40 = texture(frameMapTexture, vec2(fX, 0.0f), 0.0f);
+ vec4 x_47 = texture(frameMapTexture, vec2(fX, 0.25f), 0.0f);
+ vec4 x_54 = texture(frameMapTexture, vec2(fX, 0.5f), 0.0f);
+ return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(vec4(0.0f, 0.0f, 0.0f, 0.0f).x, vec4(0.0f, 0.0f, 0.0f, 0.0f).y, vec4(0.0f, 0.0f, 0.0f, 0.0f).z, vec4(0.0f, 0.0f, 0.0f, 0.0f).w));
+}
+
+void main_1() {
+ vec4 color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec2 tileUV = vec2(0.0f, 0.0f);
+ vec2 tileID = vec2(0.0f, 0.0f);
+ vec2 sheetUnits = vec2(0.0f, 0.0f);
+ float spriteUnits = 0.0f;
+ vec2 stageUnits = vec2(0.0f, 0.0f);
+ int i = 0;
+ float frameID_1 = 0.0f;
+ vec4 animationData = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ float f = 0.0f;
+ mat4 frameData = mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ float param = 0.0f;
+ vec2 frameSize = vec2(0.0f, 0.0f);
+ vec2 offset_1 = vec2(0.0f, 0.0f);
+ vec2 ratio = vec2(0.0f, 0.0f);
+ vec4 nc = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ float alpha = 0.0f;
+ vec3 mixed = vec3(0.0f, 0.0f, 0.0f);
+ color = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ tileUV = frac(tUV);
+ float x_91 = tileUV.y;
+ tileUV.y = (1.0f - x_91);
+ tileID = floor(tUV);
+ vec2 x_101 = x_20.spriteMapSize;
+ sheetUnits = (vec2(1.0f, 1.0f) / x_101);
+ float x_106 = x_20.spriteCount;
+ spriteUnits = (1.0f / x_106);
+ vec2 x_111 = x_20.stageSize;
+ stageUnits = (vec2(1.0f, 1.0f) / x_111);
+ i = 0;
+ {
+ for(; (i < 2); i = (i + 1)) {
+ switch(i) {
+ case 1: {
+ vec2 x_150 = tileID;
+ vec2 x_154 = x_20.stageSize;
+ vec4 x_156 = texture(tileMapsTexture1, ((x_150 + vec2(0.5f, 0.5f)) / x_154), 0.0f);
+ frameID_1 = x_156.x;
+ break;
+ }
+ case 0: {
+ vec2 x_136 = tileID;
+ vec2 x_140 = x_20.stageSize;
+ vec4 x_142 = texture(tileMapsTexture0, ((x_136 + vec2(0.5f, 0.5f)) / x_140), 0.0f);
+ frameID_1 = x_142.x;
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ float x_166 = frameID_1;
+ float x_169 = x_20.spriteCount;
+ vec4 x_172 = texture(animationMapTexture, vec2(((x_166 + 0.5f) / x_169), 0.0f), 0.0f);
+ animationData = x_172;
+ float x_174 = animationData.y;
+ if ((x_174 > 0.0f)) {
+ float x_181 = x_20.time;
+ float x_184 = animationData.z;
+ mt = ((x_181 * x_184) % 1.0f);
+ f = 0.0f;
+ {
+ for(; (f < 8.0f); f = (f + 1.0f)) {
+ float x_197 = animationData.y;
+ if ((x_197 > mt)) {
+ float x_203 = animationData.x;
+ frameID_1 = x_203;
+ break;
+ }
+ float x_208 = frameID_1;
+ float x_211 = x_20.spriteCount;
+ vec4 x_217 = texture(animationMapTexture, vec2(((x_208 + 0.5f) / x_211), (0.125f * f)), 0.0f);
+ animationData = x_217;
+ }
+ }
+ }
+ param = (frameID_1 + 0.5f);
+ mat4 x_225 = getFrameData_f1_(param);
+ frameData = x_225;
+ vec4 x_228 = frameData[0];
+ vec2 x_231 = x_20.spriteMapSize;
+ frameSize = (vec2(x_228.w, x_228.z) / x_231);
+ vec4 x_235 = frameData[0];
+ offset_1 = (vec2(x_235.x, x_235.y) * sheetUnits);
+ vec4 x_241 = frameData[2];
+ vec4 x_244 = frameData[0];
+ ratio = (vec2(x_241.x, x_241.y) / vec2(x_244.w, x_244.z));
+ float x_248 = frameData[2].z;
+ if ((x_248 == 1.0f)) {
+ vec2 x_252 = tileUV;
+ tileUV = vec2(x_252.y, x_252.x);
+ }
+ if ((i == 0)) {
+ vec4 x_268 = texture(spriteSheetTexture, ((tileUV * frameSize) + offset_1));
+ color = x_268;
+ } else {
+ vec4 x_279 = texture(spriteSheetTexture, ((tileUV * frameSize) + offset_1));
+ nc = x_279;
+ float x_283 = color.w;
+ float x_285 = nc.w;
+ alpha = min((x_283 + x_285), 1.0f);
+ vec4 x_290 = color;
+ vec4 x_292 = nc;
+ float x_295 = nc.w;
+ mixed = mix(vec3(x_290.x, x_290.y, x_290.z), vec3(x_292.x, x_292.y, x_292.z), vec3(x_295, x_295, x_295));
+ vec3 x_298 = mixed;
+ color = vec4(x_298.x, x_298.y, x_298.z, alpha);
+ }
+ }
+ }
+ vec3 x_310 = x_20.colorMul;
+ vec4 x_311 = color;
+ vec3 x_313 = (vec3(x_311.x, x_311.y, x_311.z) * x_310);
+ color = vec4(x_313.x, x_313.y, x_313.z, color.w);
+ glFragColor = color;
+ return;
+}
+
+struct main_out {
+ vec4 glFragColor_1;
+};
+struct tint_symbol_2 {
+ vec3 vPosition_param;
+ vec2 vUV_param;
+ vec2 tUV_param;
+ vec2 stageUnits_1_param;
+ vec2 levelUnits_param;
+ vec2 tileID_1_param;
+};
+struct tint_symbol_3 {
+ vec4 glFragColor_1;
+};
+
+main_out tint_symbol_inner(vec2 tUV_param, vec2 tileID_1_param, vec2 levelUnits_param, vec2 stageUnits_1_param, vec3 vPosition_param, vec2 vUV_param) {
+ tUV = tUV_param;
+ tileID_1 = tileID_1_param;
+ levelUnits = levelUnits_param;
+ stageUnits_1 = stageUnits_1_param;
+ vPosition = vPosition_param;
+ vUV = vUV_param;
+ main_1();
+ main_out tint_symbol_4 = main_out(glFragColor);
+ return tint_symbol_4;
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ main_out inner_result = tint_symbol_inner(tint_symbol_1.tUV_param, tint_symbol_1.tileID_1_param, tint_symbol_1.levelUnits_param, tint_symbol_1.stageUnits_1_param, tint_symbol_1.vPosition_param, tint_symbol_1.vUV_param);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.glFragColor_1 = inner_result.glFragColor_1;
+ return wrapper_result;
+}
+in vec3 vPosition_param;
+in vec2 vUV_param;
+in vec2 tUV_param;
+in vec2 stageUnits_1_param;
+in vec2 levelUnits_param;
+in vec2 tileID_1_param;
+out vec4 glFragColor_1;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.vPosition_param = vPosition_param;
+ inputs.vUV_param = vUV_param;
+ inputs.tUV_param = tUV_param;
+ inputs.stageUnits_1_param = stageUnits_1_param;
+ inputs.levelUnits_param = levelUnits_param;
+ inputs.tileID_1_param = tileID_1_param;
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ glFragColor_1 = outputs.glFragColor_1;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:65: 'frac' : no matching overloaded function found
+ERROR: 0:65: 'assign' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:65: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/949.wgsl.expected.glsl b/test/bug/tint/949.wgsl.expected.glsl
new file mode 100644
index 0000000..1c68b7d
--- /dev/null
+++ b/test/bug/tint/949.wgsl.expected.glsl
@@ -0,0 +1,386 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct lightingInfo {
+ vec3 diffuse;
+ vec3 specular;
+};
+
+float u_Float = 0.0f;
+vec3 u_Color = vec3(0.0f, 0.0f, 0.0f);
+uniform highp sampler2D TextureSamplerTexture;
+
+vec2 vMainuv = vec2(0.0f, 0.0f);
+layout (binding = 6) uniform LeftOver_1 {
+ mat4 u_World;
+ mat4 u_ViewProjection;
+ float u_bumpStrength;
+ uint padding;
+ vec3 u_cameraPosition;
+ float u_parallaxScale;
+ float textureInfoName;
+ uint padding_1;
+ vec2 tangentSpaceParameter0;
+} x_269;
+vec4 v_output1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+bool tint_symbol = false;
+vec2 v_uv = vec2(0.0f, 0.0f);
+vec4 v_output2 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+uniform highp sampler2D TextureSampler1Texture;
+
+layout (binding = 5) uniform Light0_1 {
+ vec4 vLightData;
+ vec4 vLightDiffuse;
+ vec4 vLightSpecular;
+ vec3 vLightGround;
+ uint padding_2;
+ vec4 shadowsInfo;
+ vec2 depthValues;
+} light0;
+vec4 glFragColor = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+mat3 cotangent_frame_vf3_vf3_vf2_vf2_(inout vec3 normal_1, inout vec3 p, inout vec2 uv, inout vec2 tangentSpaceParams) {
+ vec3 dp1 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 dp2 = vec3(0.0f, 0.0f, 0.0f);
+ vec2 duv1 = vec2(0.0f, 0.0f);
+ vec2 duv2 = vec2(0.0f, 0.0f);
+ vec3 dp2perp = vec3(0.0f, 0.0f, 0.0f);
+ vec3 dp1perp = vec3(0.0f, 0.0f, 0.0f);
+ vec3 tangent = vec3(0.0f, 0.0f, 0.0f);
+ vec3 bitangent = vec3(0.0f, 0.0f, 0.0f);
+ float invmax = 0.0f;
+ vec3 x_133 = p;
+ dp1 = ddx(x_133);
+ vec3 x_136 = p;
+ dp2 = ddy(x_136);
+ vec2 x_139 = uv;
+ duv1 = ddx(x_139);
+ vec2 x_142 = uv;
+ duv2 = ddy(x_142);
+ vec3 x_145 = dp2;
+ vec3 x_146 = normal_1;
+ dp2perp = cross(x_145, x_146);
+ vec3 x_149 = normal_1;
+ dp1perp = cross(x_149, dp1);
+ vec3 x_153 = dp2perp;
+ float x_155 = duv1.x;
+ vec3 x_157 = dp1perp;
+ float x_159 = duv2.x;
+ tangent = ((x_153 * x_155) + (x_157 * x_159));
+ vec3 x_163 = dp2perp;
+ float x_165 = duv1.y;
+ vec3 x_167 = dp1perp;
+ float x_169 = duv2.y;
+ bitangent = ((x_163 * x_165) + (x_167 * x_169));
+ float x_173 = tangentSpaceParams.x;
+ tangent = (tangent * x_173);
+ float x_177 = tangentSpaceParams.y;
+ bitangent = (bitangent * x_177);
+ invmax = rsqrt(max(dot(tangent, tangent), dot(bitangent, bitangent)));
+ vec3 x_191 = (tangent * invmax);
+ vec3 x_194 = (bitangent * invmax);
+ vec3 x_195 = normal_1;
+ return mat3(vec3(x_191.x, x_191.y, x_191.z), vec3(x_194.x, x_194.y, x_194.z), vec3(x_195.x, x_195.y, x_195.z));
+}
+
+mat3 transposeMat3_mf33_(inout mat3 inMatrix) {
+ vec3 i0 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 i1 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 i2 = vec3(0.0f, 0.0f, 0.0f);
+ mat3 outMatrix = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 x_60 = inMatrix[0];
+ i0 = x_60;
+ vec3 x_64 = inMatrix[1];
+ i1 = x_64;
+ vec3 x_68 = inMatrix[2];
+ i2 = x_68;
+ float x_73 = i0.x;
+ float x_75 = i1.x;
+ float x_77 = i2.x;
+ vec3 x_78 = vec3(x_73, x_75, x_77);
+ float x_81 = i0.y;
+ float x_83 = i1.y;
+ float x_85 = i2.y;
+ vec3 x_86 = vec3(x_81, x_83, x_85);
+ float x_89 = i0.z;
+ float x_91 = i1.z;
+ float x_93 = i2.z;
+ vec3 x_94 = vec3(x_89, x_91, x_93);
+ outMatrix = mat3(vec3(x_78.x, x_78.y, x_78.z), vec3(x_86.x, x_86.y, x_86.z), vec3(x_94.x, x_94.y, x_94.z));
+ return outMatrix;
+}
+
+vec3 perturbNormalBase_mf33_vf3_f1_(inout mat3 cotangentFrame, inout vec3 normal, inout float scale) {
+ mat3 x_113 = cotangentFrame;
+ vec3 x_114 = normal;
+ return normalize((x_113 * x_114));
+}
+
+vec3 perturbNormal_mf33_vf3_f1_(inout mat3 cotangentFrame_1, inout vec3 textureSample, inout float scale_1) {
+ mat3 param = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 param_1 = vec3(0.0f, 0.0f, 0.0f);
+ float param_2 = 0.0f;
+ vec3 x_119 = textureSample;
+ mat3 x_125 = cotangentFrame_1;
+ param = x_125;
+ param_1 = ((x_119 * 2.0f) - vec3(1.0f, 1.0f, 1.0f));
+ float x_128 = scale_1;
+ param_2 = x_128;
+ vec3 x_129 = perturbNormalBase_mf33_vf3_f1_(param, param_1, param_2);
+ return x_129;
+}
+
+lightingInfo computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_(inout vec3 viewDirectionW, inout vec3 vNormal, inout vec4 lightData, inout vec3 diffuseColor, inout vec3 specularColor, inout vec3 groundColor, inout float glossiness) {
+ float ndl = 0.0f;
+ lightingInfo result = lightingInfo(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+ vec3 angleW = vec3(0.0f, 0.0f, 0.0f);
+ float specComp = 0.0f;
+ vec3 x_212 = vNormal;
+ vec4 x_213 = lightData;
+ ndl = ((dot(x_212, vec3(x_213.x, x_213.y, x_213.z)) * 0.5f) + 0.5f);
+ vec3 x_220 = groundColor;
+ vec3 x_221 = diffuseColor;
+ float x_222 = ndl;
+ result.diffuse = mix(x_220, x_221, vec3(x_222, x_222, x_222));
+ vec3 x_227 = viewDirectionW;
+ vec4 x_228 = lightData;
+ angleW = normalize((x_227 + vec3(x_228.x, x_228.y, x_228.z)));
+ vec3 x_233 = vNormal;
+ specComp = max(0.0f, dot(x_233, angleW));
+ float x_237 = specComp;
+ float x_238 = glossiness;
+ specComp = pow(x_237, max(1.0f, x_238));
+ float x_241 = specComp;
+ vec3 x_242 = specularColor;
+ result.specular = (x_242 * x_241);
+ return result;
+}
+
+void main_1() {
+ vec4 tempTextureRead = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 rgb = vec3(0.0f, 0.0f, 0.0f);
+ vec3 output5 = vec3(0.0f, 0.0f, 0.0f);
+ vec4 output4 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec2 uvOffset = vec2(0.0f, 0.0f);
+ float normalScale = 0.0f;
+ vec2 TBNUV = vec2(0.0f, 0.0f);
+ vec2 x_299 = vec2(0.0f, 0.0f);
+ mat3 TBN = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 param_3 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 param_4 = vec3(0.0f, 0.0f, 0.0f);
+ vec2 param_5 = vec2(0.0f, 0.0f);
+ vec2 param_6 = vec2(0.0f, 0.0f);
+ mat3 invTBN = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ mat3 param_7 = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ float parallaxLimit = 0.0f;
+ vec2 vOffsetDir = vec2(0.0f, 0.0f);
+ vec2 vMaxOffset = vec2(0.0f, 0.0f);
+ float numSamples = 0.0f;
+ float stepSize = 0.0f;
+ float currRayHeight = 0.0f;
+ vec2 vCurrOffset = vec2(0.0f, 0.0f);
+ vec2 vLastOffset = vec2(0.0f, 0.0f);
+ float lastSampledHeight = 0.0f;
+ float currSampledHeight = 0.0f;
+ int i = 0;
+ float delta1 = 0.0f;
+ float delta2 = 0.0f;
+ float ratio = 0.0f;
+ vec2 parallaxOcclusion_0 = vec2(0.0f, 0.0f);
+ mat3 param_8 = mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 param_9 = vec3(0.0f, 0.0f, 0.0f);
+ float param_10 = 0.0f;
+ vec2 output6 = vec2(0.0f, 0.0f);
+ vec4 tempTextureRead1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 rgb1 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 viewDirectionW_1 = vec3(0.0f, 0.0f, 0.0f);
+ float shadow = 0.0f;
+ float glossiness_1 = 0.0f;
+ vec3 diffuseBase = vec3(0.0f, 0.0f, 0.0f);
+ vec3 specularBase = vec3(0.0f, 0.0f, 0.0f);
+ vec3 normalW = vec3(0.0f, 0.0f, 0.0f);
+ lightingInfo info = lightingInfo(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+ vec3 param_11 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 param_12 = vec3(0.0f, 0.0f, 0.0f);
+ vec4 param_13 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec3 param_14 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 param_15 = vec3(0.0f, 0.0f, 0.0f);
+ vec3 param_16 = vec3(0.0f, 0.0f, 0.0f);
+ float param_17 = 0.0f;
+ vec3 diffuseOutput = vec3(0.0f, 0.0f, 0.0f);
+ vec3 specularOutput = vec3(0.0f, 0.0f, 0.0f);
+ vec3 output3 = vec3(0.0f, 0.0f, 0.0f);
+ u_Float = 100.0f;
+ u_Color = vec3(0.5f, 0.5f, 0.5f);
+ vec4 x_262 = texture(TextureSamplerTexture, vMainuv);
+ tempTextureRead = x_262;
+ vec4 x_264 = tempTextureRead;
+ float x_273 = x_269.textureInfoName;
+ rgb = (vec3(x_264.x, x_264.y, x_264.z) * x_273);
+ vec3 x_279 = x_269.u_cameraPosition;
+ vec4 x_282 = v_output1;
+ output5 = normalize((x_279 - vec3(x_282.x, x_282.y, x_282.z)));
+ output4 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ uvOffset = vec2(0.0f, 0.0f);
+ float x_292 = x_269.u_bumpStrength;
+ normalScale = (1.0f / x_292);
+ if (tint_symbol) {
+ x_299 = v_uv;
+ } else {
+ x_299 = -(v_uv);
+ }
+ TBNUV = x_299;
+ vec4 x_310 = v_output2;
+ param_3 = (vec3(x_310.x, x_310.y, x_310.z) * normalScale);
+ vec4 x_317 = v_output1;
+ param_4 = vec3(x_317.x, x_317.y, x_317.z);
+ param_5 = TBNUV;
+ vec2 x_324 = x_269.tangentSpaceParameter0;
+ param_6 = x_324;
+ mat3 x_325 = cotangent_frame_vf3_vf3_vf2_vf2_(param_3, param_4, param_5, param_6);
+ TBN = x_325;
+ param_7 = TBN;
+ mat3 x_329 = transposeMat3_mf33_(param_7);
+ invTBN = x_329;
+ vec3 x_334 = (invTBN * -(output5));
+ parallaxLimit = (length(vec2(x_334.x, x_334.y)) / (invTBN * -(output5)).z);
+ float x_345 = x_269.u_parallaxScale;
+ parallaxLimit = (parallaxLimit * x_345);
+ vec3 x_352 = (invTBN * -(output5));
+ vOffsetDir = normalize(vec2(x_352.x, x_352.y));
+ vMaxOffset = (vOffsetDir * parallaxLimit);
+ vec4 x_366 = v_output2;
+ numSamples = (15.0f + (dot((invTBN * -(output5)), (invTBN * vec3(x_366.x, x_366.y, x_366.z))) * -11.0f));
+ stepSize = (1.0f / numSamples);
+ currRayHeight = 1.0f;
+ vCurrOffset = vec2(0.0f, 0.0f);
+ vLastOffset = vec2(0.0f, 0.0f);
+ lastSampledHeight = 1.0f;
+ currSampledHeight = 1.0f;
+ i = 0;
+ {
+ for(; (i < 15); i = (i + 1)) {
+ vec4 x_397 = texture(TextureSamplerTexture, (v_uv + vCurrOffset));
+ currSampledHeight = x_397.w;
+ if ((currSampledHeight > currRayHeight)) {
+ delta1 = (currSampledHeight - currRayHeight);
+ delta2 = ((currRayHeight + stepSize) - lastSampledHeight);
+ ratio = (delta1 / (delta1 + delta2));
+ vCurrOffset = ((vLastOffset * ratio) + (vCurrOffset * (1.0f - ratio)));
+ break;
+ } else {
+ currRayHeight = (currRayHeight - stepSize);
+ vLastOffset = vCurrOffset;
+ vCurrOffset = (vCurrOffset + (vMaxOffset * stepSize));
+ lastSampledHeight = currSampledHeight;
+ }
+ }
+ }
+ parallaxOcclusion_0 = vCurrOffset;
+ uvOffset = parallaxOcclusion_0;
+ vec4 x_452 = texture(TextureSamplerTexture, (v_uv + uvOffset));
+ float x_454 = x_269.u_bumpStrength;
+ param_8 = TBN;
+ param_9 = vec3(x_452.x, x_452.y, x_452.z);
+ param_10 = (1.0f / x_454);
+ vec3 x_461 = perturbNormal_mf33_vf3_f1_(param_8, param_9, param_10);
+ output4 = vec4(x_461.x, x_461.y, x_461.z, output4.w);
+ output6 = (v_uv + uvOffset);
+ vec4 x_475 = texture(TextureSampler1Texture, output6);
+ tempTextureRead1 = x_475;
+ vec4 x_477 = tempTextureRead1;
+ rgb1 = vec3(x_477.x, x_477.y, x_477.z);
+ vec3 x_481 = x_269.u_cameraPosition;
+ vec4 x_482 = v_output1;
+ viewDirectionW_1 = normalize((x_481 - vec3(x_482.x, x_482.y, x_482.z)));
+ shadow = 1.0f;
+ glossiness_1 = (1.0f * u_Float);
+ diffuseBase = vec3(0.0f, 0.0f, 0.0f);
+ specularBase = vec3(0.0f, 0.0f, 0.0f);
+ vec4 x_494 = output4;
+ normalW = vec3(x_494.x, x_494.y, x_494.z);
+ param_11 = viewDirectionW_1;
+ param_12 = normalW;
+ vec4 x_507 = light0.vLightData;
+ param_13 = x_507;
+ vec4 x_510 = light0.vLightDiffuse;
+ param_14 = vec3(x_510.x, x_510.y, x_510.z);
+ vec4 x_514 = light0.vLightSpecular;
+ param_15 = vec3(x_514.x, x_514.y, x_514.z);
+ vec3 x_518 = light0.vLightGround;
+ param_16 = x_518;
+ param_17 = glossiness_1;
+ lightingInfo x_521 = computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_(param_11, param_12, param_13, param_14, param_15, param_16, param_17);
+ info = x_521;
+ shadow = 1.0f;
+ vec3 x_523 = info.diffuse;
+ diffuseBase = (diffuseBase + (x_523 * shadow));
+ vec3 x_529 = info.specular;
+ specularBase = (specularBase + (x_529 * shadow));
+ diffuseOutput = (diffuseBase * rgb1);
+ specularOutput = (specularBase * u_Color);
+ output3 = (diffuseOutput + specularOutput);
+ vec3 x_548 = output3;
+ glFragColor = vec4(x_548.x, x_548.y, x_548.z, 1.0f);
+ return;
+}
+
+struct main_out {
+ vec4 glFragColor_1;
+};
+struct tint_symbol_3 {
+ vec4 v_output1_param;
+ vec2 vMainuv_param;
+ vec4 v_output2_param;
+ vec2 v_uv_param;
+ bool gl_FrontFacing_param;
+};
+struct tint_symbol_4 {
+ vec4 glFragColor_1;
+};
+
+main_out tint_symbol_1_inner(vec2 vMainuv_param, vec4 v_output1_param, bool gl_FrontFacing_param, vec2 v_uv_param, vec4 v_output2_param) {
+ vMainuv = vMainuv_param;
+ v_output1 = v_output1_param;
+ tint_symbol = gl_FrontFacing_param;
+ v_uv = v_uv_param;
+ v_output2 = v_output2_param;
+ main_1();
+ main_out tint_symbol_5 = main_out(glFragColor);
+ return tint_symbol_5;
+}
+
+tint_symbol_4 tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ main_out inner_result = tint_symbol_1_inner(tint_symbol_2.vMainuv_param, tint_symbol_2.v_output1_param, tint_symbol_2.gl_FrontFacing_param, tint_symbol_2.v_uv_param, tint_symbol_2.v_output2_param);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.glFragColor_1 = inner_result.glFragColor_1;
+ return wrapper_result;
+}
+in vec4 v_output1_param;
+in vec2 vMainuv_param;
+in vec4 v_output2_param;
+in vec2 v_uv_param;
+out vec4 glFragColor_1;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.v_output1_param = v_output1_param;
+ inputs.vMainuv_param = vMainuv_param;
+ inputs.v_output2_param = v_output2_param;
+ inputs.v_uv_param = v_uv_param;
+ inputs.gl_FrontFacing_param = gl_FrontFacing;
+ tint_symbol_4 outputs;
+ outputs = tint_symbol_1(inputs);
+ glFragColor_1 = outputs.glFragColor_1;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:53: 'ddx' : no matching overloaded function found
+ERROR: 0:53: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:53: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/951.spvasm.expected.glsl b/test/bug/tint/951.spvasm.expected.glsl
new file mode 100644
index 0000000..e37316c
--- /dev/null
+++ b/test/bug/tint/951.spvasm.expected.glsl
@@ -0,0 +1,93 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer ssbOut_1 {
+ float result[];
+} x_16;
+layout (binding = 1) buffer ssbA_1 {
+ float A[];
+} x_20;
+uvec3 tint_symbol = uvec3(0u, 0u, 0u);
+layout (binding = 2) uniform Uniforms_1 {
+ float NAN;
+ int aShape;
+ int outShape;
+ int outShapeStrides;
+ int size;
+} x_24;
+
+float getAAtOutCoords_() {
+ uint x_42 = tint_symbol.x;
+ float x_44 = x_20.A[x_42];
+ return x_44;
+}
+
+float unaryOperation_f1_(inout float a) {
+ float x_47 = a;
+ if ((x_47 < 0.0f)) {
+ return asfloat(0x7f800000u);
+ }
+ float x_55 = a;
+ return log(x_55);
+}
+
+void setOutput_i1_f1_(inout int flatIndex, inout float value) {
+ int x_27 = flatIndex;
+ float x_28 = value;
+ x_16.result[x_27] = x_28;
+ return;
+}
+
+void main_1() {
+ int index = 0;
+ float a_1 = 0.0f;
+ float param = 0.0f;
+ int param_1 = 0;
+ float param_2 = 0.0f;
+ uint x_61 = tint_symbol.x;
+ index = int(x_61);
+ int x_63 = index;
+ int x_70 = x_24.size;
+ if ((x_63 < x_70)) {
+ float x_75 = getAAtOutCoords_();
+ a_1 = x_75;
+ param = a_1;
+ float x_78 = unaryOperation_f1_(param);
+ param_1 = index;
+ param_2 = x_78;
+ setOutput_i1_f1_(param_1, param_2);
+ }
+ return;
+}
+
+struct tint_symbol_3 {
+ uvec3 gl_GlobalInvocationID_param;
+};
+
+void tint_symbol_1_inner(uvec3 gl_GlobalInvocationID_param) {
+ tint_symbol = gl_GlobalInvocationID_param;
+ main_1();
+}
+
+layout(local_size_x = 128, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ tint_symbol_1_inner(tint_symbol_2.gl_GlobalInvocationID_param);
+ return;
+}
+void main() {
+ tint_symbol_3 inputs;
+ inputs.gl_GlobalInvocationID_param = gl_GlobalInvocationID;
+ tint_symbol_1(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:29: 'asfloat' : no matching overloaded function found
+ERROR: 0:29: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/959.wgsl.expected.glsl b/test/bug/tint/959.wgsl.expected.glsl
new file mode 100644
index 0000000..584c796
--- /dev/null
+++ b/test/bug/tint/959.wgsl.expected.glsl
@@ -0,0 +1,93 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ float a;
+} b0;
+layout (binding = 0) buffer S_2 {
+ float a;
+} b1;
+layout (binding = 0) buffer S_3 {
+ float a;
+} b2;
+layout (binding = 0) buffer S_4 {
+ float a;
+} b3;
+layout (binding = 0) buffer S_5 {
+ float a;
+} b4;
+layout (binding = 0) buffer S_6 {
+ float a;
+} b5;
+layout (binding = 0) buffer S_7 {
+ float a;
+} b6;
+layout (binding = 0) buffer S_8 {
+ float a;
+} b7;
+layout (binding = 1) uniform S_9 {
+ float a;
+} b8;
+layout (binding = 1) uniform S_10 {
+ float a;
+} b9;
+layout (binding = 1) uniform S_11 {
+ float a;
+} b10;
+layout (binding = 1) uniform S_12 {
+ float a;
+} b11;
+layout (binding = 1) uniform S_13 {
+ float a;
+} b12;
+layout (binding = 1) uniform S_14 {
+ float a;
+} b13;
+layout (binding = 1) uniform S_15 {
+ float a;
+} b14;
+layout (binding = 1) uniform S_16 {
+ float a;
+} b15;
+uniform highp sampler2D t0;
+uniform highp sampler2D t1;
+uniform highp sampler2D t2;
+uniform highp sampler2D t3;
+uniform highp sampler2D t4;
+uniform highp sampler2D t5;
+uniform highp sampler2D t6;
+uniform highp sampler2D t7;
+uniform highp sampler2D t8;
+uniform highp sampler2D t9;
+uniform highp sampler2D t10;
+uniform highp sampler2D t11;
+uniform highp sampler2D t12;
+uniform highp sampler2D t13;
+uniform highp sampler2D t14;
+uniform highp sampler2D t15;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/bug/tint/977.spvasm.expected.glsl b/test/bug/tint/977.spvasm.expected.glsl
new file mode 100644
index 0000000..b586780
--- /dev/null
+++ b/test/bug/tint/977.spvasm.expected.glsl
@@ -0,0 +1,75 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+uvec3 tint_symbol = uvec3(0u, 0u, 0u);
+layout (binding = 2) buffer ResultMatrix_1 {
+ float numbers[];
+} resultMatrix;
+
+float binaryOperation_f1_f1_(inout float a, inout float b) {
+ float x_26 = 0.0f;
+ float x_13 = b;
+ if ((x_13 == 0.0f)) {
+ return 1.0f;
+ }
+ float x_21 = b;
+ if (!((round((x_21 - (2.0f * floor((x_21 / 2.0f))))) == 1.0f))) {
+ float x_29 = a;
+ float x_31 = b;
+ x_26 = pow(abs(x_29), x_31);
+ } else {
+ float x_34 = a;
+ float x_36 = a;
+ float x_38 = b;
+ x_26 = (sign(x_34) * pow(abs(x_36), x_38));
+ }
+ return x_26;
+}
+
+void main_1() {
+ int index = 0;
+ int a_1 = 0;
+ float param = 0.0f;
+ float param_1 = 0.0f;
+ uint x_54 = tint_symbol.x;
+ index = int(x_54);
+ a_1 = -10;
+ int x_63 = index;
+ param = -4.0f;
+ param_1 = -3.0f;
+ float x_68 = binaryOperation_f1_f1_(param, param_1);
+ resultMatrix.numbers[x_63] = x_68;
+ return;
+}
+
+struct tint_symbol_3 {
+ uvec3 gl_GlobalInvocationID_param;
+};
+
+void tint_symbol_1_inner(uvec3 gl_GlobalInvocationID_param) {
+ tint_symbol = gl_GlobalInvocationID_param;
+ main_1();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol_1(tint_symbol_3 tint_symbol_2) {
+ tint_symbol_1_inner(tint_symbol_2.gl_GlobalInvocationID_param);
+ return;
+}
+void main() {
+ tint_symbol_3 inputs;
+ inputs.gl_GlobalInvocationID_param = gl_GlobalInvocationID;
+ tint_symbol_1(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:50: 'gl_GlobalInvocationID_param' : identifiers starting with "gl_" are reserved
+ERROR: 0:50: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/978.wgsl.expected.glsl b/test/bug/tint/978.wgsl.expected.glsl
new file mode 100644
index 0000000..fad4bfc
--- /dev/null
+++ b/test/bug/tint/978.wgsl.expected.glsl
@@ -0,0 +1,46 @@
+#version 310 es
+precision mediump float;
+
+struct FragmentInput {
+ vec2 vUv;
+};
+struct FragmentOutput {
+ vec4 color;
+};
+
+uniform highp sampler2D depthMap;
+
+
+struct tint_symbol_3 {
+ vec2 vUv;
+};
+struct tint_symbol_4 {
+ vec4 color;
+};
+
+FragmentOutput tint_symbol_inner(FragmentInput fIn) {
+ float tint_symbol_1 = texture(depthMap, fIn.vUv).x;
+ vec3 color = vec3(tint_symbol_1, tint_symbol_1, tint_symbol_1);
+ FragmentOutput fOut = FragmentOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ fOut.color = vec4(color, 1.0f);
+ return fOut;
+}
+
+tint_symbol_4 tint_symbol(tint_symbol_3 tint_symbol_2) {
+ FragmentInput tint_symbol_5 = FragmentInput(tint_symbol_2.vUv);
+ FragmentOutput inner_result = tint_symbol_inner(tint_symbol_5);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.color = inner_result.color;
+ return wrapper_result;
+}
+in vec2 vUv;
+out vec4 color;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.vUv = vUv;
+ tint_symbol_4 outputs;
+ outputs = tint_symbol(inputs);
+ color = outputs.color;
+}
+
+
diff --git a/test/bug/tint/980.wgsl.expected.glsl b/test/bug/tint/980.wgsl.expected.glsl
new file mode 100644
index 0000000..84a3101
--- /dev/null
+++ b/test/bug/tint/980.wgsl.expected.glsl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec3 Bad(uint index, vec3 rd) {
+ vec3 normal = vec3((0.0f).xxx);
+ normal[index] = -(sign(rd[index]));
+ return normalize(normal);
+}
+
+layout (binding = 0) buffer S_1 {
+ vec3 v;
+ uint i;
+} io;
+
+struct tint_symbol_2 {
+ uint idx;
+};
+
+void tint_symbol_inner(uint idx) {
+ io.v = Bad(io.i, io.v);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.idx);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.idx = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'scalar swizzle' : not supported with this profile: es
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/990.wgsl.expected.glsl b/test/bug/tint/990.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/bug/tint/990.wgsl.expected.glsl
diff --git a/test/bug/tint/992.wgsl.expected.glsl b/test/bug/tint/992.wgsl.expected.glsl
new file mode 100644
index 0000000..cf090d0
--- /dev/null
+++ b/test/bug/tint/992.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 frag_main_inner() {
+ float b = 0.0f;
+ vec3 v = vec3((b).xxx);
+ return vec4(v, 1.0f);
+}
+
+tint_symbol frag_main() {
+ vec4 inner_result = frag_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+out vec4 value;
+void main() {
+ tint_symbol outputs;
+ outputs = frag_main();
+ value = outputs.value;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:10: 'scalar swizzle' : not supported with this profile: es
+ERROR: 0:10: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/993.wgsl.expected.glsl b/test/bug/tint/993.wgsl.expected.glsl
new file mode 100644
index 0000000..685ccde
--- /dev/null
+++ b/test/bug/tint/993.wgsl.expected.glsl
@@ -0,0 +1,41 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Constants_1 {
+ uint zero;
+} constants;
+
+layout (binding = 1) buffer Result_1 {
+ uint value;
+} result;
+
+layout (binding = 0) buffer TestData_1 {
+ int data[3];
+} s;
+
+int runTest() {
+ int atomic_result = 0;
+ InterlockedOr(s.data[(0u + uint(constants.zero))], 0, atomic_result);
+ return atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ result.value = uint(runTest());
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:19: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:19: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/bug/tint/998.wgsl.expected.glsl b/test/bug/tint/998.wgsl.expected.glsl
new file mode 100644
index 0000000..7f04e45
--- /dev/null
+++ b/test/bug/tint/998.wgsl.expected.glsl
@@ -0,0 +1,24 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Constants_1 {
+ uint zero;
+} constants;
+
+struct S {
+ uint data[3];
+};
+
+S s = S(uint[3](0u, 0u, 0u));
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ s.data[constants.zero] = 0u;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..034c499
--- /dev/null
+++ b/test/expressions/binary/add/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
+ mat3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..a11adca
--- /dev/null
+++ b/test/expressions/binary/add/scalar-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float r = (1.0f + 2.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..4390508
--- /dev/null
+++ b/test/expressions/binary/add/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 + 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..5e1db81
--- /dev/null
+++ b/test/expressions/binary/add/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u + 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..0655ac2
--- /dev/null
+++ b/test/expressions/binary/add/scalar-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..ea0ed84
--- /dev/null
+++ b/test/expressions/binary/add/scalar-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..0fe0f75
--- /dev/null
+++ b/test/expressions/binary/add/scalar-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e7a27305
--- /dev/null
+++ b/test/expressions/binary/add/vec3-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a + 4.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..7882f3b
--- /dev/null
+++ b/test/expressions/binary/add/vec3-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 r = (a + 4);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..160e65c
--- /dev/null
+++ b/test/expressions/binary/add/vec3-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 r = (a + 4u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..7bd2c34
--- /dev/null
+++ b/test/expressions/binary/add/vec3-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..0b48495
--- /dev/null
+++ b/test/expressions/binary/add/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..bff24ce
--- /dev/null
+++ b/test/expressions/binary/add/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a + b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..ea9a02a
--- /dev/null
+++ b/test/expressions/binary/bit-and/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 & 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..f46f9cd
--- /dev/null
+++ b/test/expressions/binary/bit-and/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u & 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..d03945b
--- /dev/null
+++ b/test/expressions/binary/bit-and/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a & b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..1fc4c7f
--- /dev/null
+++ b/test/expressions/binary/bit-and/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a & b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..519f411
--- /dev/null
+++ b/test/expressions/binary/bit-or/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 | 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..52ae9c0
--- /dev/null
+++ b/test/expressions/binary/bit-or/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u | 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..a16e26d
--- /dev/null
+++ b/test/expressions/binary/bit-or/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a | b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..887fc52
--- /dev/null
+++ b/test/expressions/binary/bit-or/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a | b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..05cd2f1
--- /dev/null
+++ b/test/expressions/binary/bit-xor/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 ^ 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..284867d
--- /dev/null
+++ b/test/expressions/binary/bit-xor/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u ^ 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..8b212ba
--- /dev/null
+++ b/test/expressions/binary/bit-xor/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a ^ b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..59b5058
--- /dev/null
+++ b/test/expressions/binary/bit-xor/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a ^ b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..7db6fa7
--- /dev/null
+++ b/test/expressions/binary/div/scalar-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float r = (1.0f / 2.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..f0efa17
--- /dev/null
+++ b/test/expressions/binary/div/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 / 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..d5d5366
--- /dev/null
+++ b/test/expressions/binary/div/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u / 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..6512ba3
--- /dev/null
+++ b/test/expressions/binary/div/scalar-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a / b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..08c20db
--- /dev/null
+++ b/test/expressions/binary/div/scalar-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a / b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..1ee9726
--- /dev/null
+++ b/test/expressions/binary/div/scalar-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a / b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..28eea80
--- /dev/null
+++ b/test/expressions/binary/div/vec3-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a / 4.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..126af32
--- /dev/null
+++ b/test/expressions/binary/div/vec3-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 r = (a / 4);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..6442c2c
--- /dev/null
+++ b/test/expressions/binary/div/vec3-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 r = (a / 4u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..4c1e415
--- /dev/null
+++ b/test/expressions/binary/div/vec3-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a / b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..18991b5
--- /dev/null
+++ b/test/expressions/binary/div/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a / b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..8b8ddcb
--- /dev/null
+++ b/test/expressions/binary/div/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a / b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..11e2270
--- /dev/null
+++ b/test/expressions/binary/left-shift/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 << 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..8c7242c
--- /dev/null
+++ b/test/expressions/binary/left-shift/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u << 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl b/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..71fa7c5
--- /dev/null
+++ b/test/expressions/binary/left-shift/vector-vector/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ ivec3 r = (a << b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl b/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e7cf54f
--- /dev/null
+++ b/test/expressions/binary/left-shift/vector-vector/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a << b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e0fd1be
--- /dev/null
+++ b/test/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float r = (1.0f % 2.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..5c42789
--- /dev/null
+++ b/test/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 % 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..0015a14
--- /dev/null
+++ b/test/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u % 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..602ca02
--- /dev/null
+++ b/test/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a % b);
+ return;
+}
+void main() {
+ f();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp mediump 3-component vector of float' and a right operand of type ' temp mediump 3-component vector of float' (or there is no acceptable conversion)
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..7fa186b
--- /dev/null
+++ b/test/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a % b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..101e545
--- /dev/null
+++ b/test/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a % b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..36ae96a
--- /dev/null
+++ b/test/expressions/binary/mul/mat2x4-mat4x2/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ mat2x4 a = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
+ mat4x2 b = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
+ mat4 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..79f4870
--- /dev/null
+++ b/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ mat3x2 matrix;
+ vec3 vector;
+} data;
+
+void tint_symbol() {
+ vec2 x = (data.matrix * data.vector);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..924136f
--- /dev/null
+++ b/test/expressions/binary/mul/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
+ mat3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..ba963d9
--- /dev/null
+++ b/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ mat3 matrix;
+ vec3 vector;
+} data;
+
+void tint_symbol() {
+ vec3 x = (data.matrix * data.vector);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..2596862
--- /dev/null
+++ b/test/expressions/binary/mul/mat4x2-mat2x4/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ mat4x2 a = mat4x2(vec2(-1.0f, -2.0f), vec2(-3.0f, -4.0f), vec2(-5.0f, -6.0f), vec2(-7.0f, -8.0f));
+ mat2x4 b = mat2x4(vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(5.0f, 6.0f, 7.0f, 8.0f));
+ mat2 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..1629327
--- /dev/null
+++ b/test/expressions/binary/mul/scalar-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float r = (1.0f * 2.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..917ae68
--- /dev/null
+++ b/test/expressions/binary/mul/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 * 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..22b2997
--- /dev/null
+++ b/test/expressions/binary/mul/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u * 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..9c4bb5b
--- /dev/null
+++ b/test/expressions/binary/mul/scalar-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..b3e5917
--- /dev/null
+++ b/test/expressions/binary/mul/scalar-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..2d2fbf7
--- /dev/null
+++ b/test/expressions/binary/mul/scalar-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..6103644
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ mat3 matrix;
+ vec3 vector;
+} data;
+
+void tint_symbol() {
+ vec3 x = (data.vector * data.matrix);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..2b7ad6d
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ mat4x3 matrix;
+ vec3 vector;
+} data;
+
+void tint_symbol() {
+ vec4 x = (data.vector * data.matrix);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..68aadcc
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a * 4.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..7e33049
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 r = (a * 4);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..9c19c28
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 r = (a * 4u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..fdfb8b4
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..bd7f2b7
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..20ed770
--- /dev/null
+++ b/test/expressions/binary/mul/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a * b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..040542f
--- /dev/null
+++ b/test/expressions/binary/right-shift/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 >> 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..7eeeb71
--- /dev/null
+++ b/test/expressions/binary/right-shift/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u >> 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl b/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..eb2f2ed
--- /dev/null
+++ b/test/expressions/binary/right-shift/vector-vector/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ ivec3 r = (a >> b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl b/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e62bc29
--- /dev/null
+++ b/test/expressions/binary/right-shift/vector-vector/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a >> b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..358b664
--- /dev/null
+++ b/test/expressions/binary/sub/mat3x3-mat3x3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ mat3 a = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ mat3 b = mat3(vec3(-1.0f, -2.0f, -3.0f), vec3(-4.0f, -5.0f, -6.0f), vec3(-7.0f, -8.0f, -9.0f));
+ mat3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..116ab47
--- /dev/null
+++ b/test/expressions/binary/sub/scalar-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float r = (1.0f - 2.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..01bf2df
--- /dev/null
+++ b/test/expressions/binary/sub/scalar-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int r = (1 - 2);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..682d1bf
--- /dev/null
+++ b/test/expressions/binary/sub/scalar-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint r = (1u - 2u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..67f29c6
--- /dev/null
+++ b/test/expressions/binary/sub/scalar-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float a = 4.0f;
+ vec3 b = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..66d19e2
--- /dev/null
+++ b/test/expressions/binary/sub/scalar-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int a = 4;
+ ivec3 b = ivec3(1, 2, 3);
+ ivec3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e23b5c6
--- /dev/null
+++ b/test/expressions/binary/sub/scalar-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint a = 4u;
+ uvec3 b = uvec3(1u, 2u, 3u);
+ uvec3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..b2a2318
--- /dev/null
+++ b/test/expressions/binary/sub/vec3-scalar/f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 r = (a - 4.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..225c732
--- /dev/null
+++ b/test/expressions/binary/sub/vec3-scalar/i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 r = (a - 4);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..23e6c8a
--- /dev/null
+++ b/test/expressions/binary/sub/vec3-scalar/u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 r = (a - 4u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..88ca974
--- /dev/null
+++ b/test/expressions/binary/sub/vec3-vec3/f32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = vec3(4.0f, 5.0f, 6.0f);
+ vec3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..13aca0a8
--- /dev/null
+++ b/test/expressions/binary/sub/vec3-vec3/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = ivec3(4, 5, 6);
+ ivec3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl b/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..5495326
--- /dev/null
+++ b/test/expressions/binary/sub/vec3-vec3/u32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = uvec3(4u, 5u, 6u);
+ uvec3 r = (a - b);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl
new file mode 100644
index 0000000..5d6e5d0
--- /dev/null
+++ b/test/expressions/bitcast/scalar/f32-f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float b = 1.0f;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl
new file mode 100644
index 0000000..33b530b
--- /dev/null
+++ b/test/expressions/bitcast/scalar/f32-i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int b = floatBitsToInt(1.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..f2f8061
--- /dev/null
+++ b/test/expressions/bitcast/scalar/f32-u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint b = floatBitsToUint(1.0f);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl
new file mode 100644
index 0000000..7f8a6e5
--- /dev/null
+++ b/test/expressions/bitcast/scalar/i32-f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float b = intBitsToFloat(1);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl
new file mode 100644
index 0000000..6675356
--- /dev/null
+++ b/test/expressions/bitcast/scalar/i32-i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int b = 1;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..5adfadd
--- /dev/null
+++ b/test/expressions/bitcast/scalar/i32-u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint b = uint(1);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..faefd2d
--- /dev/null
+++ b/test/expressions/bitcast/scalar/i32min-u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint b = uint(-2147483648);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl
new file mode 100644
index 0000000..dd904cd
--- /dev/null
+++ b/test/expressions/bitcast/scalar/u32-f32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ float b = uintBitsToFloat(1u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl
new file mode 100644
index 0000000..6ca4979
--- /dev/null
+++ b/test/expressions/bitcast/scalar/u32-i32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int b = int(1u);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl b/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..fb6eff6
--- /dev/null
+++ b/test/expressions/bitcast/scalar/u32-u32.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uint b = 1u;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl b/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
new file mode 100644
index 0000000..6ace57f
--- /dev/null
+++ b/test/expressions/bitcast/vector/f32-f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ vec3 b = a;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl b/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
new file mode 100644
index 0000000..3ada590
--- /dev/null
+++ b/test/expressions/bitcast/vector/f32-i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ ivec3 b = floatBitsToInt(a);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl b/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..69e07dc
--- /dev/null
+++ b/test/expressions/bitcast/vector/f32-u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ vec3 a = vec3(1.0f, 2.0f, 3.0f);
+ uvec3 b = floatBitsToUint(a);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl b/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
new file mode 100644
index 0000000..9efb6f6
--- /dev/null
+++ b/test/expressions/bitcast/vector/i32-f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ vec3 b = intBitsToFloat(a);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl b/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
new file mode 100644
index 0000000..f951aae
--- /dev/null
+++ b/test/expressions/bitcast/vector/i32-i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ ivec3 b = a;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl b/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..ecc1fd4
--- /dev/null
+++ b/test/expressions/bitcast/vector/i32-u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ ivec3 a = ivec3(1, 2, 3);
+ uvec3 b = uvec3(a);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl b/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
new file mode 100644
index 0000000..77ee422
--- /dev/null
+++ b/test/expressions/bitcast/vector/u32-f32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ vec3 b = uintBitsToFloat(a);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl b/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
new file mode 100644
index 0000000..0e98c52
--- /dev/null
+++ b/test/expressions/bitcast/vector/u32-i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ ivec3 b = ivec3(a);
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl b/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
new file mode 100644
index 0000000..615f2f0
--- /dev/null
+++ b/test/expressions/bitcast/vector/u32-u32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ uvec3 a = uvec3(1u, 2u, 3u);
+ uvec3 b = a;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/expressions/literals/-inf.spvasm.expected.glsl b/test/expressions/literals/-inf.spvasm.expected.glsl
new file mode 100644
index 0000000..6bad4d5
--- /dev/null
+++ b/test/expressions/literals/-inf.spvasm.expected.glsl
@@ -0,0 +1,46 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+ out_var_SV_TARGET = vec4(asfloat(0xff800000u), asfloat(0xff800000u), asfloat(0xff800000u), asfloat(0xff800000u));
+ return;
+}
+
+struct main_out {
+ vec4 out_var_SV_TARGET_1;
+};
+struct tint_symbol_1 {
+ vec4 out_var_SV_TARGET_1;
+};
+
+main_out tint_symbol_inner() {
+ main_1();
+ main_out tint_symbol_2 = main_out(out_var_SV_TARGET);
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ main_out inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
+ return wrapper_result;
+}
+out vec4 out_var_SV_TARGET_1;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ out_var_SV_TARGET_1 = outputs.out_var_SV_TARGET_1;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'asfloat' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/expressions/literals/inf.spvasm.expected.glsl b/test/expressions/literals/inf.spvasm.expected.glsl
new file mode 100644
index 0000000..46738b0
--- /dev/null
+++ b/test/expressions/literals/inf.spvasm.expected.glsl
@@ -0,0 +1,46 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+ out_var_SV_TARGET = vec4(asfloat(0x7f800000u), asfloat(0x7f800000u), asfloat(0x7f800000u), asfloat(0x7f800000u));
+ return;
+}
+
+struct main_out {
+ vec4 out_var_SV_TARGET_1;
+};
+struct tint_symbol_1 {
+ vec4 out_var_SV_TARGET_1;
+};
+
+main_out tint_symbol_inner() {
+ main_1();
+ main_out tint_symbol_2 = main_out(out_var_SV_TARGET);
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ main_out inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
+ return wrapper_result;
+}
+out vec4 out_var_SV_TARGET_1;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ out_var_SV_TARGET_1 = outputs.out_var_SV_TARGET_1;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'asfloat' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/expressions/literals/intmin.wgsl.expected.glsl b/test/expressions/literals/intmin.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/literals/intmin.wgsl.expected.glsl
diff --git a/test/expressions/literals/nan.spvasm.expected.glsl b/test/expressions/literals/nan.spvasm.expected.glsl
new file mode 100644
index 0000000..eff4ad4
--- /dev/null
+++ b/test/expressions/literals/nan.spvasm.expected.glsl
@@ -0,0 +1,46 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec4 out_var_SV_TARGET = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+ out_var_SV_TARGET = vec4(asfloat(0x7fc00000u), asfloat(0x7fc00000u), asfloat(0x7fc00000u), asfloat(0x7fc00000u));
+ return;
+}
+
+struct main_out {
+ vec4 out_var_SV_TARGET_1;
+};
+struct tint_symbol_1 {
+ vec4 out_var_SV_TARGET_1;
+};
+
+main_out tint_symbol_inner() {
+ main_1();
+ main_out tint_symbol_2 = main_out(out_var_SV_TARGET);
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ main_out inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.out_var_SV_TARGET_1 = inner_result.out_var_SV_TARGET_1;
+ return wrapper_result;
+}
+out vec4 out_var_SV_TARGET_1;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ out_var_SV_TARGET_1 = outputs.out_var_SV_TARGET_1;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'asfloat' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/expressions/splat/call/bool.wgsl.expected.glsl b/test/expressions/splat/call/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/call/bool.wgsl.expected.glsl
diff --git a/test/expressions/splat/call/f32.wgsl.expected.glsl b/test/expressions/splat/call/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/call/f32.wgsl.expected.glsl
diff --git a/test/expressions/splat/call/i32.wgsl.expected.glsl b/test/expressions/splat/call/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/call/i32.wgsl.expected.glsl
diff --git a/test/expressions/splat/call/u32.wgsl.expected.glsl b/test/expressions/splat/call/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/call/u32.wgsl.expected.glsl
diff --git a/test/expressions/splat/expression/bool.wgsl.expected.glsl b/test/expressions/splat/expression/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/expression/bool.wgsl.expected.glsl
diff --git a/test/expressions/splat/expression/f32.wgsl.expected.glsl b/test/expressions/splat/expression/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/expression/f32.wgsl.expected.glsl
diff --git a/test/expressions/splat/expression/i32.wgsl.expected.glsl b/test/expressions/splat/expression/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/expression/i32.wgsl.expected.glsl
diff --git a/test/expressions/splat/expression/u32.wgsl.expected.glsl b/test/expressions/splat/expression/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/expression/u32.wgsl.expected.glsl
diff --git a/test/expressions/splat/immediate/bool.wgsl.expected.glsl b/test/expressions/splat/immediate/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/immediate/bool.wgsl.expected.glsl
diff --git a/test/expressions/splat/immediate/f32.wgsl.expected.glsl b/test/expressions/splat/immediate/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/immediate/f32.wgsl.expected.glsl
diff --git a/test/expressions/splat/immediate/i32.wgsl.expected.glsl b/test/expressions/splat/immediate/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/immediate/i32.wgsl.expected.glsl
diff --git a/test/expressions/splat/immediate/u32.wgsl.expected.glsl b/test/expressions/splat/immediate/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/immediate/u32.wgsl.expected.glsl
diff --git a/test/expressions/splat/var/bool.wgsl.expected.glsl b/test/expressions/splat/var/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/var/bool.wgsl.expected.glsl
diff --git a/test/expressions/splat/var/f32.wgsl.expected.glsl b/test/expressions/splat/var/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/var/f32.wgsl.expected.glsl
diff --git a/test/expressions/splat/var/i32.wgsl.expected.glsl b/test/expressions/splat/var/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/var/i32.wgsl.expected.glsl
diff --git a/test/expressions/splat/var/u32.wgsl.expected.glsl b/test/expressions/splat/var/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/var/u32.wgsl.expected.glsl
diff --git a/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl b/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/splat/with_swizzle/f32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/read/vec3/f32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/read/vec3/i32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/read/vec3/u32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl b/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/write/vec3/f32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl b/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/write/vec3/i32.wgsl.expected.glsl
diff --git a/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl b/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/swizzle/write/vec3/u32.wgsl.expected.glsl
diff --git a/test/expressions/unary/complement/complement.wgsl.expected.glsl b/test/expressions/unary/complement/complement.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/unary/complement/complement.wgsl.expected.glsl
diff --git a/test/expressions/unary/negate/negate.wgsl.expected.glsl b/test/expressions/unary/negate/negate.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/unary/negate/negate.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/array/bool.wgsl.expected.glsl b/test/expressions/zero_init/array/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/array/bool.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/array/f32.wgsl.expected.glsl b/test/expressions/zero_init/array/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/array/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/array/i32.wgsl.expected.glsl b/test/expressions/zero_init/array/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/array/i32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/array/struct.wgsl.expected.glsl b/test/expressions/zero_init/array/struct.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/array/struct.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/array/u32.wgsl.expected.glsl b/test/expressions/zero_init/array/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/array/u32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat2x2/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat2x3/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat2x4/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat3x2/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat3x3/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat3x4/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat4x2/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat4x3/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl b/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/mat4x4/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl b/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/scalar/bool.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl b/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/scalar/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl b/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/scalar/i32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl b/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/scalar/u32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/struct/array.wgsl.expected.glsl b/test/expressions/zero_init/struct/array.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/struct/array.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl b/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/struct/scalar.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl b/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec2/bool.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl b/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec2/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl b/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec2/i32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl b/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec2/u32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl b/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec3/bool.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl b/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec3/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl b/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec3/i32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl b/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec3/u32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl b/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec4/bool.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl b/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec4/f32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl b/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec4/i32.wgsl.expected.glsl
diff --git a/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl b/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/expressions/zero_init/vec4/u32.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl b/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl
new file mode 100644
index 0000000..f910844
--- /dev/null
+++ b/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a[];
+} G;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uint tint_symbol_2 = 0u;
+ G.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint l1 = tint_symbol_3;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'GetDimensions' : no such field in structure
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl b/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl
new file mode 100644
index 0000000..b4a6064
--- /dev/null
+++ b/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a[];
+} G;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uint tint_symbol_2 = 0u;
+ G.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint l1 = tint_symbol_3;
+ uint l2 = tint_symbol_3;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'GetDimensions' : no such field in structure
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.glsl b/test/intrinsics/arrayLength/simple.wgsl.expected.glsl
new file mode 100644
index 0000000..f910844
--- /dev/null
+++ b/test/intrinsics/arrayLength/simple.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a[];
+} G;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uint tint_symbol_2 = 0u;
+ G.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint l1 = tint_symbol_3;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'GetDimensions' : no such field in structure
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl b/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl
new file mode 100644
index 0000000..f910844
--- /dev/null
+++ b/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a[];
+} G;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uint tint_symbol_2 = 0u;
+ G.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint l1 = tint_symbol_3;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'GetDimensions' : no such field in structure
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl b/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl
new file mode 100644
index 0000000..f910844
--- /dev/null
+++ b/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a[];
+} G;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ uint tint_symbol_2 = 0u;
+ G.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint l1 = tint_symbol_3;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'GetDimensions' : no such field in structure
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/degrees.spvasm.expected.glsl b/test/intrinsics/degrees.spvasm.expected.glsl
new file mode 100644
index 0000000..29619c6
--- /dev/null
+++ b/test/intrinsics/degrees.spvasm.expected.glsl
@@ -0,0 +1,21 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ float a = 0.0f;
+ float b = 0.0f;
+ a = 42.0f;
+ b = (a * 57.295780182f);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/intrinsics/frexp.wgsl.expected.glsl b/test/intrinsics/frexp.wgsl.expected.glsl
new file mode 100644
index 0000000..a0d5cde
--- /dev/null
+++ b/test/intrinsics/frexp.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result {
+ float sig;
+ int exp;
+};
+frexp_result tint_frexp(float param_0) {
+ float exp;
+ float sig = frexp(param_0, exp);
+ frexp_result result = {sig, int(exp)};
+ return result;
+}
+
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ frexp_result res = tint_frexp(1.230000019f);
+ int tint_symbol_1 = res.exp;
+ float sig = res.sig;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:10: 'frexp' : no matching overloaded function found
+ERROR: 0:10: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.glsl b/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
new file mode 100644
index 0000000..37efd67
--- /dev/null
+++ b/test/intrinsics/gen/abs/002533.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_002533() {
+ vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_002533();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_002533() {
+ vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_002533();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_002533() {
+ vec4 res = abs(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_002533();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.glsl b/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
new file mode 100644
index 0000000..e538ffc
--- /dev/null
+++ b/test/intrinsics/gen/abs/005174.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_005174() {
+ vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_005174();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_005174() {
+ vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_005174();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_005174() {
+ vec3 res = abs(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_005174();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl b/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
new file mode 100644
index 0000000..f5203d9
--- /dev/null
+++ b/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void abs_1ce782() {
+ uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_1ce782();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_1ce782() {
+ uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_1ce782();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_1ce782() {
+ uvec4 res = abs(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_1ce782();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
new file mode 100644
index 0000000..3260ba1
--- /dev/null
+++ b/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_1e9d53() {
+ vec2 res = abs(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_1e9d53();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_1e9d53() {
+ vec2 res = abs(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_1e9d53();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_1e9d53() {
+ vec2 res = abs(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_1e9d53();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl b/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
new file mode 100644
index 0000000..f94f2f5
--- /dev/null
+++ b/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void abs_467cd1() {
+ uint res = abs(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_467cd1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_467cd1() {
+ uint res = abs(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_467cd1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_467cd1() {
+ uint res = abs(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_467cd1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl b/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
new file mode 100644
index 0000000..f7dbd20
--- /dev/null
+++ b/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_4ad288() {
+ int res = abs(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_4ad288();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_4ad288() {
+ int res = abs(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_4ad288();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_4ad288() {
+ int res = abs(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_4ad288();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
new file mode 100644
index 0000000..61111dd
--- /dev/null
+++ b/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_5ad50a() {
+ ivec3 res = abs(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_5ad50a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_5ad50a() {
+ ivec3 res = abs(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_5ad50a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_5ad50a() {
+ ivec3 res = abs(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_5ad50a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl b/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
new file mode 100644
index 0000000..54c757a
--- /dev/null
+++ b/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void abs_7326de() {
+ uvec3 res = abs(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_7326de();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_7326de() {
+ uvec3 res = abs(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_7326de();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_7326de() {
+ uvec3 res = abs(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_7326de();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
new file mode 100644
index 0000000..d3ce049
--- /dev/null
+++ b/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void abs_7f28e6() {
+ uvec2 res = abs(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_7f28e6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_7f28e6() {
+ uvec2 res = abs(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_7f28e6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void abs_7f28e6() {
+ uvec2 res = abs(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_7f28e6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'abs' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
new file mode 100644
index 0000000..0bc8ce5
--- /dev/null
+++ b/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_7faa9e() {
+ ivec2 res = abs(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_7faa9e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_7faa9e() {
+ ivec2 res = abs(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_7faa9e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_7faa9e() {
+ ivec2 res = abs(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_7faa9e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
new file mode 100644
index 0000000..9c4029c
--- /dev/null
+++ b/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_9c80a6() {
+ ivec4 res = abs(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_9c80a6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_9c80a6() {
+ ivec4 res = abs(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_9c80a6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_9c80a6() {
+ ivec4 res = abs(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_9c80a6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl b/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
new file mode 100644
index 0000000..bc63419
--- /dev/null
+++ b/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void abs_b96037() {
+ float res = abs(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ abs_b96037();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_b96037() {
+ float res = abs(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ abs_b96037();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void abs_b96037() {
+ float res = abs(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ abs_b96037();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.glsl b/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
new file mode 100644
index 0000000..4671881
--- /dev/null
+++ b/test/intrinsics/gen/acos/489247.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void acos_489247() {
+ float res = acos(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ acos_489247();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_489247() {
+ float res = acos(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ acos_489247();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_489247() {
+ float res = acos(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ acos_489247();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
new file mode 100644
index 0000000..97e9be5
--- /dev/null
+++ b/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void acos_8e2acf() {
+ vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ acos_8e2acf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_8e2acf() {
+ vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ acos_8e2acf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_8e2acf() {
+ vec4 res = acos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ acos_8e2acf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl b/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
new file mode 100644
index 0000000..22d013a
--- /dev/null
+++ b/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void acos_a610c4() {
+ vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ acos_a610c4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_a610c4() {
+ vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ acos_a610c4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_a610c4() {
+ vec3 res = acos(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ acos_a610c4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl b/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
new file mode 100644
index 0000000..2969cd7
--- /dev/null
+++ b/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void acos_dfc915() {
+ vec2 res = acos(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ acos_dfc915();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_dfc915() {
+ vec2 res = acos(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ acos_dfc915();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void acos_dfc915() {
+ vec2 res = acos(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ acos_dfc915();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl b/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
new file mode 100644
index 0000000..256c243
--- /dev/null
+++ b/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void all_353d6a() {
+ bool res = all(false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ all_353d6a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'all' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void all_353d6a() {
+ bool res = all(false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ all_353d6a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'all' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void all_353d6a() {
+ bool res = all(false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ all_353d6a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'all' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl b/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
new file mode 100644
index 0000000..4274d15
--- /dev/null
+++ b/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void all_986c7b() {
+ bool res = all(bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ all_986c7b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void all_986c7b() {
+ bool res = all(bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ all_986c7b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void all_986c7b() {
+ bool res = all(bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ all_986c7b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl b/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
new file mode 100644
index 0000000..8cd6c93
--- /dev/null
+++ b/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void all_bd2dba() {
+ bool res = all(bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ all_bd2dba();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void all_bd2dba() {
+ bool res = all(bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ all_bd2dba();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void all_bd2dba() {
+ bool res = all(bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ all_bd2dba();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.glsl b/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
new file mode 100644
index 0000000..4ad941d
--- /dev/null
+++ b/test/intrinsics/gen/all/f46790.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void all_f46790() {
+ bool res = all(bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ all_f46790();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void all_f46790() {
+ bool res = all(bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ all_f46790();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void all_f46790() {
+ bool res = all(bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ all_f46790();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.glsl b/test/intrinsics/gen/any/083428.wgsl.expected.glsl
new file mode 100644
index 0000000..1bc4e96
--- /dev/null
+++ b/test/intrinsics/gen/any/083428.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void any_083428() {
+ bool res = any(bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ any_083428();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void any_083428() {
+ bool res = any(bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ any_083428();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void any_083428() {
+ bool res = any(bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ any_083428();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl b/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
new file mode 100644
index 0000000..3ad92f7
--- /dev/null
+++ b/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void any_0e3e58() {
+ bool res = any(bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ any_0e3e58();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void any_0e3e58() {
+ bool res = any(bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ any_0e3e58();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void any_0e3e58() {
+ bool res = any(bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ any_0e3e58();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl b/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
new file mode 100644
index 0000000..31564bc
--- /dev/null
+++ b/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void any_2ab91a() {
+ bool res = any(false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ any_2ab91a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'any' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void any_2ab91a() {
+ bool res = any(false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ any_2ab91a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'any' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void any_2ab91a() {
+ bool res = any(false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ any_2ab91a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'any' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl b/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
new file mode 100644
index 0000000..a90aa60
--- /dev/null
+++ b/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void any_e755c1() {
+ bool res = any(bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ any_e755c1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void any_e755c1() {
+ bool res = any(bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ any_e755c1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void any_e755c1() {
+ bool res = any(bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ any_e755c1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
new file mode 100644
index 0000000..6e00a68
--- /dev/null
+++ b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ int arg_0[];
+} sb_ro;
+
+void arrayLength_1588cd() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ arrayLength_1588cd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ int arg_0[];
+} sb_ro;
+
+void arrayLength_1588cd() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ arrayLength_1588cd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ int arg_0[];
+} sb_ro;
+
+void arrayLength_1588cd() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ arrayLength_1588cd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
new file mode 100644
index 0000000..35a6d6e
--- /dev/null
+++ b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0[];
+} sb_rw;
+
+void arrayLength_61b1c7() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ arrayLength_61b1c7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0[];
+} sb_rw;
+
+void arrayLength_61b1c7() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ arrayLength_61b1c7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0[];
+} sb_rw;
+
+void arrayLength_61b1c7() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ arrayLength_61b1c7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
new file mode 100644
index 0000000..c398958
--- /dev/null
+++ b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ float arg_0[];
+} sb_ro;
+
+void arrayLength_a0f5ca() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ arrayLength_a0f5ca();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ float arg_0[];
+} sb_ro;
+
+void arrayLength_a0f5ca() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ arrayLength_a0f5ca();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ float arg_0[];
+} sb_ro;
+
+void arrayLength_a0f5ca() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ arrayLength_a0f5ca();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
new file mode 100644
index 0000000..fc6d390
--- /dev/null
+++ b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ float arg_0[];
+} sb_rw;
+
+void arrayLength_cdd123() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ arrayLength_cdd123();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ float arg_0[];
+} sb_rw;
+
+void arrayLength_cdd123() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ arrayLength_cdd123();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ float arg_0[];
+} sb_rw;
+
+void arrayLength_cdd123() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ arrayLength_cdd123();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
new file mode 100644
index 0000000..6a17122
--- /dev/null
+++ b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ uint arg_0[];
+} sb_ro;
+
+void arrayLength_cfca0a() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ arrayLength_cfca0a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ uint arg_0[];
+} sb_ro;
+
+void arrayLength_cfca0a() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ arrayLength_cfca0a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 1) buffer SB_RO_1 {
+ uint arg_0[];
+} sb_ro;
+
+void arrayLength_cfca0a() {
+ uint tint_symbol_2 = 0u;
+ sb_ro.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ arrayLength_cfca0a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
new file mode 100644
index 0000000..b84191f
--- /dev/null
+++ b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0[];
+} sb_rw;
+
+void arrayLength_eb510f() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ arrayLength_eb510f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0[];
+} sb_rw;
+
+void arrayLength_eb510f() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ arrayLength_eb510f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0[];
+} sb_rw;
+
+void arrayLength_eb510f() {
+ uint tint_symbol_2 = 0u;
+ sb_rw.GetDimensions(tint_symbol_2);
+ uint tint_symbol_3 = ((tint_symbol_2 - 0u) / 4u);
+ uint res = tint_symbol_3;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ arrayLength_eb510f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'GetDimensions' : no such field in structure
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.glsl b/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
new file mode 100644
index 0000000..cdc9a95
--- /dev/null
+++ b/test/intrinsics/gen/asin/064953.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void asin_064953() {
+ vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ asin_064953();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_064953() {
+ vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ asin_064953();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_064953() {
+ vec4 res = asin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ asin_064953();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
new file mode 100644
index 0000000..4af4bed
--- /dev/null
+++ b/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void asin_7b6a44() {
+ vec2 res = asin(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ asin_7b6a44();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_7b6a44() {
+ vec2 res = asin(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ asin_7b6a44();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_7b6a44() {
+ vec2 res = asin(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ asin_7b6a44();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
new file mode 100644
index 0000000..48fdbcb
--- /dev/null
+++ b/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void asin_8cd9c9() {
+ vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ asin_8cd9c9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_8cd9c9() {
+ vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ asin_8cd9c9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_8cd9c9() {
+ vec3 res = asin(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ asin_8cd9c9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl b/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
new file mode 100644
index 0000000..1e8378e
--- /dev/null
+++ b/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void asin_c0c272() {
+ float res = asin(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ asin_c0c272();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_c0c272() {
+ float res = asin(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ asin_c0c272();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void asin_c0c272() {
+ float res = asin(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ asin_c0c272();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl b/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
new file mode 100644
index 0000000..ee1eaad
--- /dev/null
+++ b/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan_02979a() {
+ float res = atan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan_02979a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_02979a() {
+ float res = atan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan_02979a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_02979a() {
+ float res = atan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan_02979a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl b/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
new file mode 100644
index 0000000..84b1dfd
--- /dev/null
+++ b/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan_331e6d() {
+ vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan_331e6d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_331e6d() {
+ vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan_331e6d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_331e6d() {
+ vec3 res = atan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan_331e6d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl b/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
new file mode 100644
index 0000000..0ebc406
--- /dev/null
+++ b/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan_a8b696() {
+ vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan_a8b696();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_a8b696() {
+ vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan_a8b696();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_a8b696() {
+ vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan_a8b696();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
new file mode 100644
index 0000000..c07ed31
--- /dev/null
+++ b/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan_ad96e4() {
+ vec2 res = atan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan_ad96e4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_ad96e4() {
+ vec2 res = atan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan_ad96e4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan_ad96e4() {
+ vec2 res = atan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan_ad96e4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
new file mode 100644
index 0000000..9e5d0a3
--- /dev/null
+++ b/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan2_57fb13() {
+ vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan2_57fb13();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_57fb13() {
+ vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan2_57fb13();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_57fb13() {
+ vec2 res = atan(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan2_57fb13();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl b/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
new file mode 100644
index 0000000..b5eec8b
--- /dev/null
+++ b/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan2_96057c() {
+ float res = atan(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan2_96057c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_96057c() {
+ float res = atan(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan2_96057c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_96057c() {
+ float res = atan(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan2_96057c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
new file mode 100644
index 0000000..f06fcdd
--- /dev/null
+++ b/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan2_a70d0d() {
+ vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan2_a70d0d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_a70d0d() {
+ vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan2_a70d0d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_a70d0d() {
+ vec3 res = atan(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan2_a70d0d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
new file mode 100644
index 0000000..ec9f7d0
--- /dev/null
+++ b/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void atan2_ae713e() {
+ vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ atan2_ae713e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_ae713e() {
+ vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ atan2_ae713e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void atan2_ae713e() {
+ vec4 res = atan(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atan2_ae713e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
new file mode 100644
index 0000000..cc143ec
--- /dev/null
+++ b/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicAdd_794055() {
+ int atomic_result = 0;
+ InterlockedAdd(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicAdd_794055();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
new file mode 100644
index 0000000..139df57
--- /dev/null
+++ b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicAdd_8a199a() {
+ uint atomic_result = 0u;
+ InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicAdd_8a199a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicAdd_8a199a() {
+ uint atomic_result = 0u;
+ InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicAdd_8a199a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
new file mode 100644
index 0000000..e157ee3
--- /dev/null
+++ b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicAdd_d32fe4() {
+ int atomic_result = 0;
+ InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicAdd_d32fe4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicAdd_d32fe4() {
+ int atomic_result = 0;
+ InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicAdd_d32fe4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
new file mode 100644
index 0000000..1c43164
--- /dev/null
+++ b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicAdd_d5db1d() {
+ uint atomic_result = 0u;
+ InterlockedAdd(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicAdd_d5db1d();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
new file mode 100644
index 0000000..813e521
--- /dev/null
+++ b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicAnd_152966() {
+ int atomic_result = 0;
+ InterlockedAnd(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicAnd_152966();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicAnd_152966() {
+ int atomic_result = 0;
+ InterlockedAnd(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicAnd_152966();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
new file mode 100644
index 0000000..05f66bb
--- /dev/null
+++ b/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicAnd_34edd3() {
+ uint atomic_result = 0u;
+ InterlockedAnd(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicAnd_34edd3();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
new file mode 100644
index 0000000..10635fb
--- /dev/null
+++ b/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicAnd_45a819() {
+ int atomic_result = 0;
+ InterlockedAnd(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicAnd_45a819();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
new file mode 100644
index 0000000..50f0b04
--- /dev/null
+++ b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicAnd_85a8d9() {
+ uint atomic_result = 0u;
+ InterlockedAnd(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicAnd_85a8d9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicAnd_85a8d9() {
+ uint atomic_result = 0u;
+ InterlockedAnd(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicAnd_85a8d9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAnd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
new file mode 100644
index 0000000..f15fa37
--- /dev/null
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
@@ -0,0 +1,67 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicCompareExchangeWeak_12871c() {
+ ivec2 atomic_result = ivec2(0, 0);
+ int atomic_compare_value = 1;
+ InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1, atomic_result.x);
+ atomic_result.y = atomic_result.x == atomic_compare_value;
+ ivec2 res = atomic_result;
+}
+
+void fragment_main() {
+ atomicCompareExchangeWeak_12871c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicCompareExchangeWeak_12871c() {
+ ivec2 atomic_result = ivec2(0, 0);
+ int atomic_compare_value = 1;
+ InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1, atomic_result.x);
+ atomic_result.y = atomic_result.x == atomic_compare_value;
+ ivec2 res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicCompareExchangeWeak_12871c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
new file mode 100644
index 0000000..f1cde24
--- /dev/null
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
@@ -0,0 +1,67 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicCompareExchangeWeak_6673da() {
+ uvec2 atomic_result = uvec2(0u, 0u);
+ uint atomic_compare_value = 1u;
+ InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1u, atomic_result.x);
+ atomic_result.y = atomic_result.x == atomic_compare_value;
+ uvec2 res = atomic_result;
+}
+
+void fragment_main() {
+ atomicCompareExchangeWeak_6673da();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicCompareExchangeWeak_6673da() {
+ uvec2 atomic_result = uvec2(0u, 0u);
+ uint atomic_compare_value = 1u;
+ InterlockedCompareExchange(sb_rw.arg_0, atomic_compare_value, 1u, atomic_result.x);
+ atomic_result.y = atomic_result.x == atomic_compare_value;
+ uvec2 res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicCompareExchangeWeak_6673da();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:12: 'InterlockedCompareExchange' : no matching overloaded function found
+ERROR: 0:12: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
new file mode 100644
index 0000000..9760452
--- /dev/null
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
@@ -0,0 +1,46 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicCompareExchangeWeak_89ea3b() {
+ ivec2 atomic_result = ivec2(0, 0);
+ int atomic_compare_value = 1;
+ InterlockedCompareExchange(arg_0, atomic_compare_value, 1, atomic_result.x);
+ atomic_result.y = atomic_result.x == atomic_compare_value;
+ ivec2 res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicCompareExchangeWeak_89ea3b();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
new file mode 100644
index 0000000..be102ee
--- /dev/null
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
@@ -0,0 +1,46 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicCompareExchangeWeak_b2ab2c() {
+ uvec2 atomic_result = uvec2(0u, 0u);
+ uint atomic_compare_value = 1u;
+ InterlockedCompareExchange(arg_0, atomic_compare_value, 1u, atomic_result.x);
+ atomic_result.y = atomic_result.x == atomic_compare_value;
+ uvec2 res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicCompareExchangeWeak_b2ab2c();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
new file mode 100644
index 0000000..8b09423
--- /dev/null
+++ b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicExchange_0a5dca() {
+ uint atomic_result = 0u;
+ InterlockedExchange(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicExchange_0a5dca();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
new file mode 100644
index 0000000..7e1913c
--- /dev/null
+++ b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicExchange_d59712() {
+ uint atomic_result = 0u;
+ InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicExchange_d59712();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicExchange_d59712() {
+ uint atomic_result = 0u;
+ InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicExchange_d59712();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
new file mode 100644
index 0000000..d847eaf
--- /dev/null
+++ b/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicExchange_e114ba() {
+ int atomic_result = 0;
+ InterlockedExchange(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicExchange_e114ba();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
new file mode 100644
index 0000000..f777a17
--- /dev/null
+++ b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicExchange_f2e22f() {
+ int atomic_result = 0;
+ InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicExchange_f2e22f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicExchange_f2e22f() {
+ int atomic_result = 0;
+ InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicExchange_f2e22f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
new file mode 100644
index 0000000..2f8cb3d
--- /dev/null
+++ b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicLoad_0806ad() {
+ int atomic_result = 0;
+ InterlockedOr(sb_rw.arg_0, 0, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicLoad_0806ad();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicLoad_0806ad() {
+ int atomic_result = 0;
+ InterlockedOr(sb_rw.arg_0, 0, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicLoad_0806ad();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
new file mode 100644
index 0000000..e0c94f0
--- /dev/null
+++ b/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicLoad_361bf1() {
+ uint atomic_result = 0u;
+ InterlockedOr(arg_0, 0, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicLoad_361bf1();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
new file mode 100644
index 0000000..74351a3
--- /dev/null
+++ b/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicLoad_afcc03() {
+ int atomic_result = 0;
+ InterlockedOr(arg_0, 0, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicLoad_afcc03();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
new file mode 100644
index 0000000..7fc0623
--- /dev/null
+++ b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicLoad_fe6cc3() {
+ uint atomic_result = 0u;
+ InterlockedOr(sb_rw.arg_0, 0, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicLoad_fe6cc3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicLoad_fe6cc3() {
+ uint atomic_result = 0u;
+ InterlockedOr(sb_rw.arg_0, 0, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicLoad_fe6cc3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
new file mode 100644
index 0000000..4a35e2c
--- /dev/null
+++ b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicMax_51b9be() {
+ uint atomic_result = 0u;
+ InterlockedMax(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicMax_51b9be();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicMax_51b9be() {
+ uint atomic_result = 0u;
+ InterlockedMax(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicMax_51b9be();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
new file mode 100644
index 0000000..5c77b71
--- /dev/null
+++ b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicMax_92aa72() {
+ int atomic_result = 0;
+ InterlockedMax(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicMax_92aa72();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicMax_92aa72() {
+ int atomic_result = 0;
+ InterlockedMax(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicMax_92aa72();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMax' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
new file mode 100644
index 0000000..526868b
--- /dev/null
+++ b/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicMax_a89cc3() {
+ int atomic_result = 0;
+ InterlockedMax(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicMax_a89cc3();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
new file mode 100644
index 0000000..e34d9e9
--- /dev/null
+++ b/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicMax_beccfc() {
+ uint atomic_result = 0u;
+ InterlockedMax(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicMax_beccfc();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
new file mode 100644
index 0000000..cf4724c
--- /dev/null
+++ b/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicMin_278235() {
+ int atomic_result = 0;
+ InterlockedMin(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicMin_278235();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
new file mode 100644
index 0000000..ade2280
--- /dev/null
+++ b/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicMin_69d383() {
+ uint atomic_result = 0u;
+ InterlockedMin(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicMin_69d383();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
new file mode 100644
index 0000000..da27730
--- /dev/null
+++ b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicMin_8e38dc() {
+ int atomic_result = 0;
+ InterlockedMin(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicMin_8e38dc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicMin_8e38dc() {
+ int atomic_result = 0;
+ InterlockedMin(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicMin_8e38dc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
new file mode 100644
index 0000000..719cf8e
--- /dev/null
+++ b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicMin_c67a74() {
+ uint atomic_result = 0u;
+ InterlockedMin(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicMin_c67a74();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicMin_c67a74() {
+ uint atomic_result = 0u;
+ InterlockedMin(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicMin_c67a74();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedMin' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
new file mode 100644
index 0000000..6638375
--- /dev/null
+++ b/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicOr_5e3d61() {
+ uint atomic_result = 0u;
+ InterlockedOr(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicOr_5e3d61();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
new file mode 100644
index 0000000..85663d2
--- /dev/null
+++ b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicOr_5e95d4() {
+ uint atomic_result = 0u;
+ InterlockedOr(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicOr_5e95d4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicOr_5e95d4() {
+ uint atomic_result = 0u;
+ InterlockedOr(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicOr_5e95d4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
new file mode 100644
index 0000000..9996d05
--- /dev/null
+++ b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicOr_8d96a0() {
+ int atomic_result = 0;
+ InterlockedOr(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicOr_8d96a0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicOr_8d96a0() {
+ int atomic_result = 0;
+ InterlockedOr(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicOr_8d96a0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedOr' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
new file mode 100644
index 0000000..239746d
--- /dev/null
+++ b/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicOr_d09248() {
+ int atomic_result = 0;
+ InterlockedOr(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicOr_d09248();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
new file mode 100644
index 0000000..29aec50
--- /dev/null
+++ b/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicStore_726882() {
+ uint atomic_result = 0u;
+ InterlockedExchange(arg_0, 1u, atomic_result);
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicStore_726882();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
new file mode 100644
index 0000000..cd08ad3
--- /dev/null
+++ b/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicStore_8bea94() {
+ int atomic_result = 0;
+ InterlockedExchange(arg_0, 1, atomic_result);
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicStore_8bea94();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
new file mode 100644
index 0000000..1f768b3
--- /dev/null
+++ b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
@@ -0,0 +1,61 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicStore_cdc29e() {
+ uint atomic_result = 0u;
+ InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
+}
+
+void fragment_main() {
+ atomicStore_cdc29e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicStore_cdc29e() {
+ uint atomic_result = 0u;
+ InterlockedExchange(sb_rw.arg_0, 1u, atomic_result);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicStore_cdc29e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
new file mode 100644
index 0000000..6df74dc
--- /dev/null
+++ b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -0,0 +1,61 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicStore_d1e9a6() {
+ int atomic_result = 0;
+ InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
+}
+
+void fragment_main() {
+ atomicStore_d1e9a6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicStore_d1e9a6() {
+ int atomic_result = 0;
+ InterlockedExchange(sb_rw.arg_0, 1, atomic_result);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicStore_d1e9a6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedExchange' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
new file mode 100644
index 0000000..1da7814
--- /dev/null
+++ b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicSub_051100() {
+ int atomic_result = 0;
+ InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicSub_051100();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicSub_051100() {
+ int atomic_result = 0;
+ InterlockedAdd(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicSub_051100();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
new file mode 100644
index 0000000..58896e8
--- /dev/null
+++ b/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicSub_0d26c2() {
+ uint atomic_result = 0u;
+ InterlockedAdd(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicSub_0d26c2();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
new file mode 100644
index 0000000..13a73bc
--- /dev/null
+++ b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicSub_15bfc9() {
+ uint atomic_result = 0u;
+ InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicSub_15bfc9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicSub_15bfc9() {
+ uint atomic_result = 0u;
+ InterlockedAdd(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicSub_15bfc9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedAdd' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
new file mode 100644
index 0000000..83ef6a0
--- /dev/null
+++ b/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicSub_77883a() {
+ int atomic_result = 0;
+ InterlockedAdd(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicSub_77883a();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
new file mode 100644
index 0000000..9e9f4ca
--- /dev/null
+++ b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicXor_54510e() {
+ uint atomic_result = 0u;
+ InterlockedXor(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+void fragment_main() {
+ atomicXor_54510e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ uint arg_0;
+} sb_rw;
+
+void atomicXor_54510e() {
+ uint atomic_result = 0u;
+ InterlockedXor(sb_rw.arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicXor_54510e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
new file mode 100644
index 0000000..62485ed
--- /dev/null
+++ b/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int arg_0;
+
+void atomicXor_75dc95() {
+ int atomic_result = 0;
+ InterlockedXor(arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ int atomic_result_1 = 0;
+ InterlockedExchange(arg_0, 0, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicXor_75dc95();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
new file mode 100644
index 0000000..0a43b25
--- /dev/null
+++ b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicXor_c1b78c() {
+ int atomic_result = 0;
+ InterlockedXor(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+void fragment_main() {
+ atomicXor_c1b78c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SB_RW_1 {
+ int arg_0;
+} sb_rw;
+
+void atomicXor_c1b78c() {
+ int atomic_result = 0;
+ InterlockedXor(sb_rw.arg_0, 1, atomic_result);
+ int res = atomic_result;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ atomicXor_c1b78c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: 'InterlockedXor' : no matching overloaded function found
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
new file mode 100644
index 0000000..a68b9b6
--- /dev/null
+++ b/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared uint arg_0;
+
+void atomicXor_c8e6be() {
+ uint atomic_result = 0u;
+ InterlockedXor(arg_0, 1u, atomic_result);
+ uint res = atomic_result;
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void compute_main_inner(uint local_invocation_index) {
+ {
+ uint atomic_result_1 = 0u;
+ InterlockedExchange(arg_0, 0u, atomic_result_1);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ atomicXor_c8e6be();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main(tint_symbol_1 tint_symbol) {
+ compute_main_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ compute_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl b/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
new file mode 100644
index 0000000..2a3b135
--- /dev/null
+++ b/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ceil_34064b() {
+ vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ceil_34064b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_34064b() {
+ vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ceil_34064b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_34064b() {
+ vec3 res = ceil(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ceil_34064b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl b/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
new file mode 100644
index 0000000..9a9c143
--- /dev/null
+++ b/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ceil_678655() {
+ float res = ceil(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ceil_678655();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_678655() {
+ float res = ceil(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ceil_678655();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_678655() {
+ float res = ceil(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ceil_678655();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl b/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
new file mode 100644
index 0000000..58113d5
--- /dev/null
+++ b/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ceil_96f597() {
+ vec2 res = ceil(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ceil_96f597();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_96f597() {
+ vec2 res = ceil(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ceil_96f597();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_96f597() {
+ vec2 res = ceil(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ceil_96f597();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
new file mode 100644
index 0000000..51d5751
--- /dev/null
+++ b/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ceil_b74c16() {
+ vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ceil_b74c16();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_b74c16() {
+ vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ceil_b74c16();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ceil_b74c16() {
+ vec4 res = ceil(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ceil_b74c16();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
new file mode 100644
index 0000000..3ec47cc
--- /dev/null
+++ b/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_0acf8f() {
+ vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_0acf8f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_0acf8f() {
+ vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_0acf8f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_0acf8f() {
+ vec2 res = clamp(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_0acf8f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
new file mode 100644
index 0000000..ed04508
--- /dev/null
+++ b/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_1a32e3() {
+ ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_1a32e3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_1a32e3() {
+ ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_1a32e3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_1a32e3() {
+ ivec4 res = clamp(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_1a32e3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
new file mode 100644
index 0000000..43ee8b9
--- /dev/null
+++ b/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_2bd567() {
+ float res = clamp(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_2bd567();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_2bd567() {
+ float res = clamp(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_2bd567();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_2bd567() {
+ float res = clamp(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_2bd567();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
new file mode 100644
index 0000000..590083d
--- /dev/null
+++ b/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_2bde41() {
+ vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_2bde41();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_2bde41() {
+ vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_2bde41();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_2bde41() {
+ vec4 res = clamp(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_2bde41();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
new file mode 100644
index 0000000..f3e3ed3
--- /dev/null
+++ b/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_548fc7() {
+ uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_548fc7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_548fc7() {
+ uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_548fc7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_548fc7() {
+ uvec3 res = clamp(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_548fc7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
new file mode 100644
index 0000000..e68c707
--- /dev/null
+++ b/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_5f0819() {
+ ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_5f0819();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_5f0819() {
+ ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_5f0819();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_5f0819() {
+ ivec3 res = clamp(ivec3(0, 0, 0), ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_5f0819();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
new file mode 100644
index 0000000..675c22f7
--- /dev/null
+++ b/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_6c1749() {
+ ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_6c1749();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_6c1749() {
+ ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_6c1749();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_6c1749() {
+ ivec2 res = clamp(ivec2(0, 0), ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_6c1749();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
new file mode 100644
index 0000000..1805a75
--- /dev/null
+++ b/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_7706d7() {
+ uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_7706d7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_7706d7() {
+ uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_7706d7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_7706d7() {
+ uvec2 res = clamp(uvec2(0u, 0u), uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_7706d7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl b/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
new file mode 100644
index 0000000..0b7c470
--- /dev/null
+++ b/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_867397() {
+ vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_867397();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_867397() {
+ vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_867397();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_867397() {
+ vec3 res = clamp(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_867397();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
new file mode 100644
index 0000000..23ba3e4
--- /dev/null
+++ b/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_a2de25() {
+ uint res = clamp(1u, 1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_a2de25();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_a2de25() {
+ uint res = clamp(1u, 1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_a2de25();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_a2de25() {
+ uint res = clamp(1u, 1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_a2de25();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
new file mode 100644
index 0000000..4337f3e
--- /dev/null
+++ b/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_b07c65() {
+ int res = clamp(1, 1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_b07c65();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_b07c65() {
+ int res = clamp(1, 1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_b07c65();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_b07c65() {
+ int res = clamp(1, 1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_b07c65();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
new file mode 100644
index 0000000..476dca9
--- /dev/null
+++ b/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void clamp_bd43ce() {
+ uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ clamp_bd43ce();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_bd43ce() {
+ uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ clamp_bd43ce();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void clamp_bd43ce() {
+ uvec4 res = clamp(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ clamp_bd43ce();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl b/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
new file mode 100644
index 0000000..432f4be
--- /dev/null
+++ b/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cos_16dc15() {
+ vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cos_16dc15();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_16dc15() {
+ vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cos_16dc15();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_16dc15() {
+ vec3 res = cos(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cos_16dc15();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl b/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
new file mode 100644
index 0000000..ea59c7e
--- /dev/null
+++ b/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cos_29d66d() {
+ vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cos_29d66d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_29d66d() {
+ vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cos_29d66d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_29d66d() {
+ vec4 res = cos(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cos_29d66d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl b/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
new file mode 100644
index 0000000..ec33d96
--- /dev/null
+++ b/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cos_c3b486() {
+ vec2 res = cos(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cos_c3b486();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_c3b486() {
+ vec2 res = cos(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cos_c3b486();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_c3b486() {
+ vec2 res = cos(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cos_c3b486();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
new file mode 100644
index 0000000..82d182c
--- /dev/null
+++ b/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cos_c5c28e() {
+ float res = cos(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cos_c5c28e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_c5c28e() {
+ float res = cos(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cos_c5c28e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cos_c5c28e() {
+ float res = cos(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cos_c5c28e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl b/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
new file mode 100644
index 0000000..0e8a40a
--- /dev/null
+++ b/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cosh_377652() {
+ vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cosh_377652();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_377652() {
+ vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cosh_377652();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_377652() {
+ vec3 res = cosh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cosh_377652();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl b/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
new file mode 100644
index 0000000..bca647c
--- /dev/null
+++ b/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cosh_c13756() {
+ vec2 res = cosh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cosh_c13756();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_c13756() {
+ vec2 res = cosh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cosh_c13756();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_c13756() {
+ vec2 res = cosh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cosh_c13756();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
new file mode 100644
index 0000000..296e122
--- /dev/null
+++ b/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cosh_da92dd() {
+ float res = cosh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cosh_da92dd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_da92dd() {
+ float res = cosh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cosh_da92dd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_da92dd() {
+ float res = cosh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cosh_da92dd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
new file mode 100644
index 0000000..a15e460
--- /dev/null
+++ b/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cosh_e0c1de() {
+ vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cosh_e0c1de();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_e0c1de() {
+ vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cosh_e0c1de();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cosh_e0c1de() {
+ vec4 res = cosh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cosh_e0c1de();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
new file mode 100644
index 0000000..4c444f1
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_0d0e46() {
+ uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_0d0e46();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_0d0e46() {
+ uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_0d0e46();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_0d0e46() {
+ uvec4 res = countbits(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_0d0e46();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
new file mode 100644
index 0000000..aaa2d24
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_0f7980() {
+ ivec4 res = countbits(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_0f7980();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_0f7980() {
+ ivec4 res = countbits(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_0f7980();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_0f7980() {
+ ivec4 res = countbits(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_0f7980();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
new file mode 100644
index 0000000..603c17c
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_65d2ae() {
+ ivec3 res = countbits(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_65d2ae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_65d2ae() {
+ ivec3 res = countbits(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_65d2ae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_65d2ae() {
+ ivec3 res = countbits(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_65d2ae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
new file mode 100644
index 0000000..f2da622
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_690cfc() {
+ uvec3 res = countbits(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_690cfc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_690cfc() {
+ uvec3 res = countbits(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_690cfc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_690cfc() {
+ uvec3 res = countbits(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_690cfc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
new file mode 100644
index 0000000..750e3d2
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_94fd81() {
+ uvec2 res = countbits(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_94fd81();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_94fd81() {
+ uvec2 res = countbits(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_94fd81();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_94fd81() {
+ uvec2 res = countbits(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_94fd81();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
new file mode 100644
index 0000000..241a8d0
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_ae44f9() {
+ uint res = countbits(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_ae44f9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_ae44f9() {
+ uint res = countbits(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_ae44f9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_ae44f9() {
+ uint res = countbits(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_ae44f9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
new file mode 100644
index 0000000..f7b71d1
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_af90e2() {
+ ivec2 res = countbits(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_af90e2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_af90e2() {
+ ivec2 res = countbits(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_af90e2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_af90e2() {
+ ivec2 res = countbits(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_af90e2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
new file mode 100644
index 0000000..78d84a7
--- /dev/null
+++ b/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_fd88b2() {
+ int res = countbits(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ countOneBits_fd88b2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_fd88b2() {
+ int res = countbits(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ countOneBits_fd88b2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void countOneBits_fd88b2() {
+ int res = countbits(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ countOneBits_fd88b2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'countbits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl b/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
new file mode 100644
index 0000000..dfaee60
--- /dev/null
+++ b/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void cross_041cb0() {
+ vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ cross_041cb0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cross_041cb0() {
+ vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ cross_041cb0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void cross_041cb0() {
+ vec3 res = cross(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ cross_041cb0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
new file mode 100644
index 0000000..50c54d2
--- /dev/null
+++ b/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void determinant_2b62ba() {
+ float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ determinant_2b62ba();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void determinant_2b62ba() {
+ float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ determinant_2b62ba();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void determinant_2b62ba() {
+ float res = determinant(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ determinant_2b62ba();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
new file mode 100644
index 0000000..f2b15cf
--- /dev/null
+++ b/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void determinant_a0a87c() {
+ float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ determinant_a0a87c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void determinant_a0a87c() {
+ float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ determinant_a0a87c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void determinant_a0a87c() {
+ float res = determinant(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ determinant_a0a87c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl b/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
new file mode 100644
index 0000000..8117d8b
--- /dev/null
+++ b/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void determinant_e19305() {
+ float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ determinant_e19305();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void determinant_e19305() {
+ float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ determinant_e19305();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void determinant_e19305() {
+ float res = determinant(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ determinant_e19305();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl b/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
new file mode 100644
index 0000000..c278ef0
--- /dev/null
+++ b/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void distance_0657d4() {
+ float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ distance_0657d4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_0657d4() {
+ float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ distance_0657d4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_0657d4() {
+ float res = distance(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ distance_0657d4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl b/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
new file mode 100644
index 0000000..39c71e5
--- /dev/null
+++ b/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void distance_9646ea() {
+ float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ distance_9646ea();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_9646ea() {
+ float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ distance_9646ea();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_9646ea() {
+ float res = distance(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ distance_9646ea();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl b/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
new file mode 100644
index 0000000..e7dddbf
--- /dev/null
+++ b/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void distance_aa4055() {
+ float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ distance_aa4055();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_aa4055() {
+ float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ distance_aa4055();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_aa4055() {
+ float res = distance(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ distance_aa4055();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl b/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
new file mode 100644
index 0000000..b509965
--- /dev/null
+++ b/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void distance_cfed73() {
+ float res = distance(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ distance_cfed73();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_cfed73() {
+ float res = distance(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ distance_cfed73();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void distance_cfed73() {
+ float res = distance(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ distance_cfed73();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl b/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
new file mode 100644
index 0000000..2e99625
--- /dev/null
+++ b/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void dot_0c577b() {
+ float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_0c577b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void dot_0c577b() {
+ float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_0c577b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void dot_0c577b() {
+ float res = dot(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_0c577b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl b/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
new file mode 100644
index 0000000..7e99a55
--- /dev/null
+++ b/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
@@ -0,0 +1,83 @@
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec3 a, uvec3 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
+}
+
+void dot_7548a0() {
+ uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_7548a0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec3 a, uvec3 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
+}
+
+void dot_7548a0() {
+ uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_7548a0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec3 a, uvec3 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
+}
+
+void dot_7548a0() {
+ uint res = tint_int_dot(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_7548a0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl b/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
new file mode 100644
index 0000000..eec9252
--- /dev/null
+++ b/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void dot_883f0e() {
+ float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_883f0e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void dot_883f0e() {
+ float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_883f0e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void dot_883f0e() {
+ float res = dot(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_883f0e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl b/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
new file mode 100644
index 0000000..c620ce6
--- /dev/null
+++ b/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
@@ -0,0 +1,83 @@
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec2 a, uvec2 b) {
+ return a[0]*b[0] + a[1]*b[1];
+}
+
+void dot_97c7ee() {
+ uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_97c7ee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec2 a, uvec2 b) {
+ return a[0]*b[0] + a[1]*b[1];
+}
+
+void dot_97c7ee() {
+ uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_97c7ee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec2 a, uvec2 b) {
+ return a[0]*b[0] + a[1]*b[1];
+}
+
+void dot_97c7ee() {
+ uint res = tint_int_dot(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_97c7ee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl b/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
new file mode 100644
index 0000000..3959bf6
--- /dev/null
+++ b/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void dot_ba4246() {
+ float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_ba4246();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void dot_ba4246() {
+ float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_ba4246();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void dot_ba4246() {
+ float res = dot(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_ba4246();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl b/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
new file mode 100644
index 0000000..941d081
--- /dev/null
+++ b/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
@@ -0,0 +1,83 @@
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec4 a, uvec4 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
+}
+
+void dot_e994c7() {
+ uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_e994c7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec4 a, uvec4 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
+}
+
+void dot_e994c7() {
+ uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_e994c7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_int_dot(uvec4 a, uvec4 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
+}
+
+void dot_e994c7() {
+ uint res = tint_int_dot(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_e994c7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl b/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
new file mode 100644
index 0000000..809f017
--- /dev/null
+++ b/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
@@ -0,0 +1,83 @@
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec4 a, ivec4 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
+}
+
+void dot_ef6b1d() {
+ int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_ef6b1d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec4 a, ivec4 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
+}
+
+void dot_ef6b1d() {
+ int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_ef6b1d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec4 a, ivec4 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
+}
+
+void dot_ef6b1d() {
+ int res = tint_int_dot(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_ef6b1d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl b/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
new file mode 100644
index 0000000..57919d4
--- /dev/null
+++ b/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
@@ -0,0 +1,83 @@
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec3 a, ivec3 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
+}
+
+void dot_f1312c() {
+ int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_f1312c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec3 a, ivec3 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
+}
+
+void dot_f1312c() {
+ int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_f1312c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec3 a, ivec3 b) {
+ return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
+}
+
+void dot_f1312c() {
+ int res = tint_int_dot(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_f1312c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl b/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
new file mode 100644
index 0000000..29bb327
--- /dev/null
+++ b/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
@@ -0,0 +1,83 @@
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec2 a, ivec2 b) {
+ return a[0]*b[0] + a[1]*b[1];
+}
+
+void dot_fc5f7c() {
+ int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ dot_fc5f7c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec2 a, ivec2 b) {
+ return a[0]*b[0] + a[1]*b[1];
+}
+
+void dot_fc5f7c() {
+ int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ dot_fc5f7c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+int tint_int_dot(ivec2 a, ivec2 b) {
+ return a[0]*b[0] + a[1]*b[1];
+}
+
+void dot_fc5f7c() {
+ int res = tint_int_dot(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ dot_fc5f7c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl
new file mode 100644
index 0000000..b2c3e88
--- /dev/null
+++ b/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdx_0763f7() {
+ vec3 res = ddx(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdx_0763f7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl
new file mode 100644
index 0000000..b147755
--- /dev/null
+++ b/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdx_99edb1() {
+ vec2 res = ddx(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdx_99edb1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl
new file mode 100644
index 0000000..3201da8
--- /dev/null
+++ b/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdx_c487fa() {
+ vec4 res = ddx(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdx_c487fa();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl b/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl
new file mode 100644
index 0000000..8d27891
--- /dev/null
+++ b/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdx_e263de() {
+ float res = ddx(1.0f);
+}
+
+void fragment_main() {
+ dpdx_e263de();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl
new file mode 100644
index 0000000..712cb2e1
--- /dev/null
+++ b/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxCoarse_029152() {
+ float res = ddx_coarse(1.0f);
+}
+
+void fragment_main() {
+ dpdxCoarse_029152();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
new file mode 100644
index 0000000..ca3f444
--- /dev/null
+++ b/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxCoarse_9581cf() {
+ vec2 res = ddx_coarse(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdxCoarse_9581cf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl
new file mode 100644
index 0000000..d748693
--- /dev/null
+++ b/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxCoarse_c28641() {
+ vec4 res = ddx_coarse(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdxCoarse_c28641();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl b/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
new file mode 100644
index 0000000..568db44
--- /dev/null
+++ b/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxCoarse_f64d7b() {
+ vec3 res = ddx_coarse(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdxCoarse_f64d7b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_coarse' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl
new file mode 100644
index 0000000..1f79d0e
--- /dev/null
+++ b/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxFine_8c5069() {
+ vec4 res = ddx_fine(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdxFine_8c5069();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl
new file mode 100644
index 0000000..5890767
--- /dev/null
+++ b/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxFine_9631de() {
+ vec2 res = ddx_fine(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdxFine_9631de();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl
new file mode 100644
index 0000000..99c60ca
--- /dev/null
+++ b/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxFine_f401a2() {
+ float res = ddx_fine(1.0f);
+}
+
+void fragment_main() {
+ dpdxFine_f401a2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl b/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl
new file mode 100644
index 0000000..3e8c68f
--- /dev/null
+++ b/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdxFine_f92fb6() {
+ vec3 res = ddx_fine(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdxFine_f92fb6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddx_fine' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl
new file mode 100644
index 0000000..b235c27
--- /dev/null
+++ b/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdy_699a05() {
+ vec4 res = ddy(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdy_699a05();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl
new file mode 100644
index 0000000..7c20e0f
--- /dev/null
+++ b/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdy_7f8d84() {
+ float res = ddy(1.0f);
+}
+
+void fragment_main() {
+ dpdy_7f8d84();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl
new file mode 100644
index 0000000..82667ce
--- /dev/null
+++ b/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdy_a8b56e() {
+ vec2 res = ddy(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdy_a8b56e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl b/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl
new file mode 100644
index 0000000..baf086e
--- /dev/null
+++ b/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdy_feb40f() {
+ vec3 res = ddy(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdy_feb40f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
new file mode 100644
index 0000000..a4f7518
--- /dev/null
+++ b/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyCoarse_3e1ab4() {
+ vec2 res = ddy_coarse(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdyCoarse_3e1ab4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl
new file mode 100644
index 0000000..3872654
--- /dev/null
+++ b/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyCoarse_445d24() {
+ vec4 res = ddy_coarse(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdyCoarse_445d24();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
new file mode 100644
index 0000000..e650118
--- /dev/null
+++ b/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyCoarse_870a7e() {
+ float res = ddy_coarse(1.0f);
+}
+
+void fragment_main() {
+ dpdyCoarse_870a7e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl b/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
new file mode 100644
index 0000000..b76372c
--- /dev/null
+++ b/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyCoarse_ae1873() {
+ vec3 res = ddy_coarse(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdyCoarse_ae1873();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_coarse' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
new file mode 100644
index 0000000..903fba0
--- /dev/null
+++ b/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyFine_1fb7ab() {
+ vec3 res = ddy_fine(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdyFine_1fb7ab();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl
new file mode 100644
index 0000000..4aafeb0
--- /dev/null
+++ b/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyFine_6eb673() {
+ float res = ddy_fine(1.0f);
+}
+
+void fragment_main() {
+ dpdyFine_6eb673();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl
new file mode 100644
index 0000000..532ff81
--- /dev/null
+++ b/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyFine_d0a648() {
+ vec4 res = ddy_fine(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdyFine_d0a648();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl b/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl
new file mode 100644
index 0000000..89a7b2c
--- /dev/null
+++ b/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void dpdyFine_df33aa() {
+ vec2 res = ddy_fine(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ dpdyFine_df33aa();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'ddy_fine' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
new file mode 100644
index 0000000..f1882e6
--- /dev/null
+++ b/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp_0f70eb() {
+ vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp_0f70eb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_0f70eb() {
+ vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp_0f70eb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_0f70eb() {
+ vec4 res = exp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp_0f70eb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl b/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
new file mode 100644
index 0000000..dff1bfe
--- /dev/null
+++ b/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp_1951e7() {
+ vec2 res = exp(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp_1951e7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_1951e7() {
+ vec2 res = exp(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp_1951e7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_1951e7() {
+ vec2 res = exp(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp_1951e7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl b/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
new file mode 100644
index 0000000..a46e266
--- /dev/null
+++ b/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp_771fd2() {
+ float res = exp(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp_771fd2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_771fd2() {
+ float res = exp(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp_771fd2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_771fd2() {
+ float res = exp(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp_771fd2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl b/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
new file mode 100644
index 0000000..aa82fb1
--- /dev/null
+++ b/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp_d98450() {
+ vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp_d98450();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_d98450() {
+ vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp_d98450();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp_d98450() {
+ vec3 res = exp(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp_d98450();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
new file mode 100644
index 0000000..214840f
--- /dev/null
+++ b/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp2_1f8680() {
+ vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp2_1f8680();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_1f8680() {
+ vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp2_1f8680();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_1f8680() {
+ vec3 res = exp2(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp2_1f8680();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
new file mode 100644
index 0000000..736af83
--- /dev/null
+++ b/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp2_a9d0a7() {
+ vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp2_a9d0a7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_a9d0a7() {
+ vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp2_a9d0a7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_a9d0a7() {
+ vec4 res = exp2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp2_a9d0a7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
new file mode 100644
index 0000000..08834d9
--- /dev/null
+++ b/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp2_d6777c() {
+ vec2 res = exp2(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp2_d6777c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_d6777c() {
+ vec2 res = exp2(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp2_d6777c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_d6777c() {
+ vec2 res = exp2(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp2_d6777c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl b/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
new file mode 100644
index 0000000..313278f
--- /dev/null
+++ b/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void exp2_dea523() {
+ float res = exp2(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ exp2_dea523();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_dea523() {
+ float res = exp2(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ exp2_dea523();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void exp2_dea523() {
+ float res = exp2(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ exp2_dea523();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
new file mode 100644
index 0000000..a582f90
--- /dev/null
+++ b/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void faceForward_5afbd5() {
+ vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ faceForward_5afbd5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void faceForward_5afbd5() {
+ vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ faceForward_5afbd5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void faceForward_5afbd5() {
+ vec3 res = faceforward(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ faceForward_5afbd5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
new file mode 100644
index 0000000..791ba27
--- /dev/null
+++ b/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void faceForward_b316e5() {
+ vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ faceForward_b316e5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void faceForward_b316e5() {
+ vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ faceForward_b316e5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void faceForward_b316e5() {
+ vec4 res = faceforward(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ faceForward_b316e5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
new file mode 100644
index 0000000..a1bd76b
--- /dev/null
+++ b/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void faceForward_e6908b() {
+ vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ faceForward_e6908b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void faceForward_e6908b() {
+ vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ faceForward_e6908b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void faceForward_e6908b() {
+ vec2 res = faceforward(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ faceForward_e6908b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
new file mode 100644
index 0000000..25ea844
--- /dev/null
+++ b/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void floor_3bccc4() {
+ vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ floor_3bccc4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_3bccc4() {
+ vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ floor_3bccc4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_3bccc4() {
+ vec4 res = floor(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ floor_3bccc4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
new file mode 100644
index 0000000..d92b849
--- /dev/null
+++ b/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void floor_5fc9ac() {
+ vec2 res = floor(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ floor_5fc9ac();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_5fc9ac() {
+ vec2 res = floor(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ floor_5fc9ac();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_5fc9ac() {
+ vec2 res = floor(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ floor_5fc9ac();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
new file mode 100644
index 0000000..bae81bb
--- /dev/null
+++ b/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void floor_60d7ea() {
+ vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ floor_60d7ea();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_60d7ea() {
+ vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ floor_60d7ea();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_60d7ea() {
+ vec3 res = floor(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ floor_60d7ea();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl b/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
new file mode 100644
index 0000000..e26964e
--- /dev/null
+++ b/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void floor_66f154() {
+ float res = floor(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ floor_66f154();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_66f154() {
+ float res = floor(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ floor_66f154();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void floor_66f154() {
+ float res = floor(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ floor_66f154();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
new file mode 100644
index 0000000..7bcc736
--- /dev/null
+++ b/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fma_26a7a9() {
+ vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fma_26a7a9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_26a7a9() {
+ vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fma_26a7a9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_26a7a9() {
+ vec2 res = mad(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fma_26a7a9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl b/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
new file mode 100644
index 0000000..54a7577
--- /dev/null
+++ b/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fma_6a3283() {
+ vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fma_6a3283();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_6a3283() {
+ vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fma_6a3283();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_6a3283() {
+ vec4 res = mad(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fma_6a3283();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
new file mode 100644
index 0000000..a48ff5c
--- /dev/null
+++ b/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fma_c10ba3() {
+ float res = mad(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fma_c10ba3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_c10ba3() {
+ float res = mad(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fma_c10ba3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_c10ba3() {
+ float res = mad(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fma_c10ba3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
new file mode 100644
index 0000000..1a0d92d
--- /dev/null
+++ b/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fma_e17c5c() {
+ vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fma_e17c5c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_e17c5c() {
+ vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fma_e17c5c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fma_e17c5c() {
+ vec3 res = mad(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fma_e17c5c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'mad' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
new file mode 100644
index 0000000..9b128ba
--- /dev/null
+++ b/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fract_8bc1e9() {
+ vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fract_8bc1e9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_8bc1e9() {
+ vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fract_8bc1e9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_8bc1e9() {
+ vec4 res = frac(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fract_8bc1e9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl b/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
new file mode 100644
index 0000000..8e6e966
--- /dev/null
+++ b/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fract_943cb1() {
+ vec2 res = frac(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fract_943cb1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_943cb1() {
+ vec2 res = frac(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fract_943cb1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_943cb1() {
+ vec2 res = frac(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fract_943cb1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl b/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
new file mode 100644
index 0000000..2ea3ff8
--- /dev/null
+++ b/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fract_a49758() {
+ vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fract_a49758();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_a49758() {
+ vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fract_a49758();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_a49758() {
+ vec3 res = frac(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fract_a49758();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
new file mode 100644
index 0000000..884ec28
--- /dev/null
+++ b/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void fract_fa5c71() {
+ float res = frac(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ fract_fa5c71();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_fa5c71() {
+ float res = frac(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ fract_fa5c71();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void fract_fa5c71() {
+ float res = frac(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ fract_fa5c71();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'frac' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/frexp/12f1da.wgsl.expected.glsl b/test/intrinsics/gen/frexp/12f1da.wgsl.expected.glsl
new file mode 100644
index 0000000..f0df205
--- /dev/null
+++ b/test/intrinsics/gen/frexp/12f1da.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result {
+ float sig;
+ int exp;
+};
+frexp_result tint_frexp(float param_0) {
+ float exp;
+ float sig = frexp(param_0, exp);
+ frexp_result result = {sig, int(exp)};
+ return result;
+}
+
+
+void frexp_12f1da() {
+ frexp_result res = tint_frexp(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ frexp_12f1da();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:10: 'frexp' : no matching overloaded function found
+ERROR: 0:10: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result {
+ float sig;
+ int exp;
+};
+frexp_result tint_frexp(float param_0) {
+ float exp;
+ float sig = frexp(param_0, exp);
+ frexp_result result = {sig, int(exp)};
+ return result;
+}
+
+
+void frexp_12f1da() {
+ frexp_result res = tint_frexp(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ frexp_12f1da();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:10: 'frexp' : no matching overloaded function found
+ERROR: 0:10: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result {
+ float sig;
+ int exp;
+};
+frexp_result tint_frexp(float param_0) {
+ float exp;
+ float sig = frexp(param_0, exp);
+ frexp_result result = {sig, int(exp)};
+ return result;
+}
+
+
+void frexp_12f1da() {
+ frexp_result res = tint_frexp(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ frexp_12f1da();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:10: 'frexp' : no matching overloaded function found
+ERROR: 0:10: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/frexp/a0eb3b.wgsl.expected.glsl b/test/intrinsics/gen/frexp/a0eb3b.wgsl.expected.glsl
new file mode 100644
index 0000000..08954fc
--- /dev/null
+++ b/test/intrinsics/gen/frexp/a0eb3b.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec3 {
+ vec3 sig;
+ ivec3 exp;
+};
+frexp_result_vec3 tint_frexp(vec3 param_0) {
+ float3 exp;
+ float3 sig = frexp(param_0, exp);
+ frexp_result_vec3 result = {sig, int3(exp)};
+ return result;
+}
+
+
+void frexp_a0eb3b() {
+ frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ frexp_a0eb3b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float3' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec3 {
+ vec3 sig;
+ ivec3 exp;
+};
+frexp_result_vec3 tint_frexp(vec3 param_0) {
+ float3 exp;
+ float3 sig = frexp(param_0, exp);
+ frexp_result_vec3 result = {sig, int3(exp)};
+ return result;
+}
+
+
+void frexp_a0eb3b() {
+ frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ frexp_a0eb3b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float3' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec3 {
+ vec3 sig;
+ ivec3 exp;
+};
+frexp_result_vec3 tint_frexp(vec3 param_0) {
+ float3 exp;
+ float3 sig = frexp(param_0, exp);
+ frexp_result_vec3 result = {sig, int3(exp)};
+ return result;
+}
+
+
+void frexp_a0eb3b() {
+ frexp_result_vec3 res = tint_frexp(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ frexp_a0eb3b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float3' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/frexp/d80367.wgsl.expected.glsl b/test/intrinsics/gen/frexp/d80367.wgsl.expected.glsl
new file mode 100644
index 0000000..40a2643
--- /dev/null
+++ b/test/intrinsics/gen/frexp/d80367.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec4 {
+ vec4 sig;
+ ivec4 exp;
+};
+frexp_result_vec4 tint_frexp(vec4 param_0) {
+ float4 exp;
+ float4 sig = frexp(param_0, exp);
+ frexp_result_vec4 result = {sig, int4(exp)};
+ return result;
+}
+
+
+void frexp_d80367() {
+ frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ frexp_d80367();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float4' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec4 {
+ vec4 sig;
+ ivec4 exp;
+};
+frexp_result_vec4 tint_frexp(vec4 param_0) {
+ float4 exp;
+ float4 sig = frexp(param_0, exp);
+ frexp_result_vec4 result = {sig, int4(exp)};
+ return result;
+}
+
+
+void frexp_d80367() {
+ frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ frexp_d80367();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float4' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec4 {
+ vec4 sig;
+ ivec4 exp;
+};
+frexp_result_vec4 tint_frexp(vec4 param_0) {
+ float4 exp;
+ float4 sig = frexp(param_0, exp);
+ frexp_result_vec4 result = {sig, int4(exp)};
+ return result;
+}
+
+
+void frexp_d80367() {
+ frexp_result_vec4 res = tint_frexp(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ frexp_d80367();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float4' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/frexp/db0637.wgsl.expected.glsl b/test/intrinsics/gen/frexp/db0637.wgsl.expected.glsl
new file mode 100644
index 0000000..34e2490
--- /dev/null
+++ b/test/intrinsics/gen/frexp/db0637.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec2 {
+ vec2 sig;
+ ivec2 exp;
+};
+frexp_result_vec2 tint_frexp(vec2 param_0) {
+ float2 exp;
+ float2 sig = frexp(param_0, exp);
+ frexp_result_vec2 result = {sig, int2(exp)};
+ return result;
+}
+
+
+void frexp_db0637() {
+ frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ frexp_db0637();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float2' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec2 {
+ vec2 sig;
+ ivec2 exp;
+};
+frexp_result_vec2 tint_frexp(vec2 param_0) {
+ float2 exp;
+ float2 sig = frexp(param_0, exp);
+ frexp_result_vec2 result = {sig, int2(exp)};
+ return result;
+}
+
+
+void frexp_db0637() {
+ frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ frexp_db0637();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float2' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct frexp_result_vec2 {
+ vec2 sig;
+ ivec2 exp;
+};
+frexp_result_vec2 tint_frexp(vec2 param_0) {
+ float2 exp;
+ float2 sig = frexp(param_0, exp);
+ frexp_result_vec2 result = {sig, int2(exp)};
+ return result;
+}
+
+
+void frexp_db0637() {
+ frexp_result_vec2 res = tint_frexp(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ frexp_db0637();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float2' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl
new file mode 100644
index 0000000..a0affd9
--- /dev/null
+++ b/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidth_5d1b39() {
+ vec3 res = fwidth(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidth_5d1b39();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl
new file mode 100644
index 0000000..3a38177
--- /dev/null
+++ b/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidth_b83ebb() {
+ vec2 res = fwidth(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidth_b83ebb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl
new file mode 100644
index 0000000..6d23f98
--- /dev/null
+++ b/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidth_d2ab9a() {
+ vec4 res = fwidth(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidth_d2ab9a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl b/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl
new file mode 100644
index 0000000..fa13be7
--- /dev/null
+++ b/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidth_df38ef() {
+ float res = fwidth(1.0f);
+}
+
+void fragment_main() {
+ fwidth_df38ef();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
new file mode 100644
index 0000000..0fa8940
--- /dev/null
+++ b/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthCoarse_159c8a() {
+ float res = fwidth(1.0f);
+}
+
+void fragment_main() {
+ fwidthCoarse_159c8a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
new file mode 100644
index 0000000..13b779c
--- /dev/null
+++ b/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthCoarse_1e59d9() {
+ vec3 res = fwidth(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidthCoarse_1e59d9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
new file mode 100644
index 0000000..6f6634b
--- /dev/null
+++ b/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthCoarse_4e4fc4() {
+ vec4 res = fwidth(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidthCoarse_4e4fc4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl b/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
new file mode 100644
index 0000000..48db5ee
--- /dev/null
+++ b/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthCoarse_e653f7() {
+ vec2 res = fwidth(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidthCoarse_e653f7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl
new file mode 100644
index 0000000..46ed62a
--- /dev/null
+++ b/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthFine_523fdc() {
+ vec3 res = fwidth(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidthFine_523fdc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl
new file mode 100644
index 0000000..ce3dbad
--- /dev/null
+++ b/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthFine_68f4ef() {
+ vec4 res = fwidth(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidthFine_68f4ef();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl
new file mode 100644
index 0000000..4441b46
--- /dev/null
+++ b/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthFine_f1742d() {
+ float res = fwidth(1.0f);
+}
+
+void fragment_main() {
+ fwidthFine_f1742d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl b/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
new file mode 100644
index 0000000..bf921e2
--- /dev/null
+++ b/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+void fwidthFine_ff6aa0() {
+ vec2 res = fwidth(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ fwidthFine_ff6aa0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.glsl b/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.glsl
new file mode 100644
index 0000000..09337ec
--- /dev/null
+++ b/test/intrinsics/gen/ignore/2a6ac2.wgsl.expected.glsl
@@ -0,0 +1,81 @@
+intrinsics/gen/ignore/2a6ac2.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void ignore_2a6ac2() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_2a6ac2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void ignore_2a6ac2() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_2a6ac2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void ignore_2a6ac2() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_2a6ac2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/5016e5.wgsl.expected.glsl b/test/intrinsics/gen/ignore/5016e5.wgsl.expected.glsl
new file mode 100644
index 0000000..91b05a1
--- /dev/null
+++ b/test/intrinsics/gen/ignore/5016e5.wgsl.expected.glsl
@@ -0,0 +1,104 @@
+SKIP: FAILED
+
+intrinsics/gen/ignore/5016e5.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+
+
+void ignore_5016e5() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_5016e5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_0' : undeclared identifier
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+
+void ignore_5016e5() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_5016e5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_0' : undeclared identifier
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+
+void ignore_5016e5() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_5016e5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_0' : undeclared identifier
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/ignore/509355.wgsl.expected.glsl b/test/intrinsics/gen/ignore/509355.wgsl.expected.glsl
new file mode 100644
index 0000000..11d4922
--- /dev/null
+++ b/test/intrinsics/gen/ignore/509355.wgsl.expected.glsl
@@ -0,0 +1,81 @@
+intrinsics/gen/ignore/509355.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void ignore_509355() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_509355();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void ignore_509355() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_509355();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void ignore_509355() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_509355();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
new file mode 100644
index 0000000..db87165
--- /dev/null
+++ b/test/intrinsics/gen/ignore/51aeb7.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+intrinsics/gen/ignore/51aeb7.wgsl:28:3 warning: use of deprecated intrinsic
+ ignore(1);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void ignore_51aeb7() {
+ 1;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_51aeb7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_51aeb7() {
+ 1;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_51aeb7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_51aeb7() {
+ 1;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_51aeb7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.glsl b/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.glsl
new file mode 100644
index 0000000..8f79e31
--- /dev/null
+++ b/test/intrinsics/gen/ignore/5c9edf.wgsl.expected.glsl
@@ -0,0 +1,81 @@
+intrinsics/gen/ignore/5c9edf.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void ignore_5c9edf() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_5c9edf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void ignore_5c9edf() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_5c9edf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void ignore_5c9edf() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_5c9edf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl b/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
new file mode 100644
index 0000000..0ce2ba0
--- /dev/null
+++ b/test/intrinsics/gen/ignore/6698df.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+intrinsics/gen/ignore/6698df.wgsl:28:3 warning: use of deprecated intrinsic
+ ignore(1u);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void ignore_6698df() {
+ 1u;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_6698df();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_6698df() {
+ 1u;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_6698df();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_6698df() {
+ 1u;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_6698df();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/ad88be.wgsl.expected.glsl b/test/intrinsics/gen/ignore/ad88be.wgsl.expected.glsl
new file mode 100644
index 0000000..b8116d6
--- /dev/null
+++ b/test/intrinsics/gen/ignore/ad88be.wgsl.expected.glsl
@@ -0,0 +1,104 @@
+SKIP: FAILED
+
+intrinsics/gen/ignore/ad88be.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void ignore_ad88be() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_ad88be();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void ignore_ad88be() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_ad88be();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void ignore_ad88be() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_ad88be();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/ignore/b469af.wgsl.expected.glsl b/test/intrinsics/gen/ignore/b469af.wgsl.expected.glsl
new file mode 100644
index 0000000..6c593b9
--- /dev/null
+++ b/test/intrinsics/gen/ignore/b469af.wgsl.expected.glsl
@@ -0,0 +1,104 @@
+SKIP: FAILED
+
+intrinsics/gen/ignore/b469af.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+
+
+void ignore_b469af() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_b469af();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_0' : undeclared identifier
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+
+void ignore_b469af() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_b469af();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_0' : undeclared identifier
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+
+
+void ignore_b469af() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_b469af();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_0' : undeclared identifier
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.glsl b/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.glsl
new file mode 100644
index 0000000..69ecc99
--- /dev/null
+++ b/test/intrinsics/gen/ignore/c8a0ee.wgsl.expected.glsl
@@ -0,0 +1,81 @@
+intrinsics/gen/ignore/c8a0ee.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void ignore_c8a0ee() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_c8a0ee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void ignore_c8a0ee() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_c8a0ee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void ignore_c8a0ee() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_c8a0ee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
new file mode 100644
index 0000000..a64b4e1
--- /dev/null
+++ b/test/intrinsics/gen/ignore/d91a2f.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+intrinsics/gen/ignore/d91a2f.wgsl:28:3 warning: use of deprecated intrinsic
+ ignore(1.0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void ignore_d91a2f() {
+ 1.0f;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_d91a2f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_d91a2f() {
+ 1.0f;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_d91a2f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_d91a2f() {
+ 1.0f;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_d91a2f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/e0187b.wgsl.expected.glsl b/test/intrinsics/gen/ignore/e0187b.wgsl.expected.glsl
new file mode 100644
index 0000000..e209270
--- /dev/null
+++ b/test/intrinsics/gen/ignore/e0187b.wgsl.expected.glsl
@@ -0,0 +1,81 @@
+intrinsics/gen/ignore/e0187b.wgsl:29:3 warning: use of deprecated intrinsic
+ ignore(arg_0);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void ignore_e0187b() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_e0187b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void ignore_e0187b() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_e0187b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void ignore_e0187b() {
+ arg_0;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_e0187b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
new file mode 100644
index 0000000..91a8f8d
--- /dev/null
+++ b/test/intrinsics/gen/ignore/f414a6.wgsl.expected.glsl
@@ -0,0 +1,75 @@
+intrinsics/gen/ignore/f414a6.wgsl:28:3 warning: use of deprecated intrinsic
+ ignore(bool());
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void ignore_f414a6() {
+ false;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ignore_f414a6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_f414a6() {
+ false;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ignore_f414a6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ignore_f414a6() {
+ false;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ignore_f414a6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
new file mode 100644
index 0000000..e73db6b
--- /dev/null
+++ b/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_84407e() {
+ float res = rsqrt(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ inverseSqrt_84407e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_84407e() {
+ float res = rsqrt(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ inverseSqrt_84407e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_84407e() {
+ float res = rsqrt(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ inverseSqrt_84407e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
new file mode 100644
index 0000000..20a6562
--- /dev/null
+++ b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_8f2bd2() {
+ vec2 res = rsqrt(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ inverseSqrt_8f2bd2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_8f2bd2() {
+ vec2 res = rsqrt(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ inverseSqrt_8f2bd2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_8f2bd2() {
+ vec2 res = rsqrt(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ inverseSqrt_8f2bd2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
new file mode 100644
index 0000000..6e2818a
--- /dev/null
+++ b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_b197b1() {
+ vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ inverseSqrt_b197b1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_b197b1() {
+ vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ inverseSqrt_b197b1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_b197b1() {
+ vec3 res = rsqrt(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ inverseSqrt_b197b1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
new file mode 100644
index 0000000..ab3fead
--- /dev/null
+++ b/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_c22347() {
+ vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ inverseSqrt_c22347();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_c22347() {
+ vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ inverseSqrt_c22347();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void inverseSqrt_c22347() {
+ vec4 res = rsqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ inverseSqrt_c22347();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'rsqrt' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
new file mode 100644
index 0000000..74f2374
--- /dev/null
+++ b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void isFinite_34d32b() {
+ bvec2 res = isfinite(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isFinite_34d32b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_34d32b() {
+ bvec2 res = isfinite(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isFinite_34d32b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_34d32b() {
+ bvec2 res = isfinite(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isFinite_34d32b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
new file mode 100644
index 0000000..ade322a
--- /dev/null
+++ b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void isFinite_426f9f() {
+ bool res = isfinite(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isFinite_426f9f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_426f9f() {
+ bool res = isfinite(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isFinite_426f9f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_426f9f() {
+ bool res = isfinite(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isFinite_426f9f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
new file mode 100644
index 0000000..9fedc49
--- /dev/null
+++ b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void isFinite_8a23ad() {
+ bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isFinite_8a23ad();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_8a23ad() {
+ bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isFinite_8a23ad();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_8a23ad() {
+ bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isFinite_8a23ad();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
new file mode 100644
index 0000000..5629d2b
--- /dev/null
+++ b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void isFinite_f31987() {
+ bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isFinite_f31987();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_f31987() {
+ bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isFinite_f31987();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_f31987() {
+ bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isFinite_f31987();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
new file mode 100644
index 0000000..42c33b6
--- /dev/null
+++ b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isInf_666f2a() {
+ bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isInf_666f2a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_666f2a() {
+ bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isInf_666f2a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_666f2a() {
+ bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isInf_666f2a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
new file mode 100644
index 0000000..7aee66b
--- /dev/null
+++ b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isInf_7bd98f() {
+ bool res = isinf(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isInf_7bd98f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_7bd98f() {
+ bool res = isinf(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isInf_7bd98f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_7bd98f() {
+ bool res = isinf(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isInf_7bd98f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
new file mode 100644
index 0000000..8cc9c15
--- /dev/null
+++ b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isInf_7e81b5() {
+ bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isInf_7e81b5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_7e81b5() {
+ bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isInf_7e81b5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_7e81b5() {
+ bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isInf_7e81b5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
new file mode 100644
index 0000000..885f145
--- /dev/null
+++ b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isInf_a46d6f() {
+ bvec2 res = isinf(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isInf_a46d6f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_a46d6f() {
+ bvec2 res = isinf(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isInf_a46d6f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isInf_a46d6f() {
+ bvec2 res = isinf(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isInf_a46d6f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
new file mode 100644
index 0000000..dc203d66
--- /dev/null
+++ b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isNan_1280ab() {
+ bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNan_1280ab();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_1280ab() {
+ bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNan_1280ab();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_1280ab() {
+ bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNan_1280ab();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
new file mode 100644
index 0000000..f8b1bb8
--- /dev/null
+++ b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isNan_4d280d() {
+ bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNan_4d280d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_4d280d() {
+ bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNan_4d280d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_4d280d() {
+ bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNan_4d280d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
new file mode 100644
index 0000000..827aee7f
--- /dev/null
+++ b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isNan_67ecd3() {
+ bvec2 res = isnan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNan_67ecd3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_67ecd3() {
+ bvec2 res = isnan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNan_67ecd3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_67ecd3() {
+ bvec2 res = isnan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNan_67ecd3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
new file mode 100644
index 0000000..0b9f0c6
--- /dev/null
+++ b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void isNan_e4978e() {
+ bool res = isnan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNan_e4978e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_e4978e() {
+ bool res = isnan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNan_e4978e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void isNan_e4978e() {
+ bool res = isnan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNan_e4978e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
new file mode 100644
index 0000000..0b2c4b0
--- /dev/null
+++ b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+ uint4 exponent = asuint(param_0) & 0x7f80000;
+ uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_863dcd() {
+ bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNormal_863dcd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+ uint4 exponent = asuint(param_0) & 0x7f80000;
+ uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_863dcd() {
+ bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNormal_863dcd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+ uint4 exponent = asuint(param_0) & 0x7f80000;
+ uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_863dcd() {
+ bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNormal_863dcd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
new file mode 100644
index 0000000..31418fa
--- /dev/null
+++ b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+bvec2 tint_isNormal(vec2 param_0) {
+ uint2 exponent = asuint(param_0) & 0x7f80000;
+ uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_b00ab1() {
+ bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNormal_b00ab1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec2 tint_isNormal(vec2 param_0) {
+ uint2 exponent = asuint(param_0) & 0x7f80000;
+ uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_b00ab1() {
+ bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNormal_b00ab1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec2 tint_isNormal(vec2 param_0) {
+ uint2 exponent = asuint(param_0) & 0x7f80000;
+ uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_b00ab1() {
+ bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNormal_b00ab1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
new file mode 100644
index 0000000..f631e5d
--- /dev/null
+++ b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+bvec3 tint_isNormal(vec3 param_0) {
+ uint3 exponent = asuint(param_0) & 0x7f80000;
+ uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_c286b7() {
+ bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNormal_c286b7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint3' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec3 tint_isNormal(vec3 param_0) {
+ uint3 exponent = asuint(param_0) & 0x7f80000;
+ uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_c286b7() {
+ bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNormal_c286b7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint3' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec3 tint_isNormal(vec3 param_0) {
+ uint3 exponent = asuint(param_0) & 0x7f80000;
+ uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_c286b7() {
+ bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNormal_c286b7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint3' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
new file mode 100644
index 0000000..972583a
--- /dev/null
+++ b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
@@ -0,0 +1,118 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+bool tint_isNormal(float param_0) {
+ uint exponent = asuint(param_0) & 0x7f80000;
+ uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_c6e880() {
+ bool res = tint_isNormal(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ isNormal_c6e880();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bool tint_isNormal(float param_0) {
+ uint exponent = asuint(param_0) & 0x7f80000;
+ uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_c6e880() {
+ bool res = tint_isNormal(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ isNormal_c6e880();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bool tint_isNormal(float param_0) {
+ uint exponent = asuint(param_0) & 0x7f80000;
+ uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+void isNormal_c6e880() {
+ bool res = tint_isNormal(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ isNormal_c6e880();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
new file mode 100644
index 0000000..6be4130
--- /dev/null
+++ b/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ldexp_a31cdc() {
+ vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ldexp_a31cdc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_a31cdc() {
+ vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ldexp_a31cdc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_a31cdc() {
+ vec3 res = ldexp(vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ldexp_a31cdc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
new file mode 100644
index 0000000..3f863c5
--- /dev/null
+++ b/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ldexp_abd718() {
+ vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ldexp_abd718();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_abd718() {
+ vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ldexp_abd718();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_abd718() {
+ vec2 res = ldexp(vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ldexp_abd718();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
new file mode 100644
index 0000000..fa29694
--- /dev/null
+++ b/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ldexp_cc9cde() {
+ vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ldexp_cc9cde();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_cc9cde() {
+ vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ldexp_cc9cde();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_cc9cde() {
+ vec4 res = ldexp(vec4(0.0f, 0.0f, 0.0f, 0.0f), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ldexp_cc9cde();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
new file mode 100644
index 0000000..9bb389d
--- /dev/null
+++ b/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void ldexp_db8b49() {
+ float res = ldexp(1.0f, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ ldexp_db8b49();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_db8b49() {
+ float res = ldexp(1.0f, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ ldexp_db8b49();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void ldexp_db8b49() {
+ float res = ldexp(1.0f, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ ldexp_db8b49();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.glsl b/test/intrinsics/gen/length/056071.wgsl.expected.glsl
new file mode 100644
index 0000000..433a775
--- /dev/null
+++ b/test/intrinsics/gen/length/056071.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void length_056071() {
+ float res = length(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ length_056071();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_056071() {
+ float res = length(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ length_056071();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_056071() {
+ float res = length(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ length_056071();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.glsl b/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
new file mode 100644
index 0000000..a5300f5
--- /dev/null
+++ b/test/intrinsics/gen/length/602a17.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void length_602a17() {
+ float res = length(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ length_602a17();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_602a17() {
+ float res = length(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ length_602a17();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_602a17() {
+ float res = length(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ length_602a17();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl b/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
new file mode 100644
index 0000000..6e7979e
--- /dev/null
+++ b/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void length_afde8b() {
+ float res = length(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ length_afde8b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_afde8b() {
+ float res = length(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ length_afde8b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_afde8b() {
+ float res = length(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ length_afde8b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.glsl b/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
new file mode 100644
index 0000000..8b74be8
--- /dev/null
+++ b/test/intrinsics/gen/length/becebf.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void length_becebf() {
+ float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ length_becebf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_becebf() {
+ float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ length_becebf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void length_becebf() {
+ float res = length(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ length_becebf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl b/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
new file mode 100644
index 0000000..f312339
--- /dev/null
+++ b/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log_3da25a() {
+ vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log_3da25a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_3da25a() {
+ vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log_3da25a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_3da25a() {
+ vec4 res = log(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log_3da25a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl b/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
new file mode 100644
index 0000000..19b3e42
--- /dev/null
+++ b/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log_7114a6() {
+ float res = log(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log_7114a6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_7114a6() {
+ float res = log(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log_7114a6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_7114a6() {
+ float res = log(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log_7114a6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl b/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
new file mode 100644
index 0000000..2181f22
--- /dev/null
+++ b/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log_b2ce28() {
+ vec2 res = log(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log_b2ce28();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_b2ce28() {
+ vec2 res = log(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log_b2ce28();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_b2ce28() {
+ vec2 res = log(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log_b2ce28();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl b/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
new file mode 100644
index 0000000..a75bf17
--- /dev/null
+++ b/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log_f4c570() {
+ vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log_f4c570();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_f4c570() {
+ vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log_f4c570();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log_f4c570() {
+ vec3 res = log(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log_f4c570();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl b/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
new file mode 100644
index 0000000..e3a12d7
--- /dev/null
+++ b/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log2_4036ed() {
+ float res = log2(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log2_4036ed();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_4036ed() {
+ float res = log2(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log2_4036ed();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_4036ed() {
+ float res = log2(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log2_4036ed();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.glsl b/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
new file mode 100644
index 0000000..f1d25b7
--- /dev/null
+++ b/test/intrinsics/gen/log2/902988.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log2_902988() {
+ vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log2_902988();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_902988() {
+ vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log2_902988();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_902988() {
+ vec4 res = log2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log2_902988();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl b/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
new file mode 100644
index 0000000..2785876
--- /dev/null
+++ b/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log2_adb233() {
+ vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log2_adb233();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_adb233() {
+ vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log2_adb233();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_adb233() {
+ vec3 res = log2(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log2_adb233();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl b/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
new file mode 100644
index 0000000..105fc9e
--- /dev/null
+++ b/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void log2_aea659() {
+ vec2 res = log2(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ log2_aea659();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_aea659() {
+ vec2 res = log2(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ log2_aea659();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void log2_aea659() {
+ vec2 res = log2(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ log2_aea659();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl b/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
new file mode 100644
index 0000000..6462db5
--- /dev/null
+++ b/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_0c0aae() {
+ uint res = max(1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_0c0aae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_0c0aae() {
+ uint res = max(1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_0c0aae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_0c0aae() {
+ uint res = max(1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_0c0aae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl b/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
new file mode 100644
index 0000000..81b1a2c
--- /dev/null
+++ b/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_25eafe() {
+ ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_25eafe();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_25eafe() {
+ ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_25eafe();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_25eafe() {
+ ivec3 res = max(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_25eafe();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.glsl b/test/intrinsics/gen/max/320815.wgsl.expected.glsl
new file mode 100644
index 0000000..33a176b
--- /dev/null
+++ b/test/intrinsics/gen/max/320815.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_320815() {
+ uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_320815();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_320815() {
+ uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_320815();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_320815() {
+ uvec2 res = max(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_320815();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl b/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
new file mode 100644
index 0000000..e0a701f
--- /dev/null
+++ b/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_44a39d() {
+ float res = max(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_44a39d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_44a39d() {
+ float res = max(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_44a39d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_44a39d() {
+ float res = max(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_44a39d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.glsl b/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
new file mode 100644
index 0000000..f9ec53e
--- /dev/null
+++ b/test/intrinsics/gen/max/453e04.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_453e04() {
+ uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_453e04();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_453e04() {
+ uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_453e04();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_453e04() {
+ uvec4 res = max(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_453e04();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.glsl b/test/intrinsics/gen/max/462050.wgsl.expected.glsl
new file mode 100644
index 0000000..038fa12
--- /dev/null
+++ b/test/intrinsics/gen/max/462050.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_462050() {
+ vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_462050();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_462050() {
+ vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_462050();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_462050() {
+ vec2 res = max(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_462050();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl b/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
new file mode 100644
index 0000000..60b9131
--- /dev/null
+++ b/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_4883ac() {
+ vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_4883ac();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_4883ac() {
+ vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_4883ac();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_4883ac() {
+ vec3 res = max(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_4883ac();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl b/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
new file mode 100644
index 0000000..14fb911
--- /dev/null
+++ b/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_85e6bc() {
+ ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_85e6bc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_85e6bc() {
+ ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_85e6bc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_85e6bc() {
+ ivec4 res = max(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_85e6bc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.glsl b/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
new file mode 100644
index 0000000..d988e4f
--- /dev/null
+++ b/test/intrinsics/gen/max/a93419.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_a93419() {
+ vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_a93419();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_a93419() {
+ vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_a93419();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_a93419() {
+ vec4 res = max(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_a93419();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl b/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
new file mode 100644
index 0000000..5ac1a04
--- /dev/null
+++ b/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_b1b73a() {
+ uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_b1b73a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_b1b73a() {
+ uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_b1b73a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_b1b73a() {
+ uvec3 res = max(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_b1b73a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl b/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
new file mode 100644
index 0000000..78a41e4
--- /dev/null
+++ b/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_ce7c30() {
+ int res = max(1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_ce7c30();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_ce7c30() {
+ int res = max(1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_ce7c30();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_ce7c30() {
+ int res = max(1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_ce7c30();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl b/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
new file mode 100644
index 0000000..0df9fe1
--- /dev/null
+++ b/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void max_e8192f() {
+ ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ max_e8192f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_e8192f() {
+ ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ max_e8192f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void max_e8192f() {
+ ivec2 res = max(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ max_e8192f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl b/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
new file mode 100644
index 0000000..3681cac
--- /dev/null
+++ b/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_03c7e3() {
+ ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_03c7e3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_03c7e3() {
+ ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_03c7e3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_03c7e3() {
+ ivec2 res = min(ivec2(0, 0), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_03c7e3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl b/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
new file mode 100644
index 0000000..5f46503
--- /dev/null
+++ b/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_0dc614() {
+ uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_0dc614();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_0dc614() {
+ uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_0dc614();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_0dc614() {
+ uvec4 res = min(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_0dc614();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl b/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
new file mode 100644
index 0000000..4b50155
--- /dev/null
+++ b/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_3941e1() {
+ ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_3941e1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_3941e1() {
+ ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_3941e1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_3941e1() {
+ ivec4 res = min(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_3941e1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl b/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
new file mode 100644
index 0000000..6a12575
--- /dev/null
+++ b/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_46c5d3() {
+ uint res = min(1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_46c5d3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_46c5d3() {
+ uint res = min(1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_46c5d3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_46c5d3() {
+ uint res = min(1u, 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_46c5d3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl b/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
new file mode 100644
index 0000000..ccc288d
--- /dev/null
+++ b/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_82b28f() {
+ uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_82b28f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_82b28f() {
+ uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_82b28f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_82b28f() {
+ uvec2 res = min(uvec2(0u, 0u), uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_82b28f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl b/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
new file mode 100644
index 0000000..6c8ed16
--- /dev/null
+++ b/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_93cfc4() {
+ vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_93cfc4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_93cfc4() {
+ vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_93cfc4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_93cfc4() {
+ vec3 res = min(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_93cfc4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.glsl b/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
new file mode 100644
index 0000000..be1e651
--- /dev/null
+++ b/test/intrinsics/gen/min/a45171.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_a45171() {
+ ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_a45171();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_a45171() {
+ ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_a45171();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_a45171() {
+ ivec3 res = min(ivec3(0, 0, 0), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_a45171();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl b/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
new file mode 100644
index 0000000..e278388
--- /dev/null
+++ b/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_aa28ad() {
+ vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_aa28ad();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_aa28ad() {
+ vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_aa28ad();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_aa28ad() {
+ vec2 res = min(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_aa28ad();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.glsl b/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
new file mode 100644
index 0000000..fb6c905
--- /dev/null
+++ b/test/intrinsics/gen/min/af326d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_af326d() {
+ float res = min(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_af326d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_af326d() {
+ float res = min(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_af326d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_af326d() {
+ float res = min(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_af326d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl b/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
new file mode 100644
index 0000000..1497821
--- /dev/null
+++ b/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_c70bb7() {
+ uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_c70bb7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_c70bb7() {
+ uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_c70bb7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_c70bb7() {
+ uvec3 res = min(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_c70bb7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.glsl b/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
new file mode 100644
index 0000000..33890b6
--- /dev/null
+++ b/test/intrinsics/gen/min/c73147.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_c73147() {
+ int res = min(1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_c73147();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_c73147() {
+ int res = min(1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_c73147();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_c73147() {
+ int res = min(1, 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_c73147();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl b/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
new file mode 100644
index 0000000..d592973
--- /dev/null
+++ b/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void min_c76fa6() {
+ vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ min_c76fa6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_c76fa6() {
+ vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ min_c76fa6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void min_c76fa6() {
+ vec4 res = min(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ min_c76fa6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
new file mode 100644
index 0000000..7655fec
--- /dev/null
+++ b/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_0c8c33() {
+ vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_0c8c33();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_0c8c33() {
+ vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_0c8c33();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_0c8c33() {
+ vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_0c8c33();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
new file mode 100644
index 0000000..53f8f7e
--- /dev/null
+++ b/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_1faeb1() {
+ vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_1faeb1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_1faeb1() {
+ vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_1faeb1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_1faeb1() {
+ vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_1faeb1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl b/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
new file mode 100644
index 0000000..a51405d
--- /dev/null
+++ b/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_2fadab() {
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_2fadab();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_2fadab() {
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_2fadab();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_2fadab() {
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_2fadab();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.glsl b/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
new file mode 100644
index 0000000..fcfcee9
--- /dev/null
+++ b/test/intrinsics/gen/mix/315264.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_315264() {
+ vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_315264();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_315264() {
+ vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_315264();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_315264() {
+ vec3 res = mix(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_315264();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
new file mode 100644
index 0000000..9aadb86
--- /dev/null
+++ b/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_4f0b5e() {
+ float res = mix(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_4f0b5e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_4f0b5e() {
+ float res = mix(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_4f0b5e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_4f0b5e() {
+ float res = mix(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_4f0b5e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
new file mode 100644
index 0000000..a0f4d63
--- /dev/null
+++ b/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_6f8adc() {
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_6f8adc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_6f8adc() {
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_6f8adc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_6f8adc() {
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_6f8adc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl b/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
new file mode 100644
index 0000000..440a8d8
--- /dev/null
+++ b/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void mix_c37ede() {
+ vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ mix_c37ede();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_c37ede() {
+ vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ mix_c37ede();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void mix_c37ede() {
+ vec4 res = mix(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ mix_c37ede();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/modf/2199f1.wgsl.expected.glsl b/test/intrinsics/gen/modf/2199f1.wgsl.expected.glsl
new file mode 100644
index 0000000..8b170ac
--- /dev/null
+++ b/test/intrinsics/gen/modf/2199f1.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec3 {
+ vec3 fract;
+ vec3 whole;
+};
+modf_result_vec3 tint_modf(vec3 param_0) {
+ float3 whole;
+ float3 fract = modf(param_0, whole);
+ modf_result_vec3 result = {fract, whole};
+ return result;
+}
+
+
+void modf_2199f1() {
+ modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ modf_2199f1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float3' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec3 {
+ vec3 fract;
+ vec3 whole;
+};
+modf_result_vec3 tint_modf(vec3 param_0) {
+ float3 whole;
+ float3 fract = modf(param_0, whole);
+ modf_result_vec3 result = {fract, whole};
+ return result;
+}
+
+
+void modf_2199f1() {
+ modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ modf_2199f1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float3' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec3 {
+ vec3 fract;
+ vec3 whole;
+};
+modf_result_vec3 tint_modf(vec3 param_0) {
+ float3 whole;
+ float3 fract = modf(param_0, whole);
+ modf_result_vec3 result = {fract, whole};
+ return result;
+}
+
+
+void modf_2199f1() {
+ modf_result_vec3 res = tint_modf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ modf_2199f1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float3' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/modf/684d46.wgsl.expected.glsl b/test/intrinsics/gen/modf/684d46.wgsl.expected.glsl
new file mode 100644
index 0000000..1bdfd4f
--- /dev/null
+++ b/test/intrinsics/gen/modf/684d46.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct modf_result {
+ float fract;
+ float whole;
+};
+modf_result tint_modf(float param_0) {
+ float whole;
+ float fract = modf(param_0, whole);
+ modf_result result = {fract, whole};
+ return result;
+}
+
+
+void modf_684d46() {
+ modf_result res = tint_modf(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ modf_684d46();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result {
+ float fract;
+ float whole;
+};
+modf_result tint_modf(float param_0) {
+ float whole;
+ float fract = modf(param_0, whole);
+ modf_result result = {fract, whole};
+ return result;
+}
+
+
+void modf_684d46() {
+ modf_result res = tint_modf(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ modf_684d46();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result {
+ float fract;
+ float whole;
+};
+modf_result tint_modf(float param_0) {
+ float whole;
+ float fract = modf(param_0, whole);
+ modf_result result = {fract, whole};
+ return result;
+}
+
+
+void modf_684d46() {
+ modf_result res = tint_modf(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ modf_684d46();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/modf/9b44a9.wgsl.expected.glsl b/test/intrinsics/gen/modf/9b44a9.wgsl.expected.glsl
new file mode 100644
index 0000000..b4bfa59
--- /dev/null
+++ b/test/intrinsics/gen/modf/9b44a9.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec4 {
+ vec4 fract;
+ vec4 whole;
+};
+modf_result_vec4 tint_modf(vec4 param_0) {
+ float4 whole;
+ float4 fract = modf(param_0, whole);
+ modf_result_vec4 result = {fract, whole};
+ return result;
+}
+
+
+void modf_9b44a9() {
+ modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ modf_9b44a9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float4' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec4 {
+ vec4 fract;
+ vec4 whole;
+};
+modf_result_vec4 tint_modf(vec4 param_0) {
+ float4 whole;
+ float4 fract = modf(param_0, whole);
+ modf_result_vec4 result = {fract, whole};
+ return result;
+}
+
+
+void modf_9b44a9() {
+ modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ modf_9b44a9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float4' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec4 {
+ vec4 fract;
+ vec4 whole;
+};
+modf_result_vec4 tint_modf(vec4 param_0) {
+ float4 whole;
+ float4 fract = modf(param_0, whole);
+ modf_result_vec4 result = {fract, whole};
+ return result;
+}
+
+
+void modf_9b44a9() {
+ modf_result_vec4 res = tint_modf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ modf_9b44a9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float4' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/modf/c87851.wgsl.expected.glsl b/test/intrinsics/gen/modf/c87851.wgsl.expected.glsl
new file mode 100644
index 0000000..7ac2097
--- /dev/null
+++ b/test/intrinsics/gen/modf/c87851.wgsl.expected.glsl
@@ -0,0 +1,130 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec2 {
+ vec2 fract;
+ vec2 whole;
+};
+modf_result_vec2 tint_modf(vec2 param_0) {
+ float2 whole;
+ float2 fract = modf(param_0, whole);
+ modf_result_vec2 result = {fract, whole};
+ return result;
+}
+
+
+void modf_c87851() {
+ modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ modf_c87851();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float2' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec2 {
+ vec2 fract;
+ vec2 whole;
+};
+modf_result_vec2 tint_modf(vec2 param_0) {
+ float2 whole;
+ float2 fract = modf(param_0, whole);
+ modf_result_vec2 result = {fract, whole};
+ return result;
+}
+
+
+void modf_c87851() {
+ modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ modf_c87851();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float2' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+struct modf_result_vec2 {
+ vec2 fract;
+ vec2 whole;
+};
+modf_result_vec2 tint_modf(vec2 param_0) {
+ float2 whole;
+ float2 fract = modf(param_0, whole);
+ modf_result_vec2 result = {fract, whole};
+ return result;
+}
+
+
+void modf_c87851() {
+ modf_result_vec2 res = tint_modf(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ modf_c87851();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'float2' : undeclared identifier
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
new file mode 100644
index 0000000..39ea34c
--- /dev/null
+++ b/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void normalize_64d8c0() {
+ vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ normalize_64d8c0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void normalize_64d8c0() {
+ vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ normalize_64d8c0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void normalize_64d8c0() {
+ vec3 res = normalize(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ normalize_64d8c0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
new file mode 100644
index 0000000..717b70b
--- /dev/null
+++ b/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void normalize_9a0aab() {
+ vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ normalize_9a0aab();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void normalize_9a0aab() {
+ vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ normalize_9a0aab();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void normalize_9a0aab() {
+ vec4 res = normalize(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ normalize_9a0aab();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
new file mode 100644
index 0000000..7159f7f
--- /dev/null
+++ b/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void normalize_fc2ef1() {
+ vec2 res = normalize(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ normalize_fc2ef1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void normalize_fc2ef1() {
+ vec2 res = normalize(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ normalize_fc2ef1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void normalize_fc2ef1() {
+ vec2 res = normalize(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ normalize_fc2ef1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
new file mode 100644
index 0000000..b34c723
--- /dev/null
+++ b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -0,0 +1,112 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16float(vec2 param_0) {
+ uint2 i = f32tof16(param_0);
+ return i.x | (i.y << 16);
+}
+
+
+void pack2x16float_0e97b3() {
+ uint res = tint_pack2x16float(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pack2x16float_0e97b3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16float(vec2 param_0) {
+ uint2 i = f32tof16(param_0);
+ return i.x | (i.y << 16);
+}
+
+
+void pack2x16float_0e97b3() {
+ uint res = tint_pack2x16float(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pack2x16float_0e97b3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16float(vec2 param_0) {
+ uint2 i = f32tof16(param_0);
+ return i.x | (i.y << 16);
+}
+
+
+void pack2x16float_0e97b3() {
+ uint res = tint_pack2x16float(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pack2x16float_0e97b3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
new file mode 100644
index 0000000..dbc5baa
--- /dev/null
+++ b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -0,0 +1,112 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16snorm(vec2 param_0) {
+ int2 i = int2(round(clamp(param_0, -1.0, 1.0) * 32767.0)) & 0xffff;
+ return asuint(i.x | i.y << 16);
+}
+
+
+void pack2x16snorm_6c169b() {
+ uint res = tint_pack2x16snorm(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pack2x16snorm_6c169b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'int2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16snorm(vec2 param_0) {
+ int2 i = int2(round(clamp(param_0, -1.0, 1.0) * 32767.0)) & 0xffff;
+ return asuint(i.x | i.y << 16);
+}
+
+
+void pack2x16snorm_6c169b() {
+ uint res = tint_pack2x16snorm(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pack2x16snorm_6c169b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'int2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16snorm(vec2 param_0) {
+ int2 i = int2(round(clamp(param_0, -1.0, 1.0) * 32767.0)) & 0xffff;
+ return asuint(i.x | i.y << 16);
+}
+
+
+void pack2x16snorm_6c169b() {
+ uint res = tint_pack2x16snorm(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pack2x16snorm_6c169b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'int2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
new file mode 100644
index 0000000..957c998
--- /dev/null
+++ b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -0,0 +1,112 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16unorm(vec2 param_0) {
+ uint2 i = uint2(round(clamp(param_0, 0.0, 1.0) * 65535.0));
+ return (i.x | i.y << 16);
+}
+
+
+void pack2x16unorm_0f08e4() {
+ uint res = tint_pack2x16unorm(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pack2x16unorm_0f08e4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16unorm(vec2 param_0) {
+ uint2 i = uint2(round(clamp(param_0, 0.0, 1.0) * 65535.0));
+ return (i.x | i.y << 16);
+}
+
+
+void pack2x16unorm_0f08e4() {
+ uint res = tint_pack2x16unorm(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pack2x16unorm_0f08e4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack2x16unorm(vec2 param_0) {
+ uint2 i = uint2(round(clamp(param_0, 0.0, 1.0) * 65535.0));
+ return (i.x | i.y << 16);
+}
+
+
+void pack2x16unorm_0f08e4() {
+ uint res = tint_pack2x16unorm(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pack2x16unorm_0f08e4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
new file mode 100644
index 0000000..665b0da
--- /dev/null
+++ b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -0,0 +1,112 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack4x8snorm(vec4 param_0) {
+ int4 i = int4(round(clamp(param_0, -1.0, 1.0) * 127.0)) & 0xff;
+ return asuint(i.x | i.y << 8 | i.z << 16 | i.w << 24);
+}
+
+
+void pack4x8snorm_4d22e7() {
+ uint res = tint_pack4x8snorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pack4x8snorm_4d22e7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'int4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack4x8snorm(vec4 param_0) {
+ int4 i = int4(round(clamp(param_0, -1.0, 1.0) * 127.0)) & 0xff;
+ return asuint(i.x | i.y << 8 | i.z << 16 | i.w << 24);
+}
+
+
+void pack4x8snorm_4d22e7() {
+ uint res = tint_pack4x8snorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pack4x8snorm_4d22e7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'int4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack4x8snorm(vec4 param_0) {
+ int4 i = int4(round(clamp(param_0, -1.0, 1.0) * 127.0)) & 0xff;
+ return asuint(i.x | i.y << 8 | i.z << 16 | i.w << 24);
+}
+
+
+void pack4x8snorm_4d22e7() {
+ uint res = tint_pack4x8snorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pack4x8snorm_4d22e7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'int4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
new file mode 100644
index 0000000..e2bb77f
--- /dev/null
+++ b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -0,0 +1,112 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack4x8unorm(vec4 param_0) {
+ uint4 i = uint4(round(clamp(param_0, 0.0, 1.0) * 255.0));
+ return (i.x | i.y << 8 | i.z << 16 | i.w << 24);
+}
+
+
+void pack4x8unorm_95c456() {
+ uint res = tint_pack4x8unorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pack4x8unorm_95c456();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack4x8unorm(vec4 param_0) {
+ uint4 i = uint4(round(clamp(param_0, 0.0, 1.0) * 255.0));
+ return (i.x | i.y << 8 | i.z << 16 | i.w << 24);
+}
+
+
+void pack4x8unorm_95c456() {
+ uint res = tint_pack4x8unorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pack4x8unorm_95c456();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uint tint_pack4x8unorm(vec4 param_0) {
+ uint4 i = uint4(round(clamp(param_0, 0.0, 1.0) * 255.0));
+ return (i.x | i.y << 8 | i.z << 16 | i.w << 24);
+}
+
+
+void pack4x8unorm_95c456() {
+ uint res = tint_pack4x8unorm(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pack4x8unorm_95c456();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl b/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
new file mode 100644
index 0000000..c50c6af
--- /dev/null
+++ b/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void pow_04a908() {
+ vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pow_04a908();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_04a908() {
+ vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pow_04a908();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_04a908() {
+ vec4 res = pow(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pow_04a908();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl b/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
new file mode 100644
index 0000000..f8745f4
--- /dev/null
+++ b/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void pow_46e029() {
+ float res = pow(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pow_46e029();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_46e029() {
+ float res = pow(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pow_46e029();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_46e029() {
+ float res = pow(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pow_46e029();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
new file mode 100644
index 0000000..5d76a94
--- /dev/null
+++ b/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void pow_4a46c9() {
+ vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pow_4a46c9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_4a46c9() {
+ vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pow_4a46c9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_4a46c9() {
+ vec3 res = pow(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pow_4a46c9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
new file mode 100644
index 0000000..5e2fb98
--- /dev/null
+++ b/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void pow_e60ea5() {
+ vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ pow_e60ea5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_e60ea5() {
+ vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ pow_e60ea5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void pow_e60ea5() {
+ vec2 res = pow(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ pow_e60ea5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl b/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
new file mode 100644
index 0000000..50be510
--- /dev/null
+++ b/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void reflect_05357e() {
+ vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reflect_05357e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void reflect_05357e() {
+ vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reflect_05357e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void reflect_05357e() {
+ vec4 res = reflect(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reflect_05357e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
new file mode 100644
index 0000000..91aec93
--- /dev/null
+++ b/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void reflect_b61e10() {
+ vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reflect_b61e10();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void reflect_b61e10() {
+ vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reflect_b61e10();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void reflect_b61e10() {
+ vec2 res = reflect(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reflect_b61e10();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
new file mode 100644
index 0000000..a9cdf93
--- /dev/null
+++ b/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void reflect_f47fdb() {
+ vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reflect_f47fdb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void reflect_f47fdb() {
+ vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reflect_f47fdb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void reflect_f47fdb() {
+ vec3 res = reflect(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reflect_f47fdb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
new file mode 100644
index 0000000..e60675e
--- /dev/null
+++ b/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void refract_7e02e6() {
+ vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ refract_7e02e6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void refract_7e02e6() {
+ vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ refract_7e02e6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void refract_7e02e6() {
+ vec4 res = refract(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ refract_7e02e6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
new file mode 100644
index 0000000..2561c52
--- /dev/null
+++ b/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void refract_cbc1d2() {
+ vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ refract_cbc1d2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void refract_cbc1d2() {
+ vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ refract_cbc1d2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void refract_cbc1d2() {
+ vec3 res = refract(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ refract_cbc1d2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl b/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
new file mode 100644
index 0000000..01765ce
--- /dev/null
+++ b/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void refract_cd905f() {
+ vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ refract_cd905f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void refract_cd905f() {
+ vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ refract_cd905f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void refract_cd905f() {
+ vec2 res = refract(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ refract_cd905f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
new file mode 100644
index 0000000..d62daf3
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_222177() {
+ ivec2 res = reversebits(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_222177();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_222177() {
+ ivec2 res = reversebits(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_222177();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_222177() {
+ ivec2 res = reversebits(ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_222177();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
new file mode 100644
index 0000000..4beb522
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_35fea9() {
+ uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_35fea9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_35fea9() {
+ uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_35fea9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_35fea9() {
+ uvec4 res = reversebits(uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_35fea9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
new file mode 100644
index 0000000..85ac5da
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_4dbd6f() {
+ ivec4 res = reversebits(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_4dbd6f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_4dbd6f() {
+ ivec4 res = reversebits(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_4dbd6f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_4dbd6f() {
+ ivec4 res = reversebits(ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_4dbd6f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
new file mode 100644
index 0000000..7109502
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_7c4269() {
+ int res = reversebits(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_7c4269();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_7c4269() {
+ int res = reversebits(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_7c4269();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_7c4269() {
+ int res = reversebits(1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_7c4269();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
new file mode 100644
index 0000000..67c7af8
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_a6ccd4() {
+ uvec3 res = reversebits(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_a6ccd4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_a6ccd4() {
+ uvec3 res = reversebits(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_a6ccd4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_a6ccd4() {
+ uvec3 res = reversebits(uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_a6ccd4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
new file mode 100644
index 0000000..a25b4a4
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_c21bc1() {
+ ivec3 res = reversebits(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_c21bc1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_c21bc1() {
+ ivec3 res = reversebits(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_c21bc1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_c21bc1() {
+ ivec3 res = reversebits(ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_c21bc1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
new file mode 100644
index 0000000..e314fbb
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_e1f4c1() {
+ uvec2 res = reversebits(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_e1f4c1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_e1f4c1() {
+ uvec2 res = reversebits(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_e1f4c1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_e1f4c1() {
+ uvec2 res = reversebits(uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_e1f4c1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
new file mode 100644
index 0000000..35ab11c
--- /dev/null
+++ b/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
@@ -0,0 +1,97 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_e31adf() {
+ uint res = reversebits(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ reverseBits_e31adf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_e31adf() {
+ uint res = reversebits(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ reverseBits_e31adf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp mediump uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void reverseBits_e31adf() {
+ uint res = reversebits(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ reverseBits_e31adf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'reversebits' : no matching overloaded function found
+ERROR: 0:5: '=' : cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl b/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
new file mode 100644
index 0000000..bd1e3cc
--- /dev/null
+++ b/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void round_106c0b() {
+ vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ round_106c0b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_106c0b() {
+ vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ round_106c0b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_106c0b() {
+ vec4 res = round(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ round_106c0b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl b/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
new file mode 100644
index 0000000..28eb74c
--- /dev/null
+++ b/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void round_1c7897() {
+ vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ round_1c7897();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_1c7897() {
+ vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ round_1c7897();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_1c7897() {
+ vec3 res = round(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ round_1c7897();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl b/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
new file mode 100644
index 0000000..d9b15b5
--- /dev/null
+++ b/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void round_52c84d() {
+ vec2 res = round(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ round_52c84d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_52c84d() {
+ vec2 res = round(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ round_52c84d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_52c84d() {
+ vec2 res = round(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ round_52c84d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl b/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
new file mode 100644
index 0000000..df807da
--- /dev/null
+++ b/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void round_9edc38() {
+ float res = round(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ round_9edc38();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_9edc38() {
+ float res = round(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ round_9edc38();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void round_9edc38() {
+ float res = round(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ round_9edc38();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.glsl b/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
new file mode 100644
index 0000000..347a0b7
--- /dev/null
+++ b/test/intrinsics/gen/select/00b848.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_00b848() {
+ ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_00b848();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_00b848() {
+ ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_00b848();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_00b848() {
+ ivec2 res = (bvec2(false, false) ? ivec2(0, 0) : ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_00b848();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl b/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
new file mode 100644
index 0000000..f31d541
--- /dev/null
+++ b/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_01e2cd() {
+ ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_01e2cd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_01e2cd() {
+ ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_01e2cd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_01e2cd() {
+ ivec3 res = (bvec3(false, false, false) ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_01e2cd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl b/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
new file mode 100644
index 0000000..0179924
--- /dev/null
+++ b/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_087ea4() {
+ uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_087ea4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_087ea4() {
+ uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_087ea4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_087ea4() {
+ uvec4 res = (false ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_087ea4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl b/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
new file mode 100644
index 0000000..00238d3
--- /dev/null
+++ b/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_1e960b() {
+ uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_1e960b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_1e960b() {
+ uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_1e960b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_1e960b() {
+ uvec2 res = (bvec2(false, false) ? uvec2(0u, 0u) : uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_1e960b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.glsl b/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
new file mode 100644
index 0000000..fce4b89
--- /dev/null
+++ b/test/intrinsics/gen/select/266aff.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_266aff() {
+ vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_266aff();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_266aff() {
+ vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_266aff();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_266aff() {
+ vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_266aff();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl b/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
new file mode 100644
index 0000000..09ac5f0
--- /dev/null
+++ b/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_28a27e() {
+ uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_28a27e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_28a27e() {
+ uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_28a27e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_28a27e() {
+ uvec3 res = (bvec3(false, false, false) ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_28a27e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl b/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
new file mode 100644
index 0000000..c1be4f7
--- /dev/null
+++ b/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_3c25ce() {
+ bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_3c25ce();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_3c25ce() {
+ bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_3c25ce();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_3c25ce() {
+ bvec3 res = (false ? bvec3(false, false, false) : bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_3c25ce();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.glsl b/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
new file mode 100644
index 0000000..e1fdb29
--- /dev/null
+++ b/test/intrinsics/gen/select/416e14.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_416e14() {
+ float res = (false ? 1.0f : 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_416e14();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_416e14() {
+ float res = (false ? 1.0f : 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_416e14();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_416e14() {
+ float res = (false ? 1.0f : 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_416e14();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.glsl b/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
new file mode 100644
index 0000000..3004e29
--- /dev/null
+++ b/test/intrinsics/gen/select/51b047.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_51b047() {
+ uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_51b047();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_51b047() {
+ uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_51b047();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_51b047() {
+ uvec2 res = (false ? uvec2(0u, 0u) : uvec2(0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_51b047();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.glsl b/test/intrinsics/gen/select/713567.wgsl.expected.glsl
new file mode 100644
index 0000000..2d7eb6d
--- /dev/null
+++ b/test/intrinsics/gen/select/713567.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_713567() {
+ vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_713567();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_713567() {
+ vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_713567();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_713567() {
+ vec4 res = (false ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_713567();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl b/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
new file mode 100644
index 0000000..df6fbf4
--- /dev/null
+++ b/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_78be5f() {
+ vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_78be5f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_78be5f() {
+ vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_78be5f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_78be5f() {
+ vec3 res = (false ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_78be5f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl b/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
new file mode 100644
index 0000000..9c5e012
--- /dev/null
+++ b/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_80a9a9() {
+ bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_80a9a9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_80a9a9() {
+ bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_80a9a9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_80a9a9() {
+ bvec3 res = (bvec3(false, false, false) ? bvec3(false, false, false) : bvec3(false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_80a9a9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl b/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
new file mode 100644
index 0000000..1821b3a
--- /dev/null
+++ b/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_8fa62c() {
+ ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_8fa62c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_8fa62c() {
+ ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_8fa62c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_8fa62c() {
+ ivec3 res = (false ? ivec3(0, 0, 0) : ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_8fa62c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.glsl b/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
new file mode 100644
index 0000000..8125ab2
--- /dev/null
+++ b/test/intrinsics/gen/select/99f883.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_99f883() {
+ uint res = (false ? 1u : 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_99f883();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_99f883() {
+ uint res = (false ? 1u : 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_99f883();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_99f883() {
+ uint res = (false ? 1u : 1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_99f883();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl b/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
new file mode 100644
index 0000000..52b9848
--- /dev/null
+++ b/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_a2860e() {
+ ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_a2860e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_a2860e() {
+ ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_a2860e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_a2860e() {
+ ivec4 res = (bvec4(false, false, false, false) ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_a2860e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl b/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
new file mode 100644
index 0000000..6e3aa0e
--- /dev/null
+++ b/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_ab069f() {
+ ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_ab069f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_ab069f() {
+ ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_ab069f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_ab069f() {
+ ivec4 res = (false ? ivec4(0, 0, 0, 0) : ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_ab069f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.glsl b/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
new file mode 100644
index 0000000..6d577be
--- /dev/null
+++ b/test/intrinsics/gen/select/b04721.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_b04721() {
+ uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_b04721();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_b04721() {
+ uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_b04721();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_b04721() {
+ uvec3 res = (false ? uvec3(0u, 0u, 0u) : uvec3(0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_b04721();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl b/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
new file mode 100644
index 0000000..c8d1747
--- /dev/null
+++ b/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_bb447f() {
+ ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_bb447f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_bb447f() {
+ ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_bb447f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_bb447f() {
+ ivec2 res = (false ? ivec2(0, 0) : ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_bb447f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl b/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
new file mode 100644
index 0000000..1723d39
--- /dev/null
+++ b/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_bb8aae() {
+ vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_bb8aae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_bb8aae() {
+ vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_bb8aae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_bb8aae() {
+ vec4 res = (bvec4(false, false, false, false) ? vec4(0.0f, 0.0f, 0.0f, 0.0f) : vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_bb8aae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl b/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
new file mode 100644
index 0000000..5d30a5d
--- /dev/null
+++ b/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_bf3d29() {
+ vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_bf3d29();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_bf3d29() {
+ vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_bf3d29();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_bf3d29() {
+ vec2 res = (false ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_bf3d29();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl b/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
new file mode 100644
index 0000000..b95f6ab
--- /dev/null
+++ b/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_c31f9e() {
+ bool res = (false ? false : false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_c31f9e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_c31f9e() {
+ bool res = (false ? false : false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_c31f9e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_c31f9e() {
+ bool res = (false ? false : false);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_c31f9e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl b/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
new file mode 100644
index 0000000..1275c19
--- /dev/null
+++ b/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_c41bd1() {
+ bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_c41bd1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_c41bd1() {
+ bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_c41bd1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_c41bd1() {
+ bvec4 res = (false ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_c41bd1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
new file mode 100644
index 0000000..926264c
--- /dev/null
+++ b/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_c4a4ef() {
+ uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_c4a4ef();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_c4a4ef() {
+ uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_c4a4ef();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_c4a4ef() {
+ uvec4 res = (bvec4(false, false, false, false) ? uvec4(0u, 0u, 0u, 0u) : uvec4(0u, 0u, 0u, 0u));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_c4a4ef();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl b/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
new file mode 100644
index 0000000..2149581
--- /dev/null
+++ b/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_cb9301() {
+ bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_cb9301();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_cb9301() {
+ bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_cb9301();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_cb9301() {
+ bvec2 res = (bvec2(false, false) ? bvec2(false, false) : bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_cb9301();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl b/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
new file mode 100644
index 0000000..9a62a71
--- /dev/null
+++ b/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_e3e028() {
+ bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_e3e028();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_e3e028() {
+ bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_e3e028();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_e3e028() {
+ bvec4 res = (bvec4(false, false, false, false) ? bvec4(false, false, false, false) : bvec4(false, false, false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_e3e028();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl b/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
new file mode 100644
index 0000000..3843641
--- /dev/null
+++ b/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
@@ -0,0 +1,94 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void select_ebfea2() {
+ vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_ebfea2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_ebfea2() {
+ vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_ebfea2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void select_ebfea2() {
+ vec3 res = (bvec3(false, false, false) ? vec3(0.0f, 0.0f, 0.0f) : vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_ebfea2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '' : boolean expression expected
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl b/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
new file mode 100644
index 0000000..1145b1e
--- /dev/null
+++ b/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_ed8a15() {
+ int res = (false ? 1 : 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_ed8a15();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_ed8a15() {
+ int res = (false ? 1 : 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_ed8a15();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_ed8a15() {
+ int res = (false ? 1 : 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_ed8a15();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl b/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
new file mode 100644
index 0000000..4fcd1db
--- /dev/null
+++ b/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void select_fb7e53() {
+ bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ select_fb7e53();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_fb7e53() {
+ bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ select_fb7e53();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void select_fb7e53() {
+ bvec2 res = (false ? bvec2(false, false) : bvec2(false, false));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ select_fb7e53();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.glsl b/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
new file mode 100644
index 0000000..a226002
--- /dev/null
+++ b/test/intrinsics/gen/sign/159665.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sign_159665() {
+ vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sign_159665();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_159665() {
+ vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sign_159665();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_159665() {
+ vec3 res = sign(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sign_159665();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl b/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
new file mode 100644
index 0000000..a2b8a3c
--- /dev/null
+++ b/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sign_b8f634() {
+ vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sign_b8f634();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_b8f634() {
+ vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sign_b8f634();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_b8f634() {
+ vec4 res = sign(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sign_b8f634();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl b/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
new file mode 100644
index 0000000..2085558
--- /dev/null
+++ b/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sign_d065d8() {
+ vec2 res = sign(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sign_d065d8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_d065d8() {
+ vec2 res = sign(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sign_d065d8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_d065d8() {
+ vec2 res = sign(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sign_d065d8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl b/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
new file mode 100644
index 0000000..9a999ef
--- /dev/null
+++ b/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sign_dd790e() {
+ float res = sign(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sign_dd790e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_dd790e() {
+ float res = sign(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sign_dd790e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sign_dd790e() {
+ float res = sign(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sign_dd790e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl b/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
new file mode 100644
index 0000000..0ab76db
--- /dev/null
+++ b/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sin_01f241() {
+ vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sin_01f241();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_01f241() {
+ vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sin_01f241();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_01f241() {
+ vec3 res = sin(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sin_01f241();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl b/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
new file mode 100644
index 0000000..0f3d911
--- /dev/null
+++ b/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sin_4e3979() {
+ vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sin_4e3979();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_4e3979() {
+ vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sin_4e3979();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_4e3979() {
+ vec4 res = sin(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sin_4e3979();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl b/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
new file mode 100644
index 0000000..2b77b75
--- /dev/null
+++ b/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sin_b78c91() {
+ float res = sin(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sin_b78c91();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_b78c91() {
+ float res = sin(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sin_b78c91();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_b78c91() {
+ float res = sin(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sin_b78c91();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
new file mode 100644
index 0000000..2a71109
--- /dev/null
+++ b/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sin_fc8bc4() {
+ vec2 res = sin(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sin_fc8bc4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_fc8bc4() {
+ vec2 res = sin(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sin_fc8bc4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sin_fc8bc4() {
+ vec2 res = sin(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sin_fc8bc4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl b/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
new file mode 100644
index 0000000..daa07fb
--- /dev/null
+++ b/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sinh_445e33() {
+ vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sinh_445e33();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_445e33() {
+ vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sinh_445e33();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_445e33() {
+ vec4 res = sinh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sinh_445e33();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
new file mode 100644
index 0000000..5788072
--- /dev/null
+++ b/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sinh_7bb598() {
+ float res = sinh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sinh_7bb598();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_7bb598() {
+ float res = sinh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sinh_7bb598();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_7bb598() {
+ float res = sinh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sinh_7bb598();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
new file mode 100644
index 0000000..4662041
--- /dev/null
+++ b/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sinh_b9860e() {
+ vec2 res = sinh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sinh_b9860e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_b9860e() {
+ vec2 res = sinh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sinh_b9860e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_b9860e() {
+ vec2 res = sinh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sinh_b9860e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
new file mode 100644
index 0000000..d586f6d
--- /dev/null
+++ b/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sinh_c9a5eb() {
+ vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sinh_c9a5eb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_c9a5eb() {
+ vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sinh_c9a5eb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sinh_c9a5eb() {
+ vec3 res = sinh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sinh_c9a5eb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
new file mode 100644
index 0000000..718da19
--- /dev/null
+++ b/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void smoothStep_5f615b() {
+ vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ smoothStep_5f615b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_5f615b() {
+ vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ smoothStep_5f615b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_5f615b() {
+ vec4 res = smoothstep(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ smoothStep_5f615b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
new file mode 100644
index 0000000..c207bfc
--- /dev/null
+++ b/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void smoothStep_658be3() {
+ vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ smoothStep_658be3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_658be3() {
+ vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ smoothStep_658be3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_658be3() {
+ vec3 res = smoothstep(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ smoothStep_658be3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
new file mode 100644
index 0000000..84956b6
--- /dev/null
+++ b/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void smoothStep_c11eef() {
+ vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ smoothStep_c11eef();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_c11eef() {
+ vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ smoothStep_c11eef();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_c11eef() {
+ vec2 res = smoothstep(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ smoothStep_c11eef();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
new file mode 100644
index 0000000..e5652e2
--- /dev/null
+++ b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void smoothStep_cb0bfb() {
+ float res = smoothstep(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ smoothStep_cb0bfb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_cb0bfb() {
+ float res = smoothstep(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ smoothStep_cb0bfb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void smoothStep_cb0bfb() {
+ float res = smoothstep(1.0f, 1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ smoothStep_cb0bfb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
new file mode 100644
index 0000000..fda2fe3
--- /dev/null
+++ b/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sqrt_20c74e() {
+ float res = sqrt(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sqrt_20c74e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_20c74e() {
+ float res = sqrt(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sqrt_20c74e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_20c74e() {
+ float res = sqrt(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sqrt_20c74e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
new file mode 100644
index 0000000..6139c83
--- /dev/null
+++ b/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sqrt_8c7024() {
+ vec2 res = sqrt(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sqrt_8c7024();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_8c7024() {
+ vec2 res = sqrt(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sqrt_8c7024();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_8c7024() {
+ vec2 res = sqrt(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sqrt_8c7024();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
new file mode 100644
index 0000000..4ff825a
--- /dev/null
+++ b/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sqrt_aa0d7a() {
+ vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sqrt_aa0d7a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_aa0d7a() {
+ vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sqrt_aa0d7a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_aa0d7a() {
+ vec4 res = sqrt(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sqrt_aa0d7a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
new file mode 100644
index 0000000..3108670
--- /dev/null
+++ b/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void sqrt_f8c59a() {
+ vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ sqrt_f8c59a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_f8c59a() {
+ vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ sqrt_f8c59a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void sqrt_f8c59a() {
+ vec3 res = sqrt(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ sqrt_f8c59a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl b/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
new file mode 100644
index 0000000..4d68bbe
--- /dev/null
+++ b/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void step_0b073b() {
+ float res = step(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ step_0b073b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_0b073b() {
+ float res = step(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ step_0b073b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_0b073b() {
+ float res = step(1.0f, 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ step_0b073b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.glsl b/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
new file mode 100644
index 0000000..8ffb095
--- /dev/null
+++ b/test/intrinsics/gen/step/19accd.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void step_19accd() {
+ vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ step_19accd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_19accd() {
+ vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ step_19accd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_19accd() {
+ vec2 res = step(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ step_19accd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.glsl b/test/intrinsics/gen/step/334303.wgsl.expected.glsl
new file mode 100644
index 0000000..341d813
--- /dev/null
+++ b/test/intrinsics/gen/step/334303.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void step_334303() {
+ vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ step_334303();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_334303() {
+ vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ step_334303();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_334303() {
+ vec3 res = step(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ step_334303();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl b/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
new file mode 100644
index 0000000..a195908
--- /dev/null
+++ b/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void step_e2b337() {
+ vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ step_e2b337();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_e2b337() {
+ vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ step_e2b337();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void step_e2b337() {
+ vec4 res = step(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ step_e2b337();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl b/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
new file mode 100644
index 0000000..2d34b7e
--- /dev/null
+++ b/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void storageBarrier_d87211() {
+ DeviceMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ storageBarrier_d87211();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'DeviceMemoryBarrierWithGroupSync' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl b/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
new file mode 100644
index 0000000..6b22fc9
--- /dev/null
+++ b/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tan_244e2a() {
+ vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tan_244e2a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_244e2a() {
+ vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tan_244e2a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_244e2a() {
+ vec4 res = tan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tan_244e2a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl b/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
new file mode 100644
index 0000000..434c308
--- /dev/null
+++ b/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tan_2f030e() {
+ float res = tan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tan_2f030e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_2f030e() {
+ float res = tan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tan_2f030e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_2f030e() {
+ float res = tan(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tan_2f030e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl b/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
new file mode 100644
index 0000000..069bc3f
--- /dev/null
+++ b/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tan_7ea104() {
+ vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tan_7ea104();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_7ea104() {
+ vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tan_7ea104();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_7ea104() {
+ vec3 res = tan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tan_7ea104();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
new file mode 100644
index 0000000..aa809f2
--- /dev/null
+++ b/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tan_8ce3e9() {
+ vec2 res = tan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tan_8ce3e9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_8ce3e9() {
+ vec2 res = tan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tan_8ce3e9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tan_8ce3e9() {
+ vec2 res = tan(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tan_8ce3e9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
new file mode 100644
index 0000000..3b932c9
--- /dev/null
+++ b/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tanh_5663c5() {
+ vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tanh_5663c5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_5663c5() {
+ vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tanh_5663c5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_5663c5() {
+ vec4 res = tanh(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tanh_5663c5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
new file mode 100644
index 0000000..bec23d5
--- /dev/null
+++ b/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tanh_5724b3() {
+ vec2 res = tanh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tanh_5724b3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_5724b3() {
+ vec2 res = tanh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tanh_5724b3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_5724b3() {
+ vec2 res = tanh(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tanh_5724b3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
new file mode 100644
index 0000000..bd763b2
--- /dev/null
+++ b/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tanh_9f9fb9() {
+ vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tanh_9f9fb9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_9f9fb9() {
+ vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tanh_9f9fb9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_9f9fb9() {
+ vec3 res = tanh(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tanh_9f9fb9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
new file mode 100644
index 0000000..59b0f13
--- /dev/null
+++ b/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void tanh_c15fdb() {
+ float res = tanh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ tanh_c15fdb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_c15fdb() {
+ float res = tanh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ tanh_c15fdb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void tanh_c15fdb() {
+ float res = tanh(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ tanh_c15fdb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
new file mode 100644
index 0000000..ee559be
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureDimensions_002b2a() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_002b2a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureDimensions_002b2a() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_002b2a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureDimensions_002b2a() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_002b2a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
new file mode 100644
index 0000000..8068e3b
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_012b82() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_012b82();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_012b82() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_012b82();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_012b82() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_012b82();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
new file mode 100644
index 0000000..2edf754
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_08753d() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_08753d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_08753d() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_08753d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_08753d() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_08753d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
new file mode 100644
index 0000000..4e3e717
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_0c4772() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_0c4772();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_0c4772() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_0c4772();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_0c4772() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_0c4772();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
new file mode 100644
index 0000000..869d6e8
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_0cce40() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_0cce40();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_0cce40() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_0cce40();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_0cce40() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_0cce40();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
new file mode 100644
index 0000000..24f9d89
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_0cf2ff() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_0cf2ff();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_0cf2ff() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_0cf2ff();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_0cf2ff() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_0cf2ff();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
new file mode 100644
index 0000000..6623d1f
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_0d8b7e() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_0d8b7e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_0d8b7e() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_0d8b7e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_0d8b7e() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_0d8b7e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
new file mode 100644
index 0000000..4e14a83
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_0e32ee() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_0e32ee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_0e32ee() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_0e32ee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_0e32ee() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_0e32ee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
new file mode 100644
index 0000000..5f5c12a
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureDimensions_0f3c50() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_0f3c50();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureDimensions_0f3c50() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_0f3c50();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureDimensions_0f3c50() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_0f3c50();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
new file mode 100644
index 0000000..8f13b80
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureDimensions_1191a5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_1191a5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureDimensions_1191a5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_1191a5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureDimensions_1191a5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_1191a5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
new file mode 100644
index 0000000..ad5149f
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_12c9bb() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_12c9bb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_12c9bb() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_12c9bb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_12c9bb() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_12c9bb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
new file mode 100644
index 0000000..2d56955
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_147998() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_147998();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_147998() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_147998();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_147998() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_147998();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
new file mode 100644
index 0000000..3533374
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_16036c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_16036c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_16036c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_16036c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_16036c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_16036c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
new file mode 100644
index 0000000..0d31f7f
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_1b71f0() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_1b71f0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_1b71f0() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_1b71f0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_1b71f0() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_1b71f0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
new file mode 100644
index 0000000..907b5f6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_1d6c26() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_1d6c26();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_1d6c26() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_1d6c26();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_1d6c26() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_1d6c26();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
new file mode 100644
index 0000000..e216b95
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_1e9e39() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_1e9e39();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_1e9e39() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_1e9e39();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_1e9e39() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_1e9e39();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
new file mode 100644
index 0000000..de62918
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureDimensions_1f20c5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_1f20c5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureDimensions_1f20c5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_1f20c5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureDimensions_1f20c5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_1f20c5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
new file mode 100644
index 0000000..65f32a7
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_214dd4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_214dd4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_214dd4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_214dd4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_214dd4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_214dd4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
new file mode 100644
index 0000000..46c553b
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureDimensions_221f22() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_221f22();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureDimensions_221f22() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_221f22();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureDimensions_221f22() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_221f22();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
new file mode 100644
index 0000000..e3167c3
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureDimensions_267788() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_267788();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureDimensions_267788() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_267788();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureDimensions_267788() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_267788();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
new file mode 100644
index 0000000..36fc485
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureDimensions_26bdfa() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_26bdfa();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureDimensions_26bdfa() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_26bdfa();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureDimensions_26bdfa() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_26bdfa();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
new file mode 100644
index 0000000..791209e
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_26ef6c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_26ef6c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_26ef6c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_26ef6c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_26ef6c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_26ef6c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
new file mode 100644
index 0000000..ec36824
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_2ad087() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_2ad087();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_2ad087() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_2ad087();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_2ad087() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_2ad087();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
new file mode 100644
index 0000000..9e0d6f6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureDimensions_2efa05() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_2efa05();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureDimensions_2efa05() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_2efa05();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureDimensions_2efa05() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_2efa05();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
new file mode 100644
index 0000000..05e1aa2
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_2f289f() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_2f289f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_2f289f() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_2f289f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_2f289f() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_2f289f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
new file mode 100644
index 0000000..a301213
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_2fe1cc() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_2fe1cc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_2fe1cc() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_2fe1cc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_2fe1cc() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_2fe1cc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
new file mode 100644
index 0000000..1f687b5
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_318ecc() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_318ecc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_318ecc() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_318ecc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_318ecc() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_318ecc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
new file mode 100644
index 0000000..b36a064
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_340d06() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_340d06();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_340d06() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_340d06();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_340d06() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_340d06();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
new file mode 100644
index 0000000..68168cc
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_398e30() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_398e30();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_398e30() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_398e30();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_398e30() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_398e30();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
new file mode 100644
index 0000000..c2e5d0a
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_3a94ea() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_3a94ea();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_3a94ea() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_3a94ea();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_3a94ea() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_3a94ea();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
new file mode 100644
index 0000000..d3b50a3
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_3aca08() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_3aca08();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_3aca08() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_3aca08();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_3aca08() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_3aca08();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
new file mode 100644
index 0000000..d0e6937
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_3c5ad8() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_3c5ad8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_3c5ad8() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_3c5ad8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_3c5ad8() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_3c5ad8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
new file mode 100644
index 0000000..f327cfc
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureDimensions_4152a6() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_4152a6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureDimensions_4152a6() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_4152a6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureDimensions_4152a6() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_4152a6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
new file mode 100644
index 0000000..b3ffbf6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureDimensions_423f99() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_423f99();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureDimensions_423f99() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_423f99();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureDimensions_423f99() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_423f99();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
new file mode 100644
index 0000000..54574e4
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_4267ee() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_4267ee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_4267ee() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_4267ee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_4267ee() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_4267ee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
new file mode 100644
index 0000000..a55a931
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_42d4e6() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_42d4e6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_42d4e6() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_42d4e6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_42d4e6() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_42d4e6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
new file mode 100644
index 0000000..51d3620
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_48cb89() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_48cb89();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_48cb89() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_48cb89();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_48cb89() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_48cb89();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
new file mode 100644
index 0000000..fa2ffd6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_49d274() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_49d274();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_49d274() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_49d274();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_49d274() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_49d274();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
new file mode 100644
index 0000000..1f940ca
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_4df9a8() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_4df9a8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_4df9a8() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_4df9a8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_4df9a8() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_4df9a8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
new file mode 100644
index 0000000..3abdb03
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_50a9ee() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_50a9ee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_50a9ee() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_50a9ee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_50a9ee() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_50a9ee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
new file mode 100644
index 0000000..b104509
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureDimensions_52045c() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_52045c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureDimensions_52045c() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_52045c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureDimensions_52045c() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_52045c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
new file mode 100644
index 0000000..2709ff7
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_55b23e() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_55b23e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_55b23e() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_55b23e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_55b23e() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_55b23e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
new file mode 100644
index 0000000..e708085
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureDimensions_579629() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_579629();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureDimensions_579629() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_579629();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureDimensions_579629() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_579629();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
new file mode 100644
index 0000000..99c6588
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_57da0b() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_57da0b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_57da0b() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_57da0b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_57da0b() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_57da0b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
new file mode 100644
index 0000000..03bc16c
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_57e28f() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_57e28f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_57e28f() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_57e28f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_57e28f() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_57e28f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
new file mode 100644
index 0000000..99db49e
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_58a515() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_58a515();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_58a515() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_58a515();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_58a515() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_58a515();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
new file mode 100644
index 0000000..5bfcbd3
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_5985f3() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_5985f3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_5985f3() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_5985f3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_5985f3() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_5985f3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
new file mode 100644
index 0000000..408ee5e
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_5caa5e() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_5caa5e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_5caa5e() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_5caa5e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_5caa5e() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_5caa5e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
new file mode 100644
index 0000000..427787e
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_5e295d() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_5e295d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_5e295d() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_5e295d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_5e295d() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_5e295d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
new file mode 100644
index 0000000..dc58a7f
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_60bf54() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_60bf54();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_60bf54() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_60bf54();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_60bf54() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_60bf54();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
new file mode 100644
index 0000000..c595ee6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_63f3cf() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_63f3cf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_63f3cf() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_63f3cf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_63f3cf() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_63f3cf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
new file mode 100644
index 0000000..154f8a4
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_68105c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_68105c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_68105c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_68105c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_68105c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_68105c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
new file mode 100644
index 0000000..c4caae2
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureDimensions_686ef2() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_686ef2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureDimensions_686ef2() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_686ef2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureDimensions_686ef2() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_686ef2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
new file mode 100644
index 0000000..9bc3aa7
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_6adac6() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_6adac6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_6adac6() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_6adac6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_6adac6() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_6adac6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
new file mode 100644
index 0000000..5361211
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureDimensions_6ec1b4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_6ec1b4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureDimensions_6ec1b4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_6ec1b4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureDimensions_6ec1b4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_6ec1b4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
new file mode 100644
index 0000000..131696b
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_6f0d79() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_6f0d79();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_6f0d79() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_6f0d79();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_6f0d79() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_6f0d79();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
new file mode 100644
index 0000000..d7f503c
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_702c53() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_702c53();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_702c53() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_702c53();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_702c53() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_702c53();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
new file mode 100644
index 0000000..afdd8ae
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_72e5d6() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_72e5d6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_72e5d6() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_72e5d6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_72e5d6() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_72e5d6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
new file mode 100644
index 0000000..df167b6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureDimensions_79df87() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_79df87();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureDimensions_79df87() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_79df87();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureDimensions_79df87() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_79df87();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
new file mode 100644
index 0000000..690ed87
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_7bf826() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_7bf826();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_7bf826() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_7bf826();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_7bf826() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_7bf826();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
new file mode 100644
index 0000000..9671c94
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_7f5c2e() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_7f5c2e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_7f5c2e() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_7f5c2e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_7f5c2e() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_7f5c2e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
new file mode 100644
index 0000000..5ff0573
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_8028f3() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_8028f3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_8028f3() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_8028f3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_8028f3() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_8028f3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
new file mode 100644
index 0000000..dc17343
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_811679() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_811679();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_811679() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_811679();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_811679() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_811679();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
new file mode 100644
index 0000000..6086ba8
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_820596() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_820596();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_820596() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_820596();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_820596() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_820596();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
new file mode 100644
index 0000000..c4c26c6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_83ee5a() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_83ee5a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_83ee5a() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_83ee5a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_83ee5a() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_83ee5a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
new file mode 100644
index 0000000..2a19a18
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_85d556() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_85d556();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_85d556() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_85d556();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_85d556() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_85d556();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
new file mode 100644
index 0000000..85a5517
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureDimensions_88ad17() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_88ad17();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureDimensions_88ad17() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_88ad17();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureDimensions_88ad17() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_88ad17();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
new file mode 100644
index 0000000..347f303
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureDimensions_8aa4c4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_8aa4c4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureDimensions_8aa4c4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_8aa4c4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureDimensions_8aa4c4() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_8aa4c4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
new file mode 100644
index 0000000..4ca8327
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureDimensions_8deb5e() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_8deb5e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureDimensions_8deb5e() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_8deb5e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureDimensions_8deb5e() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_8deb5e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
new file mode 100644
index 0000000..016ccda
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_8f20bf() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_8f20bf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_8f20bf() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_8f20bf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_8f20bf() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_8f20bf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
new file mode 100644
index 0000000..3758493
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_8fca0f() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_8fca0f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_8fca0f() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_8fca0f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_8fca0f() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_8fca0f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
new file mode 100644
index 0000000..ccaa63d
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_90340b() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_90340b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_90340b() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_90340b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_90340b() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_90340b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
new file mode 100644
index 0000000..714716a
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_9042ab() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9042ab();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_9042ab() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9042ab();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_9042ab() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9042ab();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
new file mode 100644
index 0000000..7b3bca8
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_9393b0() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9393b0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_9393b0() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9393b0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_9393b0() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9393b0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
new file mode 100644
index 0000000..89bbc24
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_939fdb() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_939fdb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_939fdb() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_939fdb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_939fdb() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_939fdb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
new file mode 100644
index 0000000..bccfcb4
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureDimensions_962dcd() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_962dcd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureDimensions_962dcd() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_962dcd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureDimensions_962dcd() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_962dcd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
new file mode 100644
index 0000000..02efa44
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_9abfe5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9abfe5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_9abfe5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9abfe5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_9abfe5() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9abfe5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
new file mode 100644
index 0000000..ef9b87b
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureDimensions_9c9c57() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9c9c57();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureDimensions_9c9c57() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9c9c57();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureDimensions_9c9c57() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9c9c57();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
new file mode 100644
index 0000000..c174102
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_9da9e2() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9da9e2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_9da9e2() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9da9e2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_9da9e2() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9da9e2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
new file mode 100644
index 0000000..eb33753
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_9eb8d8() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9eb8d8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_9eb8d8() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9eb8d8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_9eb8d8() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9eb8d8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
new file mode 100644
index 0000000..758f819
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_9f8e46() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_9f8e46();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_9f8e46() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_9f8e46();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_9f8e46() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_9f8e46();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
new file mode 100644
index 0000000..e18ab70
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_a01845() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_a01845();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_a01845() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_a01845();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureDimensions_a01845() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_a01845();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
new file mode 100644
index 0000000..b5050a6
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureDimensions_a7d565() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_a7d565();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureDimensions_a7d565() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_a7d565();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureDimensions_a7d565() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_a7d565();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
new file mode 100644
index 0000000..bd6a78d
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_a863f2() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_a863f2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_a863f2() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_a863f2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_a863f2() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_a863f2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
new file mode 100644
index 0000000..a5c5f7e
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_a9c9c1() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_a9c9c1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_a9c9c1() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_a9c9c1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_a9c9c1() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_a9c9c1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
new file mode 100644
index 0000000..f8b587b
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureDimensions_b0e16d() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_b0e16d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureDimensions_b0e16d() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_b0e16d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureDimensions_b0e16d() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_b0e16d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
new file mode 100644
index 0000000..a73bfc2
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureDimensions_b3c954() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_b3c954();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureDimensions_b3c954() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_b3c954();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureDimensions_b3c954() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_b3c954();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
new file mode 100644
index 0000000..ab2710f
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureDimensions_b3e407() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_b3e407();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureDimensions_b3e407() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_b3e407();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureDimensions_b3e407() {
+ int res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_b3e407();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
new file mode 100644
index 0000000..d955600
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_b91240() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_b91240();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_b91240() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_b91240();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_b91240() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_b91240();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
new file mode 100644
index 0000000..e4c4b67
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_ba1481() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_ba1481();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_ba1481() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_ba1481();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureDimensions_ba1481() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_ba1481();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
new file mode 100644
index 0000000..f536b88
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_bb3dde() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_bb3dde();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_bb3dde() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_bb3dde();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_bb3dde() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_bb3dde();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
new file mode 100644
index 0000000..b6962ff
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_c30e75() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_c30e75();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_c30e75() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_c30e75();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_c30e75() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_c30e75();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
new file mode 100644
index 0000000..a0c743e
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_c7943d() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_c7943d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_c7943d() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_c7943d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_c7943d() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_c7943d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
new file mode 100644
index 0000000..611fe64
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_cc968c() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_cc968c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_cc968c() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_cc968c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_cc968c() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_cc968c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
new file mode 100644
index 0000000..9eeb727
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_cccc8f() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_cccc8f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_cccc8f() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_cccc8f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_cccc8f() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_cccc8f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
new file mode 100644
index 0000000..6b1c12f
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_cd76a7() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_cd76a7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_cd76a7() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_cd76a7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_cd76a7() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_cd76a7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
new file mode 100644
index 0000000..900eefd
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_cdf473() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_cdf473();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_cdf473() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_cdf473();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_cdf473() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_cdf473();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
new file mode 100644
index 0000000..74ad431
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_cec841() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_cec841();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_cec841() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_cec841();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureDimensions_cec841() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_cec841();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
new file mode 100644
index 0000000..9b046a7
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_cf7e43() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_cf7e43();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_cf7e43() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_cf7e43();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_cf7e43() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_cf7e43();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
new file mode 100644
index 0000000..dd0e425
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_d125bc() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_d125bc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_d125bc() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_d125bc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureDimensions_d125bc() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_d125bc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
new file mode 100644
index 0000000..281157b
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureDimensions_d83c45() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_d83c45();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureDimensions_d83c45() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_d83c45();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureDimensions_d83c45() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_d83c45();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
new file mode 100644
index 0000000..9a6fa2a
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureDimensions_daf7c0() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_daf7c0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureDimensions_daf7c0() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_daf7c0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureDimensions_daf7c0() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_daf7c0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
new file mode 100644
index 0000000..f2186e9
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_dc2dd0() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_dc2dd0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_dc2dd0() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_dc2dd0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureDimensions_dc2dd0() {
+ int res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_dc2dd0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
new file mode 100644
index 0000000..3def416
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureDimensions_e927be() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_e927be();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureDimensions_e927be() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_e927be();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureDimensions_e927be() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_e927be();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
new file mode 100644
index 0000000..01990ce
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_e9e96c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_e9e96c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_e9e96c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_e9e96c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_e9e96c() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_e9e96c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
new file mode 100644
index 0000000..1e0aa55
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_ef5b89() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_ef5b89();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_ef5b89() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_ef5b89();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_ef5b89() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_ef5b89();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
new file mode 100644
index 0000000..c302cd1
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureDimensions_efc8a4() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_efc8a4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureDimensions_efc8a4() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_efc8a4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureDimensions_efc8a4() {
+ ivec3 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_efc8a4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
new file mode 100644
index 0000000..c354540
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_f60bdb() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_f60bdb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_f60bdb() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_f60bdb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_f60bdb() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_f60bdb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
new file mode 100644
index 0000000..107c023
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureDimensions_f7145b() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_f7145b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureDimensions_f7145b() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_f7145b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureDimensions_f7145b() {
+ ivec2 res = textureSize(arg_00);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_f7145b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'arg_00' : undeclared identifier
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 4 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
new file mode 100644
index 0000000..f822402
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_f931c7() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_f931c7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_f931c7() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_f931c7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureDimensions_f931c7() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_f931c7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
new file mode 100644
index 0000000..ff07154
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureDimensions_fa9859() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_fa9859();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureDimensions_fa9859() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_fa9859();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureDimensions_fa9859() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_fa9859();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
new file mode 100644
index 0000000..7cf68ce
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_fb5670() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_fb5670();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_fb5670() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_fb5670();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureDimensions_fb5670() {
+ ivec2 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_fb5670();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 2-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
new file mode 100644
index 0000000..aff41d7
--- /dev/null
+++ b/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_fcac78() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureDimensions_fcac78();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_fcac78() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureDimensions_fcac78();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureDimensions_fcac78() {
+ ivec3 res = textureSize(arg_0);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureDimensions_fcac78();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSize' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
new file mode 100644
index 0000000..c0c1d75
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_19cf87() {
+ float res = texelFetch(arg_0, ivec3(0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_19cf87();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_19cf87() {
+ float res = texelFetch(arg_0, ivec3(0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_19cf87();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_19cf87() {
+ float res = texelFetch(arg_0, ivec3(0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_19cf87();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
new file mode 100644
index 0000000..c4b25b1
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureLoad_1b8588() {
+ uvec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_1b8588();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureLoad_1b8588() {
+ uvec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_1b8588();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureLoad_1b8588() {
+ uvec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_1b8588();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
new file mode 100644
index 0000000..a3e04c8
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureLoad_1f2016() {
+ vec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_1f2016();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureLoad_1f2016() {
+ vec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_1f2016();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureLoad_1f2016() {
+ vec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_1f2016();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
new file mode 100644
index 0000000..7a08dfc
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_484344() {
+ vec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_484344();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_484344() {
+ vec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_484344();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_484344() {
+ vec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_484344();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
new file mode 100644
index 0000000..e3ac256
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureLoad_4fd803() {
+ ivec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_4fd803();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureLoad_4fd803() {
+ ivec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_4fd803();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureLoad_4fd803() {
+ ivec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_4fd803();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
new file mode 100644
index 0000000..54c2afa
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureLoad_5a2f9d() {
+ ivec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_5a2f9d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureLoad_5a2f9d() {
+ ivec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_5a2f9d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureLoad_5a2f9d() {
+ ivec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_5a2f9d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
new file mode 100644
index 0000000..7bc6f13
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureLoad_6154d4() {
+ uvec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_6154d4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureLoad_6154d4() {
+ uvec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_6154d4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureLoad_6154d4() {
+ uvec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_6154d4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
new file mode 100644
index 0000000..d4c7d9f
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_6273b1() {
+ float res = texelFetch(arg_0, ivec3(0, 0, 0), 1).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_6273b1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_6273b1() {
+ float res = texelFetch(arg_0, ivec3(0, 0, 0), 1).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_6273b1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_6273b1() {
+ float res = texelFetch(arg_0, ivec3(0, 0, 0), 1).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_6273b1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
new file mode 100644
index 0000000..c54cfab
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureLoad_79e697() {
+ ivec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_79e697();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureLoad_79e697() {
+ ivec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_79e697();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureLoad_79e697() {
+ ivec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_79e697();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
new file mode 100644
index 0000000..185420d
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureLoad_7c90e5() {
+ uvec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_7c90e5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureLoad_7c90e5() {
+ uvec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_7c90e5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureLoad_7c90e5() {
+ uvec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_7c90e5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
new file mode 100644
index 0000000..a4dd2b3
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureLoad_81c381() {
+ vec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_81c381();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureLoad_81c381() {
+ vec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_81c381();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureLoad_81c381() {
+ vec4 res = texelFetch(arg_0, ivec2(1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_81c381();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
new file mode 100644
index 0000000..a9273cc
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureLoad_87be85() {
+ vec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_87be85();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureLoad_87be85() {
+ vec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_87be85();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureLoad_87be85() {
+ vec4 res = texelFetch(arg_0, ivec4(0, 0, 1, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_87be85();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
new file mode 100644
index 0000000..67f63fc
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_8acf41() {
+ vec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_8acf41();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_8acf41() {
+ vec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_8acf41();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureLoad_8acf41() {
+ vec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_8acf41();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
new file mode 100644
index 0000000..ac1488f
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureLoad_9b2667() {
+ float res = texelFetch(arg_0, ivec4(0, 0, 1, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_9b2667();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureLoad_9b2667() {
+ float res = texelFetch(arg_0, ivec4(0, 0, 1, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_9b2667();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureLoad_9b2667() {
+ float res = texelFetch(arg_0, ivec4(0, 0, 1, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_9b2667();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
new file mode 100644
index 0000000..cb434f5
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_a583c9() {
+ vec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_a583c9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_a583c9() {
+ vec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_a583c9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_a583c9() {
+ vec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_a583c9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
new file mode 100644
index 0000000..44c93d1
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureLoad_a9a9f5() {
+ uvec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_a9a9f5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureLoad_a9a9f5() {
+ uvec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_a9a9f5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureLoad_a9a9f5() {
+ uvec4 res = texelFetch(arg_0, ivec4(0, 0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_a9a9f5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of uint'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
new file mode 100644
index 0000000..a15bef5
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureLoad_c2a480() {
+ ivec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_c2a480();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureLoad_c2a480() {
+ ivec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_c2a480();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureLoad_c2a480() {
+ ivec4 res = texelFetch(arg_0, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_c2a480();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'texelFetch' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
new file mode 100644
index 0000000..57511b1
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureLoad_c378ee() {
+ uvec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_c378ee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureLoad_c378ee() {
+ uvec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_c378ee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureLoad_c378ee() {
+ uvec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_c378ee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
new file mode 100644
index 0000000..e5c4ee8
--- /dev/null
+++ b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -0,0 +1,77 @@
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureLoad_e3d2cc() {
+ ivec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureLoad_e3d2cc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureLoad_e3d2cc() {
+ ivec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureLoad_e3d2cc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureLoad_e3d2cc() {
+ ivec4 res = texelFetch(arg_0, ivec2(0, 0), 1);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureLoad_e3d2cc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
new file mode 100644
index 0000000..b513151
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLayers_024820() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_024820();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLayers_024820() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_024820();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLayers_024820() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_024820();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
new file mode 100644
index 0000000..2319625
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureNumLayers_053df7() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_053df7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureNumLayers_053df7() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_053df7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureNumLayers_053df7() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_053df7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
new file mode 100644
index 0000000..cdbae00
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_058cc3() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_058cc3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_058cc3() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_058cc3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_058cc3() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_058cc3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
new file mode 100644
index 0000000..2cff982
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_09d05d() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_09d05d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_09d05d() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_09d05d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_09d05d() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_09d05d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
new file mode 100644
index 0000000..6f2e095
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_13b4ce() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_13b4ce();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_13b4ce() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_13b4ce();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_13b4ce() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_13b4ce();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
new file mode 100644
index 0000000..5ef0fee
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_22e53b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_22e53b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_22e53b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_22e53b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_22e53b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_22e53b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
new file mode 100644
index 0000000..9fcdb8c
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_562013() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_562013();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_562013() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_562013();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_562013() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_562013();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
new file mode 100644
index 0000000..b7fff6a
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLayers_5d59cd() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_5d59cd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLayers_5d59cd() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_5d59cd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLayers_5d59cd() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_5d59cd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
new file mode 100644
index 0000000..e62b6d7
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_68a65b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_68a65b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_68a65b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_68a65b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_68a65b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_68a65b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
new file mode 100644
index 0000000..0fdca03
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLayers_778bd1() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_778bd1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLayers_778bd1() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_778bd1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLayers_778bd1() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_778bd1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
new file mode 100644
index 0000000..fe25334
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_7f1937() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_7f1937();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_7f1937() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_7f1937();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_7f1937() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_7f1937();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
new file mode 100644
index 0000000..c7f5e15
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureNumLayers_85f980() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_85f980();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureNumLayers_85f980() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_85f980();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureNumLayers_85f980() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_85f980();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
new file mode 100644
index 0000000..a8374fd
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureNumLayers_87953e() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_87953e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureNumLayers_87953e() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_87953e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureNumLayers_87953e() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_87953e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
new file mode 100644
index 0000000..56a5821
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureNumLayers_893e7c() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_893e7c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureNumLayers_893e7c() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_893e7c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureNumLayers_893e7c() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_893e7c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
new file mode 100644
index 0000000..d873766
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_9700fb() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_9700fb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_9700fb() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_9700fb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_9700fb() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_9700fb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
new file mode 100644
index 0000000..b71292e
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_a216d2() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_a216d2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_a216d2() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_a216d2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_a216d2() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_a216d2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
new file mode 100644
index 0000000..3279102
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_cd5dc8() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_cd5dc8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_cd5dc8() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_cd5dc8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_cd5dc8() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_cd5dc8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
new file mode 100644
index 0000000..a0123fd
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_d5b228() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_d5b228();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_d5b228() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_d5b228();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_d5b228() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_d5b228();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
new file mode 100644
index 0000000..3cc2e8a
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_e31be1() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_e31be1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_e31be1() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_e31be1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_e31be1() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_e31be1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
new file mode 100644
index 0000000..9f60963
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLayers_e653c0() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_e653c0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLayers_e653c0() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_e653c0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLayers_e653c0() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_e653c0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
new file mode 100644
index 0000000..7b38eb6
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_ee942f() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_ee942f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_ee942f() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_ee942f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_ee942f() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_ee942f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
new file mode 100644
index 0000000..6a077c9
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_f33005() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_f33005();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_f33005() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_f33005();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_f33005() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_f33005();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
new file mode 100644
index 0000000..320f8e931
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_fcec98() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_fcec98();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_fcec98() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_fcec98();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_fcec98() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_fcec98();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
new file mode 100644
index 0000000..4d595be
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_ff5e89() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLayers_ff5e89();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_ff5e89() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLayers_ff5e89();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureNumLayers_ff5e89() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLayers_ff5e89();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
new file mode 100644
index 0000000..60570af
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureNumLevels_076cb5() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_076cb5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureNumLevels_076cb5() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_076cb5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureNumLevels_076cb5() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_076cb5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
new file mode 100644
index 0000000..d5825e7
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureNumLevels_080d95() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_080d95();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureNumLevels_080d95() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_080d95();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCube arg_0;
+
+void textureNumLevels_080d95() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_080d95();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
new file mode 100644
index 0000000..176fbde
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureNumLevels_09ddd0() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_09ddd0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureNumLevels_09ddd0() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_09ddd0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2D arg_0;
+
+void textureNumLevels_09ddd0() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_09ddd0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
new file mode 100644
index 0000000..53a5318
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLevels_105988() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_105988();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLevels_105988() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_105988();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLevels_105988() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_105988();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
new file mode 100644
index 0000000..2ffe003
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureNumLevels_1e6f3b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_1e6f3b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureNumLevels_1e6f3b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_1e6f3b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler1D arg_0;
+
+void textureNumLevels_1e6f3b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_1e6f3b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
new file mode 100644
index 0000000..1430293
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureNumLevels_23f750() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_23f750();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureNumLevels_23f750() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_23f750();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2D arg_0;
+
+void textureNumLevels_23f750() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_23f750();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
new file mode 100644
index 0000000..2076d2e
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLevels_2c3575() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_2c3575();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLevels_2c3575() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_2c3575();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLevels_2c3575() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_2c3575();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
new file mode 100644
index 0000000..d990da4
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureNumLevels_32a0ae() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_32a0ae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureNumLevels_32a0ae() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_32a0ae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler1D arg_0;
+
+void textureNumLevels_32a0ae() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_32a0ae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
new file mode 100644
index 0000000..2b4d3e7
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureNumLevels_5101cf() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_5101cf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureNumLevels_5101cf() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_5101cf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DArray arg_0;
+
+void textureNumLevels_5101cf() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_5101cf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
new file mode 100644
index 0000000..d5ad1f5
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureNumLevels_51b5bb() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_51b5bb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureNumLevels_51b5bb() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_51b5bb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+void textureNumLevels_51b5bb() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_51b5bb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
new file mode 100644
index 0000000..30e557a
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureNumLevels_897aaf() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_897aaf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureNumLevels_897aaf() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_897aaf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+void textureNumLevels_897aaf() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_897aaf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
new file mode 100644
index 0000000..7acaec0
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureNumLevels_9da7a5() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_9da7a5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureNumLevels_9da7a5() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_9da7a5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler3D arg_0;
+
+void textureNumLevels_9da7a5() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_9da7a5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
new file mode 100644
index 0000000..c1d0c7c
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureNumLevels_a91c03() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_a91c03();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureNumLevels_a91c03() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_a91c03();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isamplerCubeArray arg_0;
+
+void textureNumLevels_a91c03() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_a91c03();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'isamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
new file mode 100644
index 0000000..415c35d
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLevels_aee7c8() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_aee7c8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLevels_aee7c8() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_aee7c8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+void textureNumLevels_aee7c8() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_aee7c8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
new file mode 100644
index 0000000..6579ed0
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureNumLevels_b1b12b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_b1b12b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureNumLevels_b1b12b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_b1b12b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureNumLevels_b1b12b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_b1b12b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
new file mode 100644
index 0000000..f3319ec
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureNumLevels_b4f5ea() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_b4f5ea();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureNumLevels_b4f5ea() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_b4f5ea();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler3D arg_0;
+
+void textureNumLevels_b4f5ea() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_b4f5ea();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
new file mode 100644
index 0000000..b5b0626
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureNumLevels_d004a9() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_d004a9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureNumLevels_d004a9() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_d004a9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DArray arg_0;
+
+void textureNumLevels_d004a9() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_d004a9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
new file mode 100644
index 0000000..3ec191d
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureNumLevels_dca09e() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_dca09e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureNumLevels_dca09e() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_dca09e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+void textureNumLevels_dca09e() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_dca09e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
new file mode 100644
index 0000000..e11a569
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureNumLevels_e67231() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_e67231();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureNumLevels_e67231() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_e67231();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+void textureNumLevels_e67231() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_e67231();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
new file mode 100644
index 0000000..6dd5ced
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureNumLevels_ed078b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_ed078b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureNumLevels_ed078b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_ed078b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCube arg_0;
+
+void textureNumLevels_ed078b() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_ed078b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
new file mode 100644
index 0000000..fb2037c
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureNumLevels_f46ec6() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_f46ec6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureNumLevels_f46ec6() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_f46ec6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usamplerCubeArray arg_0;
+
+void textureNumLevels_f46ec6() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_f46ec6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'usamplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
new file mode 100644
index 0000000..73f917c
--- /dev/null
+++ b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLevels_f5828d() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumLevels_f5828d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLevels_f5828d() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumLevels_f5828d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+void textureNumLevels_f5828d() {
+ int res = textureQueryLevels(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumLevels_f5828d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
new file mode 100644
index 0000000..d21f842
--- /dev/null
+++ b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_2c6f14() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumSamples_2c6f14();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_2c6f14() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumSamples_2c6f14();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_2c6f14() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumSamples_2c6f14();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
new file mode 100644
index 0000000..fa23cef
--- /dev/null
+++ b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureNumSamples_42f8bb() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumSamples_42f8bb();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureNumSamples_42f8bb() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumSamples_42f8bb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp usampler2DMS arg_0;
+
+void textureNumSamples_42f8bb() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumSamples_42f8bb();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
new file mode 100644
index 0000000..8b37690
--- /dev/null
+++ b/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureNumSamples_449d23() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumSamples_449d23();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureNumSamples_449d23() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumSamples_449d23();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp isampler2DMS arg_0;
+
+void textureNumSamples_449d23() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumSamples_449d23();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
new file mode 100644
index 0000000..2bc017d
--- /dev/null
+++ b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_a3c8a0() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureNumSamples_a3c8a0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_a3c8a0() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureNumSamples_a3c8a0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_a3c8a0() {
+ int res = textureSamples(arg_0);;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureNumSamples_a3c8a0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'textureSamples' : no matching overloaded function found
+ERROR: 0:7: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:7: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl
new file mode 100644
index 0000000..9c76023
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSample_02aa9b() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0));
+}
+
+void fragment_main() {
+ textureSample_02aa9b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl
new file mode 100644
index 0000000..db28188
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSample_100dc0() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+void fragment_main() {
+ textureSample_100dc0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl
new file mode 100644
index 0000000..dda133e
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSample_38bbb9() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f)).x;
+}
+
+void fragment_main() {
+ textureSample_38bbb9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl
new file mode 100644
index 0000000..838a5d9
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSample_3b50bd() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ textureSample_3b50bd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl
new file mode 100644
index 0000000..38057f3
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSample_4dd1bf() {
+ vec4 res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)));
+}
+
+void fragment_main() {
+ textureSample_4dd1bf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl
new file mode 100644
index 0000000..1251a2c
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSample_51b514() {
+ vec4 res = texture(arg_0, vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+ textureSample_51b514();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl
new file mode 100644
index 0000000..50c9125
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSample_667d76() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), ivec2(0, 0)).x;
+}
+
+void fragment_main() {
+ textureSample_667d76();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl
new file mode 100644
index 0000000..e73c688
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSample_6717ca() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, float(1)));
+}
+
+void fragment_main() {
+ textureSample_6717ca();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl
new file mode 100644
index 0000000..9205cfd
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D arg_0;
+
+
+void textureSample_6e64fb() {
+ vec4 res = texture(arg_0, 1.0f);
+}
+
+void fragment_main() {
+ textureSample_6e64fb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl
new file mode 100644
index 0000000..de9813f
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSample_7c3baa() {
+ vec4 res = texture(arg_0, vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+void fragment_main() {
+ textureSample_7c3baa();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl
new file mode 100644
index 0000000..95f9c54
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSample_7e9ffd() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1))).x;
+}
+
+void fragment_main() {
+ textureSample_7e9ffd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl
new file mode 100644
index 0000000..4770a5f
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSample_8522e7() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), ivec2(0, 0)).x;
+}
+
+void fragment_main() {
+ textureSample_8522e7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl
new file mode 100644
index 0000000..44ec2af
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSample_c2f4e8() {
+ float res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1))).x;
+}
+
+void fragment_main() {
+ textureSample_c2f4e8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl
new file mode 100644
index 0000000..5eaee03
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSample_e53267() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+ textureSample_e53267();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl b/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl
new file mode 100644
index 0000000..e8c1b8a
--- /dev/null
+++ b/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSample_ea7030() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f)).x;
+}
+
+void fragment_main() {
+ textureSample_ea7030();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
new file mode 100644
index 0000000..2a26fea
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleBias_53b9f7() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleBias_53b9f7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl
new file mode 100644
index 0000000..0bec9b8
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleBias_65ac50() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+void fragment_main() {
+ textureSampleBias_65ac50();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl
new file mode 100644
index 0000000..dfcb3df
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleBias_6a9113() {
+ vec4 res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleBias_6a9113();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl
new file mode 100644
index 0000000..77d67e6
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleBias_80e579() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleBias_80e579();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl
new file mode 100644
index 0000000..41a4646
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleBias_81c19a() {
+ vec4 res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+void fragment_main() {
+ textureSampleBias_81c19a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
new file mode 100644
index 0000000..df9819b
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleBias_d3fa1b() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleBias_d3fa1b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl
new file mode 100644
index 0000000..d774879
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleBias_df91bb() {
+ vec4 res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+}
+
+void fragment_main() {
+ textureSampleBias_df91bb();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
new file mode 100644
index 0000000..0cc5ca2
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleBias_eed7c4() {
+ vec4 res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleBias_eed7c4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
new file mode 100644
index 0000000..33a587d
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompare_25fcd1() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+void fragment_main() {
+ textureSampleCompare_25fcd1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
new file mode 100644
index 0000000..ac44077
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompare_3a5923() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleCompare_3a5923();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
new file mode 100644
index 0000000..65767b4
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleCompare_63fb83() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleCompare_63fb83();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
new file mode 100644
index 0000000..890afeb
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompare_98b85c() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+void fragment_main() {
+ textureSampleCompare_98b85c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
new file mode 100644
index 0000000..19e6bfd
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleCompare_a3ca7e() {
+ float res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleCompare_a3ca7e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
new file mode 100644
index 0000000..d613258
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompare_dd431d() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+void fragment_main() {
+ textureSampleCompare_dd431d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
new file mode 100644
index 0000000..a95a718
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompareLevel_011a8f() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleCompareLevel_011a8f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompareLevel_011a8f() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleCompareLevel_011a8f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompareLevel_011a8f() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleCompareLevel_011a8f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
new file mode 100644
index 0000000..8a64730
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompareLevel_1116ed() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleCompareLevel_1116ed();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompareLevel_1116ed() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleCompareLevel_1116ed();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleCompareLevel_1116ed() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleCompareLevel_1116ed();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
new file mode 100644
index 0000000..d8e177c
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleCompareLevel_1568e3() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleCompareLevel_1568e3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleCompareLevel_1568e3() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleCompareLevel_1568e3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleCompareLevel_1568e3() {
+ float res = texture(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleCompareLevel_1568e3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
new file mode 100644
index 0000000..faaa290
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompareLevel_2ad2b1() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleCompareLevel_2ad2b1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompareLevel_2ad2b1() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleCompareLevel_2ad2b1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompareLevel_2ad2b1() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleCompareLevel_2ad2b1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: '=' : cannot convert from ' global highp 4-component vector of float' to ' temp mediump float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
new file mode 100644
index 0000000..9ce58c5
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleCompareLevel_4cf3a2() {
+ float res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleCompareLevel_4cf3a2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleCompareLevel_4cf3a2() {
+ float res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleCompareLevel_4cf3a2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleCompareLevel_4cf3a2() {
+ float res = texture(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleCompareLevel_4cf3a2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
new file mode 100644
index 0000000..b2d5096
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompareLevel_f8121c() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleCompareLevel_f8121c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompareLevel_f8121c() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleCompareLevel_f8121c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleCompareLevel_f8121c() {
+ float res = texture(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleCompareLevel_f8121c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texture' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
new file mode 100644
index 0000000..de4d084
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleGrad_21402b() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_21402b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleGrad_21402b() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_21402b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleGrad_21402b() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_21402b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
new file mode 100644
index 0000000..5193326
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleGrad_2ecd8f() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_2ecd8f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleGrad_2ecd8f() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_2ecd8f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleGrad_2ecd8f() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_2ecd8f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
new file mode 100644
index 0000000..97fc7d7
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleGrad_468f88() {
+ vec4 res = textureGrad(arg_0, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_468f88();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleGrad_468f88() {
+ vec4 res = textureGrad(arg_0, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_468f88();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleGrad_468f88() {
+ vec4 res = textureGrad(arg_0, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_468f88();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
new file mode 100644
index 0000000..9f76b21
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleGrad_521263() {
+ vec4 res = textureGrad(arg_0, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_521263();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleGrad_521263() {
+ vec4 res = textureGrad(arg_0, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_521263();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleGrad_521263() {
+ vec4 res = textureGrad(arg_0, vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_521263();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
new file mode 100644
index 0000000..e25e7db
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleGrad_5312f4() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_5312f4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleGrad_5312f4() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_5312f4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleGrad_5312f4() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_5312f4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
new file mode 100644
index 0000000..68389a9
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleGrad_872f00() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_872f00();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleGrad_872f00() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_872f00();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleGrad_872f00() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, float(1)), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_872f00();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
new file mode 100644
index 0000000..1f9fd0e
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleGrad_e383db() {
+ vec4 res = textureGrad(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_e383db();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleGrad_e383db() {
+ vec4 res = textureGrad(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_e383db();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleGrad_e383db() {
+ vec4 res = textureGrad(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_e383db();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
new file mode 100644
index 0000000..e2bad29
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleGrad_e9a2f7() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleGrad_e9a2f7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleGrad_e9a2f7() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleGrad_e9a2f7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleGrad_e9a2f7() {
+ vec4 res = textureGrad(arg_0, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleGrad_e9a2f7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureGrad' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
new file mode 100644
index 0000000..2f99e42
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_02be59() {
+ float res = textureLod(arg_0, vec2(0.0f, 0.0f), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_02be59();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_02be59() {
+ float res = textureLod(arg_0, vec2(0.0f, 0.0f), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_02be59();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_02be59() {
+ float res = textureLod(arg_0, vec2(0.0f, 0.0f), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_02be59();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
new file mode 100644
index 0000000..e386347
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleLevel_0bdd9a() {
+ vec4 res = textureLod(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_0bdd9a();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleLevel_0bdd9a() {
+ vec4 res = textureLod(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_0bdd9a();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleLevel_0bdd9a() {
+ vec4 res = textureLod(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_0bdd9a();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
new file mode 100644
index 0000000..47b1c7a
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleLevel_1b0291() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_1b0291();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleLevel_1b0291() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_1b0291();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleLevel_1b0291() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_1b0291();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
new file mode 100644
index 0000000..a7334dc
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_1bf73e() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_1bf73e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_1bf73e() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_1bf73e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_1bf73e() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_1bf73e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
new file mode 100644
index 0000000..ed4cb3f
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_302be4() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_302be4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_302be4() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_302be4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_302be4() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_302be4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
new file mode 100644
index 0000000..1862a92
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_47daa4() {
+ float res = textureLod(arg_0, vec2(0.0f, 0.0f), 0, ivec2(0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_47daa4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_47daa4() {
+ float res = textureLod(arg_0, vec2(0.0f, 0.0f), 0, ivec2(0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_47daa4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_47daa4() {
+ float res = textureLod(arg_0, vec2(0.0f, 0.0f), 0, ivec2(0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_47daa4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
new file mode 100644
index 0000000..a6d8d40
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_690d95() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_690d95();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_690d95() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_690d95();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_690d95() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_690d95();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
new file mode 100644
index 0000000..606f345
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_979816() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 0.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_979816();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_979816() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 0.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_979816();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_979816() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 0.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_979816();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
new file mode 100644
index 0000000..f35b44f
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleLevel_9bd37b() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_9bd37b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleLevel_9bd37b() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_9bd37b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleLevel_9bd37b() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f, ivec3(0, 0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_9bd37b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
new file mode 100644
index 0000000..7e5d37e
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
@@ -0,0 +1,106 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_a4af26() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_a4af26();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_a4af26() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_a4af26();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_a4af26() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 1.0f, ivec2(0, 0));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_a4af26();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
new file mode 100644
index 0000000..446ff45
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleLevel_abfcc0() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_abfcc0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleLevel_abfcc0() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_abfcc0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D arg_0;
+
+
+void textureSampleLevel_abfcc0() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_abfcc0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
new file mode 100644
index 0000000..ed66944
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleLevel_ae5e39() {
+ float res = textureLod(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_ae5e39();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleLevel_ae5e39() {
+ float res = textureLod(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_ae5e39();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray arg_0;
+
+
+void textureSampleLevel_ae5e39() {
+ float res = textureLod(arg_0, vec4(0.0f, 0.0f, 0.0f, float(1)), 0).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_ae5e39();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
new file mode 100644
index 0000000..4940678
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
@@ -0,0 +1,103 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_ba93b3() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 0, ivec2(0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_ba93b3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_ba93b3() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 0, ivec2(0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_ba93b3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray arg_0;
+
+
+void textureSampleLevel_ba93b3() {
+ float res = textureLod(arg_0, vec3(0.0f, 0.0f, float(1)), 0, ivec2(0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_ba93b3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureLod' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
new file mode 100644
index 0000000..538222d
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleLevel_c32df7() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_c32df7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleLevel_c32df7() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_c32df7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube arg_0;
+
+
+void textureSampleLevel_c32df7() {
+ vec4 res = textureLod(arg_0, vec3(0.0f, 0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_c32df7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
new file mode 100644
index 0000000..7f18f4d
--- /dev/null
+++ b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_c6aca6() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureSampleLevel_c6aca6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_c6aca6() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureSampleLevel_c6aca6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D arg_0;
+
+
+void textureSampleLevel_c6aca6() {
+ vec4 res = textureLod(arg_0, vec2(0.0f, 0.0f), 1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureSampleLevel_c6aca6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
new file mode 100644
index 0000000..4ba2dce
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_05ce15() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_05ce15();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_05ce15() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_05ce15();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_05ce15() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_05ce15();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
new file mode 100644
index 0000000..5cd1fc8
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_064c7f() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_064c7f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_064c7f() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_064c7f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_064c7f() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_064c7f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
new file mode 100644
index 0000000..8178bbf
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_068641() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_068641();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_068641() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_068641();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_068641() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_068641();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
new file mode 100644
index 0000000..e2680e9
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_0af6b5() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_0af6b5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_0af6b5() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_0af6b5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_0af6b5() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_0af6b5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
new file mode 100644
index 0000000..a28d08e
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_0c3dff() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_0c3dff();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_0c3dff() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_0c3dff();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_0c3dff() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_0c3dff();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
new file mode 100644
index 0000000..d43d1e1
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_102722() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_102722();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_102722() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_102722();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_102722() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_102722();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
new file mode 100644
index 0000000..9ad8bb9
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_1bbd08() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_1bbd08();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_1bbd08() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_1bbd08();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_1bbd08() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_1bbd08();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
new file mode 100644
index 0000000..26e7eb8
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_1c02e7() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_1c02e7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_1c02e7() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_1c02e7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_1c02e7() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_1c02e7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
new file mode 100644
index 0000000..5993ef4
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_22d955() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_22d955();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_22d955() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_22d955();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_22d955() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_22d955();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
new file mode 100644
index 0000000..6d3a252
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_26bf70() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_26bf70();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_26bf70() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_26bf70();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_26bf70() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_26bf70();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
new file mode 100644
index 0000000..f44fdf0
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_2796b4() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_2796b4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_2796b4() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_2796b4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_2796b4() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_2796b4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
new file mode 100644
index 0000000..62095fd
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2ac6c7() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_2ac6c7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2ac6c7() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_2ac6c7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2ac6c7() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_2ac6c7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
new file mode 100644
index 0000000..39e2f5f
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2eb2a4() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_2eb2a4();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2eb2a4() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_2eb2a4();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2eb2a4() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_2eb2a4();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
new file mode 100644
index 0000000..3a9e59e
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2ed2a3() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_2ed2a3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2ed2a3() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_2ed2a3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_2ed2a3() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_2ed2a3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
new file mode 100644
index 0000000..3757584
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_31745b() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_31745b();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_31745b() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_31745b();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_31745b() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_31745b();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
new file mode 100644
index 0000000..5f404a8
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_32f368() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_32f368();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_32f368() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_32f368();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_32f368() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_32f368();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
new file mode 100644
index 0000000..e3ebdab
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_331aee() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_331aee();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_331aee() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_331aee();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_331aee() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_331aee();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
new file mode 100644
index 0000000..75832fe
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_38e8d7() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_38e8d7();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_38e8d7() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_38e8d7();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_38e8d7() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_38e8d7();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
new file mode 100644
index 0000000..6ee011b
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_3a52ac() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_3a52ac();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_3a52ac() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_3a52ac();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_3a52ac() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_3a52ac();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
new file mode 100644
index 0000000..f3fdbe6
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_3bb7a1() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_3bb7a1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_3bb7a1() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_3bb7a1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_3bb7a1() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_3bb7a1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
new file mode 100644
index 0000000..343d087
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_3bec15() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_3bec15();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_3bec15() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_3bec15();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_3bec15() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_3bec15();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
new file mode 100644
index 0000000..f54d419
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_441ba8() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_441ba8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_441ba8() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_441ba8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_441ba8() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_441ba8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
new file mode 100644
index 0000000..a13a1aa
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_4fc057() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_4fc057();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_4fc057() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_4fc057();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_4fc057() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_4fc057();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
new file mode 100644
index 0000000..facb619
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_5a2f8f() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_5a2f8f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_5a2f8f() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_5a2f8f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_5a2f8f() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_5a2f8f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
new file mode 100644
index 0000000..4c82be7
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_60975f() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_60975f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_60975f() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_60975f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_60975f() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_60975f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
new file mode 100644
index 0000000..2e03766
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_682fd6() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_682fd6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_682fd6() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_682fd6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_682fd6() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_682fd6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
new file mode 100644
index 0000000..1908674
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_6b75c3() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_6b75c3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_6b75c3() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_6b75c3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_6b75c3() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_6b75c3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
new file mode 100644
index 0000000..35dbe8f
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_6b80d2() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_6b80d2();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_6b80d2() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_6b80d2();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_6b80d2() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_6b80d2();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
new file mode 100644
index 0000000..c6e0183
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_6cff2e() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_6cff2e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_6cff2e() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_6cff2e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_6cff2e() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_6cff2e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
new file mode 100644
index 0000000..173ab8b
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_6da692() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_6da692();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_6da692() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_6da692();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_6da692() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_6da692();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
new file mode 100644
index 0000000..97d4a2c
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_731349() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_731349();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_731349() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_731349();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_731349() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_731349();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
new file mode 100644
index 0000000..7456a69
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_752da6() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_752da6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_752da6() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_752da6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_752da6() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_752da6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
new file mode 100644
index 0000000..cfd2c34
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_77c0ae() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_77c0ae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_77c0ae() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_77c0ae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_77c0ae() {
+ imageStore(arg_0, ivec2(0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_77c0ae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
new file mode 100644
index 0000000..cad1e7b
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_7cec8d() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_7cec8d();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_7cec8d() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_7cec8d();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_7cec8d() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_7cec8d();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
new file mode 100644
index 0000000..f11342c
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_7f7fae() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_7f7fae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_7f7fae() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_7f7fae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_7f7fae() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_7f7fae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
new file mode 100644
index 0000000..4cde48c
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_804942() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_804942();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_804942() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_804942();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_804942() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_804942();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
new file mode 100644
index 0000000..2c886bc
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_805dae() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_805dae();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_805dae() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_805dae();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_805dae() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_805dae();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
new file mode 100644
index 0000000..a637a68
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_83bcc1() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_83bcc1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_83bcc1() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_83bcc1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_83bcc1() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_83bcc1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
new file mode 100644
index 0000000..d134a09
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_872747() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_872747();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_872747() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_872747();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_872747() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_872747();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
new file mode 100644
index 0000000..983cf26
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_8e0479() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_8e0479();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_8e0479() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_8e0479();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_8e0479() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_8e0479();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
new file mode 100644
index 0000000..1b2ac3f
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_8f71a1() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_8f71a1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_8f71a1() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_8f71a1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_8f71a1() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_8f71a1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
new file mode 100644
index 0000000..c2885e6
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_969534() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_969534();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_969534() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_969534();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_969534() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_969534();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
new file mode 100644
index 0000000..b926142
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_9a3ecc() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_9a3ecc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_9a3ecc() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_9a3ecc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_9a3ecc() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_9a3ecc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
new file mode 100644
index 0000000..81b5fd3
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_9d9cd5() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_9d9cd5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_9d9cd5() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_9d9cd5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_9d9cd5() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_9d9cd5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
new file mode 100644
index 0000000..535d561
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_9e3ec5() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_9e3ec5();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_9e3ec5() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_9e3ec5();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_9e3ec5() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_9e3ec5();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
new file mode 100644
index 0000000..675296b
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ac67aa() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_ac67aa();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ac67aa() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_ac67aa();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ac67aa() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_ac67aa();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
new file mode 100644
index 0000000..3acec7e
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_b706b1() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_b706b1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_b706b1() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_b706b1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_b706b1() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_b706b1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
new file mode 100644
index 0000000..20c0646
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_bbcb7f() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_bbcb7f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_bbcb7f() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_bbcb7f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_bbcb7f() {
+ imageStore(arg_0, ivec2(0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_bbcb7f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
new file mode 100644
index 0000000..e7ea527
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_be6e30() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_be6e30();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_be6e30() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_be6e30();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D arg_0;
+
+void textureStore_be6e30() {
+ imageStore(arg_0, ivec2(0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_be6e30();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
new file mode 100644
index 0000000..7623f03
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_bf775c() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_bf775c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_bf775c() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_bf775c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_bf775c() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_bf775c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
new file mode 100644
index 0000000..8a3f3c8
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_c5af1e() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_c5af1e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_c5af1e() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_c5af1e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_c5af1e() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_c5af1e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
new file mode 100644
index 0000000..385f01f
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_c863be() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_c863be();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_c863be() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_c863be();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_c863be() {
+ imageStore(arg_0, ivec3(0, 0, 1), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_c863be();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
new file mode 100644
index 0000000..4273b57
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_d73b5c() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_d73b5c();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_d73b5c() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_d73b5c();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_d73b5c() {
+ imageStore(arg_0, 1, ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_d73b5c();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
new file mode 100644
index 0000000..7e56ff4
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_dd7d81() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_dd7d81();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_dd7d81() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_dd7d81();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_dd7d81() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_dd7d81();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
new file mode 100644
index 0000000..bc857ff
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_dde364() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_dde364();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_dde364() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_dde364();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_dde364() {
+ imageStore(arg_0, ivec3(0, 0, 1), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_dde364();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
new file mode 100644
index 0000000..8b379de
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_e885e8() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_e885e8();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_e885e8() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_e885e8();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_e885e8() {
+ imageStore(arg_0, 1, vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_e885e8();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
new file mode 100644
index 0000000..1108c67
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_eb702f() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_eb702f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_eb702f() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_eb702f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_eb702f() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_eb702f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
new file mode 100644
index 0000000..c009898
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_eb78b9() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_eb78b9();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_eb78b9() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_eb78b9();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_eb78b9() {
+ imageStore(arg_0, ivec3(0, 0, 0), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_eb78b9();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
new file mode 100644
index 0000000..fe34058
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ee6acc() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_ee6acc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ee6acc() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_ee6acc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ee6acc() {
+ imageStore(arg_0, ivec3(0, 0, 0), vec4(0.0f, 0.0f, 0.0f, 0.0f)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_ee6acc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'x' : does not apply to this type: global highp void
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
new file mode 100644
index 0000000..363aad9
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ef9f2f() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_ef9f2f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ef9f2f() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_ef9f2f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_ef9f2f() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_ef9f2f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
new file mode 100644
index 0000000..6ca19cd
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_f8dead() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_f8dead();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_f8dead() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_f8dead();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D arg_0;
+
+void textureStore_f8dead() {
+ imageStore(arg_0, ivec3(0, 0, 0), uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_f8dead();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
new file mode 100644
index 0000000..5bbfedc
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_f9be83() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_f9be83();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_f9be83() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_f9be83();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_f9be83() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_f9be83();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
new file mode 100644
index 0000000..a85cf19
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_fb9a8f() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_fb9a8f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_fb9a8f() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_fb9a8f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D arg_0;
+
+void textureStore_fb9a8f() {
+ imageStore(arg_0, 1, uvec4(0u, 0u, 0u, 0u)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_fb9a8f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
new file mode 100644
index 0000000..9f27edc
--- /dev/null
+++ b/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_fbf53f() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ textureStore_fbf53f();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_fbf53f() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ textureStore_fbf53f();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray arg_0;
+
+void textureStore_fbf53f() {
+ imageStore(arg_0, ivec3(0, 0, 1), ivec4(0, 0, 0, 0)).x;
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ textureStore_fbf53f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:7: 'imageStore' : no matching overloaded function found
+ERROR: 0:7: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
new file mode 100644
index 0000000..e53ed26
--- /dev/null
+++ b/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_2585cd() {
+ mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_2585cd();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_2585cd() {
+ mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_2585cd();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_2585cd() {
+ mat3x4 res = transpose(mat4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_2585cd();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl b/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
new file mode 100644
index 0000000..94c6b80
--- /dev/null
+++ b/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_31d679() {
+ mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_31d679();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_31d679() {
+ mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_31d679();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_31d679() {
+ mat2 res = transpose(mat2(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_31d679();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
new file mode 100644
index 0000000..84e5407
--- /dev/null
+++ b/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_31e37e() {
+ mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_31e37e();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_31e37e() {
+ mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_31e37e();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_31e37e() {
+ mat2x4 res = transpose(mat4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_31e37e();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
new file mode 100644
index 0000000..a03fa51
--- /dev/null
+++ b/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_4ce359() {
+ mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_4ce359();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_4ce359() {
+ mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_4ce359();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_4ce359() {
+ mat4x2 res = transpose(mat2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_4ce359();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
new file mode 100644
index 0000000..1597888
--- /dev/null
+++ b/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_4dc9a1() {
+ mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_4dc9a1();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_4dc9a1() {
+ mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_4dc9a1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_4dc9a1() {
+ mat3x2 res = transpose(mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_4dc9a1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl b/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
new file mode 100644
index 0000000..155bd35
--- /dev/null
+++ b/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_854336() {
+ mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_854336();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_854336() {
+ mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_854336();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_854336() {
+ mat3 res = transpose(mat3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_854336();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
new file mode 100644
index 0000000..682578a
--- /dev/null
+++ b/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_c1b600() {
+ mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_c1b600();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_c1b600() {
+ mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_c1b600();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_c1b600() {
+ mat4 res = transpose(mat4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_c1b600();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
new file mode 100644
index 0000000..86e5480
--- /dev/null
+++ b/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_d8f8ba() {
+ mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_d8f8ba();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_d8f8ba() {
+ mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_d8f8ba();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_d8f8ba() {
+ mat4x3 res = transpose(mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_d8f8ba();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
new file mode 100644
index 0000000..ae64003
--- /dev/null
+++ b/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void transpose_ed4bdc() {
+ mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ transpose_ed4bdc();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_ed4bdc() {
+ mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ transpose_ed4bdc();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void transpose_ed4bdc() {
+ mat2x3 res = transpose(mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ transpose_ed4bdc();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl b/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
new file mode 100644
index 0000000..ff3f6b2
--- /dev/null
+++ b/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void trunc_562d05() {
+ vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ trunc_562d05();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_562d05() {
+ vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ trunc_562d05();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_562d05() {
+ vec3 res = trunc(vec3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ trunc_562d05();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
new file mode 100644
index 0000000..cd8db12
--- /dev/null
+++ b/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void trunc_e183aa() {
+ vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ trunc_e183aa();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_e183aa() {
+ vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ trunc_e183aa();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_e183aa() {
+ vec4 res = trunc(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ trunc_e183aa();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
new file mode 100644
index 0000000..d809fe8
--- /dev/null
+++ b/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void trunc_eb83df() {
+ float res = trunc(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ trunc_eb83df();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_eb83df() {
+ float res = trunc(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ trunc_eb83df();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_eb83df() {
+ float res = trunc(1.0f);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ trunc_eb83df();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
new file mode 100644
index 0000000..32ce843
--- /dev/null
+++ b/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
@@ -0,0 +1,71 @@
+#version 310 es
+precision mediump float;
+
+void trunc_f370d3() {
+ vec2 res = trunc(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ trunc_f370d3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_f370d3() {
+ vec2 res = trunc(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ trunc_f370d3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void trunc_f370d3() {
+ vec2 res = trunc(vec2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ trunc_f370d3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
new file mode 100644
index 0000000..76beac1
--- /dev/null
+++ b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -0,0 +1,112 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16float(uint param_0) {
+ uint i = param_0;
+ return f16tof32(uint2(i & 0xffff, i >> 16));
+}
+
+
+void unpack2x16float_32a5cf() {
+ vec2 res = tint_unpack2x16float(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ unpack2x16float_32a5cf();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16float(uint param_0) {
+ uint i = param_0;
+ return f16tof32(uint2(i & 0xffff, i >> 16));
+}
+
+
+void unpack2x16float_32a5cf() {
+ vec2 res = tint_unpack2x16float(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ unpack2x16float_32a5cf();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp mediump uint' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16float(uint param_0) {
+ uint i = param_0;
+ return f16tof32(uint2(i & 0xffff, i >> 16));
+}
+
+
+void unpack2x16float_32a5cf() {
+ vec2 res = tint_unpack2x16float(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ unpack2x16float_32a5cf();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type ' temp highp uint' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
new file mode 100644
index 0000000..babc3da
--- /dev/null
+++ b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16snorm(uint param_0) {
+ int j = int(param_0);
+ int2 i = int2(j << 16, j) >> 16;
+ return clamp(float2(i) / 32767.0, -1.0, 1.0);
+}
+
+
+void unpack2x16snorm_b4aea6() {
+ vec2 res = tint_unpack2x16snorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ unpack2x16snorm_b4aea6();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'int2' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16snorm(uint param_0) {
+ int j = int(param_0);
+ int2 i = int2(j << 16, j) >> 16;
+ return clamp(float2(i) / 32767.0, -1.0, 1.0);
+}
+
+
+void unpack2x16snorm_b4aea6() {
+ vec2 res = tint_unpack2x16snorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ unpack2x16snorm_b4aea6();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'int2' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16snorm(uint param_0) {
+ int j = int(param_0);
+ int2 i = int2(j << 16, j) >> 16;
+ return clamp(float2(i) / 32767.0, -1.0, 1.0);
+}
+
+
+void unpack2x16snorm_b4aea6() {
+ vec2 res = tint_unpack2x16snorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ unpack2x16snorm_b4aea6();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'int2' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
new file mode 100644
index 0000000..7fe0e54
--- /dev/null
+++ b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16unorm(uint param_0) {
+ uint j = param_0;
+ uint2 i = uint2(j & 0xffff, j >> 16);
+ return float2(i) / 65535.0;
+}
+
+
+void unpack2x16unorm_7699c0() {
+ vec2 res = tint_unpack2x16unorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ unpack2x16unorm_7699c0();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'uint2' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16unorm(uint param_0) {
+ uint j = param_0;
+ uint2 i = uint2(j & 0xffff, j >> 16);
+ return float2(i) / 65535.0;
+}
+
+
+void unpack2x16unorm_7699c0() {
+ vec2 res = tint_unpack2x16unorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ unpack2x16unorm_7699c0();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'uint2' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec2 tint_unpack2x16unorm(uint param_0) {
+ uint j = param_0;
+ uint2 i = uint2(j & 0xffff, j >> 16);
+ return float2(i) / 65535.0;
+}
+
+
+void unpack2x16unorm_7699c0() {
+ vec2 res = tint_unpack2x16unorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ unpack2x16unorm_7699c0();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'uint2' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
new file mode 100644
index 0000000..b27d4c7
--- /dev/null
+++ b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec4 tint_unpack4x8snorm(uint param_0) {
+ int j = int(param_0);
+ int4 i = int4(j << 24, j << 16, j << 8, j) >> 24;
+ return clamp(float4(i) / 127.0, -1.0, 1.0);
+}
+
+
+void unpack4x8snorm_523fb3() {
+ vec4 res = tint_unpack4x8snorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ unpack4x8snorm_523fb3();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'int4' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec4 tint_unpack4x8snorm(uint param_0) {
+ int j = int(param_0);
+ int4 i = int4(j << 24, j << 16, j << 8, j) >> 24;
+ return clamp(float4(i) / 127.0, -1.0, 1.0);
+}
+
+
+void unpack4x8snorm_523fb3() {
+ vec4 res = tint_unpack4x8snorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ unpack4x8snorm_523fb3();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'int4' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec4 tint_unpack4x8snorm(uint param_0) {
+ int j = int(param_0);
+ int4 i = int4(j << 24, j << 16, j << 8, j) >> 24;
+ return clamp(float4(i) / 127.0, -1.0, 1.0);
+}
+
+
+void unpack4x8snorm_523fb3() {
+ vec4 res = tint_unpack4x8snorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ unpack4x8snorm_523fb3();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'int4' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
new file mode 100644
index 0000000..cb08c88
--- /dev/null
+++ b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -0,0 +1,115 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+vec4 tint_unpack4x8unorm(uint param_0) {
+ uint j = param_0;
+ uint4 i = uint4(j & 0xff, (j >> 8) & 0xff, (j >> 16) & 0xff, j >> 24);
+ return float4(i) / 255.0;
+}
+
+
+void unpack4x8unorm_750c74() {
+ vec4 res = tint_unpack4x8unorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+vec4 vertex_main_inner() {
+ unpack4x8unorm_750c74();
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+ vec4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = tint_symbol(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'uint4' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec4 tint_unpack4x8unorm(uint param_0) {
+ uint j = param_0;
+ uint4 i = uint4(j & 0xff, (j >> 8) & 0xff, (j >> 16) & 0xff, j >> 24);
+ return float4(i) / 255.0;
+}
+
+
+void unpack4x8unorm_750c74() {
+ vec4 res = tint_unpack4x8unorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+void fragment_main() {
+ unpack4x8unorm_750c74();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'uint4' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+vec4 tint_unpack4x8unorm(uint param_0) {
+ uint j = param_0;
+ uint4 i = uint4(j & 0xff, (j >> 8) & 0xff, (j >> 16) & 0xff, j >> 24);
+ return float4(i) / 255.0;
+}
+
+
+void unpack4x8unorm_750c74() {
+ vec4 res = tint_unpack4x8unorm(1u);
+}
+
+struct tint_symbol {
+ vec4 value;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ unpack4x8unorm_750c74();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:6: 'uint4' : undeclared identifier
+ERROR: 0:6: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
new file mode 100644
index 0000000..d923b6d
--- /dev/null
+++ b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+void workgroupBarrier_a17f7f() {
+ GroupMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ workgroupBarrier_a17f7f();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'GroupMemoryBarrierWithGroupSync' : no matching overloaded function found
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/ignore/call.wgsl.expected.glsl b/test/intrinsics/ignore/call.wgsl.expected.glsl
new file mode 100644
index 0000000..ce8e2b7
--- /dev/null
+++ b/test/intrinsics/ignore/call.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+intrinsics/ignore/call.wgsl:7:5 warning: use of deprecated intrinsic
+ ignore(f(1, 2, 3));
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+int f(int a, int b, int c) {
+ return ((a * b) + c);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ f(1, 2, 3);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl b/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl
new file mode 100644
index 0000000..1848860
--- /dev/null
+++ b/test/intrinsics/ignore/runtime_array.wgsl.expected.glsl
@@ -0,0 +1,22 @@
+intrinsics/ignore/runtime_array.wgsl:10:5 warning: use of deprecated intrinsic
+ ignore(s.arr);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int arr[];
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ s.arr;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl b/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
new file mode 100644
index 0000000..2571ad5
--- /dev/null
+++ b/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+intrinsics/ignore/storage_buffer.wgsl:10:5 warning: use of deprecated intrinsic
+ ignore(s);
+ ^^^^^^
+
+intrinsics/ignore/storage_buffer.wgsl:11:5 warning: use of deprecated intrinsic
+ ignore(s.i);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int i;
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ s;
+ s.i;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl b/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
new file mode 100644
index 0000000..9ed6461
--- /dev/null
+++ b/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+intrinsics/ignore/uniform_buffer.wgsl:10:5 warning: use of deprecated intrinsic
+ ignore(u);
+ ^^^^^^
+
+intrinsics/ignore/uniform_buffer.wgsl:11:5 warning: use of deprecated intrinsic
+ ignore(u.i);
+ ^^^^^^
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ int i;
+} u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ u;
+ u.i;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/intrinsics/modf.wgsl.expected.glsl b/test/intrinsics/modf.wgsl.expected.glsl
new file mode 100644
index 0000000..82a4213
--- /dev/null
+++ b/test/intrinsics/modf.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct modf_result {
+ float fract;
+ float whole;
+};
+modf_result tint_modf(float param_0) {
+ float whole;
+ float fract = modf(param_0, whole);
+ modf_result result = {fract, whole};
+ return result;
+}
+
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ modf_result res = tint_modf(1.230000019f);
+ float tint_symbol_1 = res.fract;
+ float whole = res.whole;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:11: '{ } style initializers' : not supported with this profile: es
+ERROR: 0:11: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/radians.spvasm.expected.glsl b/test/intrinsics/radians.spvasm.expected.glsl
new file mode 100644
index 0000000..b96f0c4
--- /dev/null
+++ b/test/intrinsics/radians.spvasm.expected.glsl
@@ -0,0 +1,21 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ float a = 0.0f;
+ float b = 0.0f;
+ a = 42.0f;
+ b = (a * 0.017453292f);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/intrinsics/repeated_use.wgsl.expected.glsl b/test/intrinsics/repeated_use.wgsl.expected.glsl
new file mode 100644
index 0000000..51cea44
--- /dev/null
+++ b/test/intrinsics/repeated_use.wgsl.expected.glsl
@@ -0,0 +1,58 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+ uint4 exponent = asuint(param_0) & 0x7f80000;
+ uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+bvec3 tint_isNormal_1(vec3 param_0) {
+ uint3 exponent = asuint(param_0) & 0x7f80000;
+ uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+bvec2 tint_isNormal_2(vec2 param_0) {
+ uint2 exponent = asuint(param_0) & 0x7f80000;
+ uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+bool tint_isNormal_3(float param_0) {
+ uint exponent = asuint(param_0) & 0x7f80000;
+ uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+ return clamped == exponent;
+}
+
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ tint_isNormal(vec4((1.0f).xxxx));
+ tint_isNormal(vec4(1.0f, 2.0f, 3.0f, 4.0f));
+ tint_isNormal_1(vec3(0.0f, 0.0f, 0.0f));
+ tint_isNormal_1(vec3((1.0f).xxx));
+ tint_isNormal_1(vec3(1.0f, 2.0f, 3.0f));
+ tint_isNormal_2(vec2(0.0f, 0.0f));
+ tint_isNormal_2(vec2((1.0f).xx));
+ tint_isNormal_2(vec2(1.0f, 2.0f));
+ tint_isNormal_3(1.0f);
+ tint_isNormal_3(2.0f);
+ tint_isNormal_3(3.0f);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
new file mode 100644
index 0000000..490cd99
--- /dev/null
+++ b/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
@@ -0,0 +1,118 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+vec4 tint_symbol_1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void textureDimensions_f60bdb() {
+ ivec2 res = ivec2(0, 0);
+ ivec2 x_16 = ivec2(textureSize(arg_0));
+ res = x_16;
+ return;
+}
+
+void tint_symbol_2(vec4 tint_symbol) {
+ tint_symbol_1 = tint_symbol;
+ return;
+}
+
+void vertex_main_1() {
+ textureDimensions_f60bdb();
+ tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+vertex_main_out vertex_main_inner() {
+ vertex_main_1();
+ vertex_main_out tint_symbol_4 = vertex_main_out(tint_symbol_1);
+ return tint_symbol_4;
+}
+
+tint_symbol_3 vertex_main() {
+ vertex_main_out inner_result = vertex_main_inner();
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.tint_symbol_1_1 = inner_result.tint_symbol_1_1;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_3 outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.tint_symbol_1_1;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_f60bdb() {
+ ivec2 res = ivec2(0, 0);
+ ivec2 x_16 = ivec2(textureSize(arg_0));
+ res = x_16;
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+void fragment_main_1() {
+ textureDimensions_f60bdb();
+ return;
+}
+
+void fragment_main() {
+ fragment_main_1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureDimensions_f60bdb() {
+ ivec2 res = ivec2(0, 0);
+ ivec2 x_16 = ivec2(textureSize(arg_0));
+ res = x_16;
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+void compute_main_1() {
+ textureDimensions_f60bdb();
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ compute_main_1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
new file mode 100644
index 0000000..0634d3f
--- /dev/null
+++ b/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
@@ -0,0 +1,141 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+vec4 tint_symbol_1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void textureLoad_6273b1() {
+ float res = 0.0f;
+ vec4 x_17 = vec4(texelFetch(arg_0, ivec3(0, 0, 0), 1).x, 0.0f, 0.0f, 0.0f);
+ res = x_17.x;
+ return;
+}
+
+void tint_symbol_2(vec4 tint_symbol) {
+ tint_symbol_1 = tint_symbol;
+ return;
+}
+
+void vertex_main_1() {
+ textureLoad_6273b1();
+ tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+vertex_main_out vertex_main_inner() {
+ vertex_main_1();
+ vertex_main_out tint_symbol_4 = vertex_main_out(tint_symbol_1);
+ return tint_symbol_4;
+}
+
+tint_symbol_3 vertex_main() {
+ vertex_main_out inner_result = vertex_main_inner();
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.tint_symbol_1_1 = inner_result.tint_symbol_1_1;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_3 outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.tint_symbol_1_1;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'texelFetch' : no matching overloaded function found
+ERROR: 0:9: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_6273b1() {
+ float res = 0.0f;
+ vec4 x_17 = vec4(texelFetch(arg_0, ivec3(0, 0, 0), 1).x, 0.0f, 0.0f, 0.0f);
+ res = x_17.x;
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+void fragment_main_1() {
+ textureLoad_6273b1();
+ return;
+}
+
+void fragment_main() {
+ fragment_main_1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texelFetch' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureLoad_6273b1() {
+ float res = 0.0f;
+ vec4 x_17 = vec4(texelFetch(arg_0, ivec3(0, 0, 0), 1).x, 0.0f, 0.0f, 0.0f);
+ res = x_17.x;
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+void compute_main_1() {
+ textureLoad_6273b1();
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ compute_main_1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'texelFetch' : no matching overloaded function found
+ERROR: 0:8: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
new file mode 100644
index 0000000..dab32c8
--- /dev/null
+++ b/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
@@ -0,0 +1,144 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+vec4 tint_symbol_1 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void textureNumSamples_a3c8a0() {
+ int res = 0;
+ int x_16 = textureSamples(arg_0);;
+ res = x_16;
+ return;
+}
+
+void tint_symbol_2(vec4 tint_symbol) {
+ tint_symbol_1 = tint_symbol;
+ return;
+}
+
+void vertex_main_1() {
+ textureNumSamples_a3c8a0();
+ tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+vertex_main_out vertex_main_inner() {
+ vertex_main_1();
+ vertex_main_out tint_symbol_4 = vertex_main_out(tint_symbol_1);
+ return tint_symbol_4;
+}
+
+tint_symbol_3 vertex_main() {
+ vertex_main_out inner_result = vertex_main_inner();
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.tint_symbol_1_1 = inner_result.tint_symbol_1_1;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_3 outputs;
+ outputs = vertex_main();
+ gl_Position = outputs.tint_symbol_1_1;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: 'textureSamples' : no matching overloaded function found
+ERROR: 0:9: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:9: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_a3c8a0() {
+ int res = 0;
+ int x_16 = textureSamples(arg_0);;
+ res = x_16;
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+void fragment_main_1() {
+ textureNumSamples_a3c8a0();
+ return;
+}
+
+void fragment_main() {
+ fragment_main_1();
+ return;
+}
+void main() {
+ fragment_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureSamples' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp mediump int'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS arg_0;
+
+void textureNumSamples_a3c8a0() {
+ int res = 0;
+ int x_16 = textureSamples(arg_0);;
+ res = x_16;
+ return;
+}
+
+struct vertex_main_out {
+ vec4 tint_symbol_1_1;
+};
+struct tint_symbol_3 {
+ vec4 tint_symbol_1_1;
+};
+
+void compute_main_1() {
+ textureNumSamples_a3c8a0();
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void compute_main() {
+ compute_main_1();
+ return;
+}
+void main() {
+ compute_main();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:8: 'textureSamples' : no matching overloaded function found
+ERROR: 0:8: '=' : cannot convert from ' const float' to ' temp highp int'
+ERROR: 0:8: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..3859a1d
--- /dev/null
+++ b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer SSBO_1 {
+ mat2 m;
+} ssbo;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ mat2 v = ssbo.m;
+ ssbo.m = v;
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
new file mode 100644
index 0000000..5b84d7f
--- /dev/null
+++ b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
@@ -0,0 +1,36 @@
+#version 310 es
+precision mediump float;
+
+struct tint_padded_array_element {
+ vec2 el;
+};
+
+layout (binding = 0) buffer SSBO_1 {
+ tint_padded_array_element m[2];
+} ssbo;
+
+mat2 arr_to_mat2x2_stride_16(tint_padded_array_element arr[2]) {
+ return mat2(arr[0u].el, arr[1u].el);
+}
+
+tint_padded_array_element[2] mat2x2_stride_16_to_arr(mat2 mat) {
+ tint_padded_array_element tint_symbol[2] = tint_padded_array_element[2](tint_padded_array_element(mat[0u]), tint_padded_array_element(mat[1u]));
+ return tint_symbol;
+}
+
+void f_1() {
+ mat2 x_15 = arr_to_mat2x2_stride_16(ssbo.m);
+ ssbo.m = mat2x2_stride_16_to_arr(x_15);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ f_1();
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/let/global/global.wgsl.expected.glsl b/test/let/global/global.wgsl.expected.glsl
new file mode 100644
index 0000000..daeec49
--- /dev/null
+++ b/test/let/global/global.wgsl.expected.glsl
@@ -0,0 +1,39 @@
+#version 310 es
+precision mediump float;
+
+struct MyStruct {
+ float f1;
+};
+
+const int v1 = 1;
+const uint v2 = 1u;
+const float v3 = 1.0f;
+const ivec3 v4 = ivec3(1, 1, 1);
+const uvec3 v5 = uvec3(1u, 1u, 1u);
+const vec3 v6 = vec3(1.0f, 1.0f, 1.0f);
+const mat3 v7 = mat3(vec3(1.0f, 1.0f, 1.0f), vec3(1.0f, 1.0f, 1.0f), vec3(1.0f, 1.0f, 1.0f));
+const MyStruct v8 = MyStruct(0.0f);
+const float v9[10] = float[10](0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+out vec4 value;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ value = outputs.value;
+}
+
+
diff --git a/test/let/inferred/function.wgsl.expected.glsl b/test/let/inferred/function.wgsl.expected.glsl
new file mode 100644
index 0000000..188a6da
--- /dev/null
+++ b/test/let/inferred/function.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+#version 310 es
+precision mediump float;
+
+struct MyStruct {
+ float f1;
+};
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+out vec4 value;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ value = outputs.value;
+}
+
+
diff --git a/test/loops/continue_in_switch.wgsl.expected.glsl b/test/loops/continue_in_switch.wgsl.expected.glsl
new file mode 100644
index 0000000..f339404
--- /dev/null
+++ b/test/loops/continue_in_switch.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ {
+ for(int i = 0; (i < 4); i = (i + 1)) {
+ switch(i) {
+ case 0: {
+ continue;
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+ }
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/loops/loop.wgsl.expected.glsl b/test/loops/loop.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/loops/loop.wgsl.expected.glsl
diff --git a/test/loops/loop_with_continuing.wgsl.expected.glsl b/test/loops/loop_with_continuing.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/loops/loop_with_continuing.wgsl.expected.glsl
diff --git a/test/loops/nested_loops.wgsl.expected.glsl b/test/loops/nested_loops.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/loops/nested_loops.wgsl.expected.glsl
diff --git a/test/loops/nested_loops_with_continuing.wgsl.expected.glsl b/test/loops/nested_loops_with_continuing.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/loops/nested_loops_with_continuing.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat2x2.wgsl.expected.glsl b/test/matrix/constructor/elements/mat2x2.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat2x2.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat2x3.wgsl.expected.glsl b/test/matrix/constructor/elements/mat2x3.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat2x3.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat2x4.wgsl.expected.glsl b/test/matrix/constructor/elements/mat2x4.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat2x4.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat3x2.wgsl.expected.glsl b/test/matrix/constructor/elements/mat3x2.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat3x2.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat3x3.wgsl.expected.glsl b/test/matrix/constructor/elements/mat3x3.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat3x3.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat3x4.wgsl.expected.glsl b/test/matrix/constructor/elements/mat3x4.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat3x4.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat4x2.wgsl.expected.glsl b/test/matrix/constructor/elements/mat4x2.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat4x2.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat4x3.wgsl.expected.glsl b/test/matrix/constructor/elements/mat4x3.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat4x3.wgsl.expected.glsl
diff --git a/test/matrix/constructor/elements/mat4x4.wgsl.expected.glsl b/test/matrix/constructor/elements/mat4x4.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/matrix/constructor/elements/mat4x4.wgsl.expected.glsl
diff --git a/test/ptr_ref/access/matrix.spvasm.expected.glsl b/test/ptr_ref/access/matrix.spvasm.expected.glsl
new file mode 100644
index 0000000..8528cd5
--- /dev/null
+++ b/test/ptr_ref/access/matrix.spvasm.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ mat3 m = mat3(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
+ m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ m[1] = vec3(5.0f, 5.0f, 5.0f);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/access/matrix.wgsl.expected.glsl b/test/ptr_ref/access/matrix.wgsl.expected.glsl
new file mode 100644
index 0000000..e76a7fd
--- /dev/null
+++ b/test/ptr_ref/access/matrix.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ mat3 m = mat3(vec3(1.0f, 2.0f, 3.0f), vec3(4.0f, 5.0f, 6.0f), vec3(7.0f, 8.0f, 9.0f));
+ m[1] = vec3(5.0f, 5.0f, 5.0f);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl b/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl
new file mode 100644
index 0000000..8c4e0ce
--- /dev/null
+++ b/test/ptr_ref/copy/ptr_copy.spvasm.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ uint x_10 = 0u;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/global/i32.spvasm.expected.glsl b/test/ptr_ref/load/global/i32.spvasm.expected.glsl
new file mode 100644
index 0000000..e3ffc25
--- /dev/null
+++ b/test/ptr_ref/load/global/i32.spvasm.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+int I = 0;
+
+void main_1() {
+ int x_11 = (I + 1);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/global/i32.wgsl.expected.glsl b/test/ptr_ref/load/global/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..1e87672
--- /dev/null
+++ b/test/ptr_ref/load/global/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+int I = 0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int use = (I + 1);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl b/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl
new file mode 100644
index 0000000..631eeb8
--- /dev/null
+++ b/test/ptr_ref/load/global/struct_field.spvasm.expected.glsl
@@ -0,0 +1,26 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int i;
+};
+
+S V = S(0);
+
+void main_1() {
+ int i = 0;
+ int x_15 = V.i;
+ i = x_15;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl b/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl
new file mode 100644
index 0000000..5451a7a
--- /dev/null
+++ b/test/ptr_ref/load/global/struct_field.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int i;
+};
+
+S V = S(0);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int i = V.i;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/i32.spvasm.expected.glsl b/test/ptr_ref/load/local/i32.spvasm.expected.glsl
new file mode 100644
index 0000000..848563f
--- /dev/null
+++ b/test/ptr_ref/load/local/i32.spvasm.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ int i = 0;
+ i = 123;
+ int x_12 = (i + 1);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/i32.wgsl.expected.glsl b/test/ptr_ref/load/local/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..87a16da
--- /dev/null
+++ b/test/ptr_ref/load/local/i32.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int i = 123;
+ int use = (i + 1);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl
new file mode 100644
index 0000000..87a16da
--- /dev/null
+++ b/test/ptr_ref/load/local/ptr_function.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int i = 123;
+ int use = (i + 1);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl
new file mode 100644
index 0000000..87e4b5e
--- /dev/null
+++ b/test/ptr_ref/load/local/ptr_private.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+int i = 123;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int use = (i + 1);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
new file mode 100644
index 0000000..84dff04
--- /dev/null
+++ b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int a;
+} v;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int use = (v.a + 1);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
new file mode 100644
index 0000000..9e4df2a
--- /dev/null
+++ b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ int a;
+} v;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int use = (v.a + 1);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
new file mode 100644
index 0000000..c27e6cd
--- /dev/null
+++ b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.glsl
@@ -0,0 +1,38 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int i;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void tint_symbol_inner(uint local_invocation_index) {
+ {
+ i = 0;
+ }
+ GroupMemoryBarrierWithGroupSync();
+ i = 123;
+ int use = (i + 1);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl b/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl
new file mode 100644
index 0000000..9a7994a
--- /dev/null
+++ b/test/ptr_ref/load/local/struct_field.spvasm.expected.glsl
@@ -0,0 +1,25 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int i;
+};
+
+void main_1() {
+ int i = 0;
+ S V = S(0);
+ int x_14 = V.i;
+ i = x_14;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl b/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl
new file mode 100644
index 0000000..9e372f3
--- /dev/null
+++ b/test/ptr_ref/load/local/struct_field.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int i;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ S V = S(0);
+ int i = V.i;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/param/ptr.spvasm.expected.glsl b/test/ptr_ref/load/param/ptr.spvasm.expected.glsl
new file mode 100644
index 0000000..847dadd
--- /dev/null
+++ b/test/ptr_ref/load/param/ptr.spvasm.expected.glsl
@@ -0,0 +1,25 @@
+#version 310 es
+precision mediump float;
+
+int func(int value, inout int pointer) {
+ int x_9 = pointer;
+ return (value + x_9);
+}
+
+void main_1() {
+ int i = 0;
+ i = 123;
+ int x_18 = func(i, i);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/load/param/ptr.wgsl.expected.glsl b/test/ptr_ref/load/param/ptr.wgsl.expected.glsl
new file mode 100644
index 0000000..2323a1c
--- /dev/null
+++ b/test/ptr_ref/load/param/ptr.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+int func(int value, inout int pointer) {
+ return (value + pointer);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int i = 123;
+ int r = func(i, i);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/global/i32.spvasm.expected.glsl b/test/ptr_ref/store/global/i32.spvasm.expected.glsl
new file mode 100644
index 0000000..12117ac
--- /dev/null
+++ b/test/ptr_ref/store/global/i32.spvasm.expected.glsl
@@ -0,0 +1,21 @@
+#version 310 es
+precision mediump float;
+
+int I = 0;
+
+void main_1() {
+ I = 123;
+ I = ((100 + 20) + 3);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/global/i32.wgsl.expected.glsl b/test/ptr_ref/store/global/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..fec11c1
--- /dev/null
+++ b/test/ptr_ref/store/global/i32.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+int I = 0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ I = 123;
+ I = ((100 + 20) + 3);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl b/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl
new file mode 100644
index 0000000..75f6126
--- /dev/null
+++ b/test/ptr_ref/store/global/struct_field.spvasm.expected.glsl
@@ -0,0 +1,24 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int i;
+};
+
+S V = S(0);
+
+void main_1() {
+ V.i = 5;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/local/i32.spvasm.expected.glsl b/test/ptr_ref/store/local/i32.spvasm.expected.glsl
new file mode 100644
index 0000000..fcf6afb
--- /dev/null
+++ b/test/ptr_ref/store/local/i32.spvasm.expected.glsl
@@ -0,0 +1,21 @@
+#version 310 es
+precision mediump float;
+
+void main_1() {
+ int i = 0;
+ i = 123;
+ i = 123;
+ i = ((100 + 20) + 3);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/local/i32.wgsl.expected.glsl b/test/ptr_ref/store/local/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..0364846
--- /dev/null
+++ b/test/ptr_ref/store/local/i32.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int i = 123;
+ i = 123;
+ i = ((100 + 20) + 3);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl b/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl
new file mode 100644
index 0000000..d7921f1
--- /dev/null
+++ b/test/ptr_ref/store/local/struct_field.spvasm.expected.glsl
@@ -0,0 +1,23 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int i;
+};
+
+void main_1() {
+ S V = S(0);
+ V.i = 5;
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/param/ptr.spvasm.expected.glsl b/test/ptr_ref/store/param/ptr.spvasm.expected.glsl
new file mode 100644
index 0000000..cd8b75c
--- /dev/null
+++ b/test/ptr_ref/store/param/ptr.spvasm.expected.glsl
@@ -0,0 +1,25 @@
+#version 310 es
+precision mediump float;
+
+void func(int value, inout int pointer) {
+ pointer = value;
+ return;
+}
+
+void main_1() {
+ int i = 0;
+ i = 123;
+ func(123, i);
+ return;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ main_1();
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/ptr_ref/store/param/ptr.wgsl.expected.glsl b/test/ptr_ref/store/param/ptr.wgsl.expected.glsl
new file mode 100644
index 0000000..9e4326c
--- /dev/null
+++ b/test/ptr_ref/store/param/ptr.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+void func(int value, inout int pointer) {
+ pointer = value;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int i = 123;
+ func(123, i);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/samples/compute_boids.wgsl.expected.glsl b/test/samples/compute_boids.wgsl.expected.glsl
new file mode 100644
index 0000000..b924fd4
--- /dev/null
+++ b/test/samples/compute_boids.wgsl.expected.glsl
@@ -0,0 +1,201 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ vec2 a_particlePos;
+ vec2 a_particleVel;
+ vec2 a_pos;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 vert_main_inner(vec2 a_particlePos, vec2 a_particleVel, vec2 a_pos) {
+ float angle = -(atan(a_particleVel.x, a_particleVel.y));
+ vec2 pos = vec2(((a_pos.x * cos(angle)) - (a_pos.y * sin(angle))), ((a_pos.x * sin(angle)) + (a_pos.y * cos(angle))));
+ return vec4((pos + a_particlePos), 0.0f, 1.0f);
+}
+
+struct tint_symbol_4 {
+ vec4 value;
+};
+struct Particle {
+ vec2 pos;
+ vec2 vel;
+};
+struct tint_symbol_6 {
+ uvec3 tint_symbol;
+};
+
+tint_symbol_3 vert_main(tint_symbol_2 tint_symbol_1) {
+ vec4 inner_result = vert_main_inner(tint_symbol_1.a_particlePos, tint_symbol_1.a_particleVel, tint_symbol_1.a_pos);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+in vec2 a_particlePos;
+in vec2 a_particleVel;
+in vec2 a_pos;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.a_particlePos = a_particlePos;
+ inputs.a_particleVel = a_particleVel;
+ inputs.a_pos = a_pos;
+ tint_symbol_3 outputs;
+ outputs = vert_main(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ vec2 a_particlePos;
+ vec2 a_particleVel;
+ vec2 a_pos;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+struct tint_symbol_4 {
+ vec4 value;
+};
+
+vec4 frag_main_inner() {
+ return vec4(1.0f, 1.0f, 1.0f, 1.0f);
+}
+
+struct Particle {
+ vec2 pos;
+ vec2 vel;
+};
+struct tint_symbol_6 {
+ uvec3 tint_symbol;
+};
+
+tint_symbol_4 frag_main() {
+ vec4 inner_result_1 = frag_main_inner();
+ tint_symbol_4 wrapper_result_1 = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+out vec4 value;
+void main() {
+ tint_symbol_4 outputs;
+ outputs = frag_main();
+ value = outputs.value;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ vec2 a_particlePos;
+ vec2 a_particleVel;
+ vec2 a_pos;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+struct tint_symbol_4 {
+ vec4 value;
+};
+struct Particle {
+ vec2 pos;
+ vec2 vel;
+};
+
+layout (binding = 0) uniform SimParams_1 {
+ float deltaT;
+ float rule1Distance;
+ float rule2Distance;
+ float rule3Distance;
+ float rule1Scale;
+ float rule2Scale;
+ float rule3Scale;
+} params;
+layout (binding = 1) buffer Particles_1 {
+ Particle particles[5];
+} particlesA;
+layout (binding = 2) buffer Particles_2 {
+ Particle particles[5];
+} particlesB;
+
+struct tint_symbol_6 {
+ uvec3 tint_symbol;
+};
+
+void comp_main_inner(uvec3 tint_symbol) {
+ uint index = tint_symbol.x;
+ if ((index >= 5u)) {
+ return;
+ }
+ vec2 vPos = particlesA.particles[index].pos;
+ vec2 vVel = particlesA.particles[index].vel;
+ vec2 cMass = vec2(0.0f, 0.0f);
+ vec2 cVel = vec2(0.0f, 0.0f);
+ vec2 colVel = vec2(0.0f, 0.0f);
+ int cMassCount = 0;
+ int cVelCount = 0;
+ vec2 pos = vec2(0.0f, 0.0f);
+ vec2 vel = vec2(0.0f, 0.0f);
+ {
+ for(uint i = 0u; (i < 5u); i = (i + 1u)) {
+ if ((i == index)) {
+ continue;
+ }
+ pos = particlesA.particles[i].pos.xy;
+ vel = particlesA.particles[i].vel.xy;
+ if ((distance(pos, vPos) < params.rule1Distance)) {
+ cMass = (cMass + pos);
+ cMassCount = (cMassCount + 1);
+ }
+ if ((distance(pos, vPos) < params.rule2Distance)) {
+ colVel = (colVel - (pos - vPos));
+ }
+ if ((distance(pos, vPos) < params.rule3Distance)) {
+ cVel = (cVel + vel);
+ cVelCount = (cVelCount + 1);
+ }
+ }
+ }
+ if ((cMassCount > 0)) {
+ cMass = ((cMass / vec2(float(cMassCount), float(cMassCount))) - vPos);
+ }
+ if ((cVelCount > 0)) {
+ cVel = (cVel / vec2(float(cVelCount), float(cVelCount)));
+ }
+ vVel = (((vVel + (cMass * params.rule1Scale)) + (colVel * params.rule2Scale)) + (cVel * params.rule3Scale));
+ vVel = (normalize(vVel) * clamp(length(vVel), 0.0f, 0.100000001f));
+ vPos = (vPos + (vVel * params.deltaT));
+ if ((vPos.x < -1.0f)) {
+ vPos.x = 1.0f;
+ }
+ if ((vPos.x > 1.0f)) {
+ vPos.x = -1.0f;
+ }
+ if ((vPos.y < -1.0f)) {
+ vPos.y = 1.0f;
+ }
+ if ((vPos.y > 1.0f)) {
+ vPos.y = -1.0f;
+ }
+ particlesB.particles[index].pos = vPos;
+ particlesB.particles[index].vel = vVel;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void comp_main(tint_symbol_6 tint_symbol_5) {
+ comp_main_inner(tint_symbol_5.tint_symbol);
+ return;
+}
+void main() {
+ tint_symbol_6 inputs;
+ inputs.tint_symbol = gl_GlobalInvocationID;
+ comp_main(inputs);
+}
+
+
diff --git a/test/samples/cube.wgsl.expected.glsl b/test/samples/cube.wgsl.expected.glsl
new file mode 100644
index 0000000..1afe19d
--- /dev/null
+++ b/test/samples/cube.wgsl.expected.glsl
@@ -0,0 +1,109 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform Uniforms_1 {
+ mat4 modelViewProjectionMatrix;
+} uniforms;
+
+struct VertexInput {
+ vec4 cur_position;
+ vec4 color;
+};
+struct VertexOutput {
+ vec4 vtxFragColor;
+ vec4 Position;
+};
+struct tint_symbol_3 {
+ vec4 cur_position;
+ vec4 color;
+};
+struct tint_symbol_4 {
+ vec4 vtxFragColor;
+ vec4 Position;
+};
+
+VertexOutput vtx_main_inner(VertexInput tint_symbol) {
+ VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ tint_symbol_1.Position = (uniforms.modelViewProjectionMatrix * tint_symbol.cur_position);
+ tint_symbol_1.vtxFragColor = tint_symbol.color;
+ return tint_symbol_1;
+}
+
+struct tint_symbol_6 {
+ vec4 fragColor;
+};
+struct tint_symbol_7 {
+ vec4 value;
+};
+
+tint_symbol_4 vtx_main(tint_symbol_3 tint_symbol_2) {
+ VertexInput tint_symbol_8 = VertexInput(tint_symbol_2.cur_position, tint_symbol_2.color);
+ VertexOutput inner_result = vtx_main_inner(tint_symbol_8);
+ tint_symbol_4 wrapper_result = tint_symbol_4(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.vtxFragColor = inner_result.vtxFragColor;
+ wrapper_result.Position = inner_result.Position;
+ return wrapper_result;
+}
+in vec4 cur_position;
+in vec4 color;
+out vec4 vtxFragColor;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.cur_position = cur_position;
+ inputs.color = color;
+ tint_symbol_4 outputs;
+ outputs = vtx_main(inputs);
+ vtxFragColor = outputs.vtxFragColor;
+ gl_Position = outputs.Position;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct VertexInput {
+ vec4 cur_position;
+ vec4 color;
+};
+struct VertexOutput {
+ vec4 vtxFragColor;
+ vec4 Position;
+};
+struct tint_symbol_3 {
+ vec4 cur_position;
+ vec4 color;
+};
+struct tint_symbol_4 {
+ vec4 vtxFragColor;
+ vec4 Position;
+};
+struct tint_symbol_6 {
+ vec4 fragColor;
+};
+struct tint_symbol_7 {
+ vec4 value;
+};
+
+vec4 frag_main_inner(vec4 fragColor) {
+ return fragColor;
+}
+
+tint_symbol_7 frag_main(tint_symbol_6 tint_symbol_5) {
+ vec4 inner_result_1 = frag_main_inner(tint_symbol_5.fragColor);
+ tint_symbol_7 wrapper_result_1 = tint_symbol_7(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+in vec4 fragColor;
+out vec4 value;
+void main() {
+ tint_symbol_6 inputs;
+ inputs.fragColor = fragColor;
+ tint_symbol_7 outputs;
+ outputs = frag_main(inputs);
+ value = outputs.value;
+}
+
+
diff --git a/test/samples/function.wgsl.expected.glsl b/test/samples/function.wgsl.expected.glsl
new file mode 100644
index 0000000..4a81677
--- /dev/null
+++ b/test/samples/function.wgsl.expected.glsl
@@ -0,0 +1,12 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in;
+void ep() {
+ return;
+}
+void main() {
+ ep();
+}
+
+
diff --git a/test/samples/simple.wgsl.expected.glsl b/test/samples/simple.wgsl.expected.glsl
new file mode 100644
index 0000000..10830b0
--- /dev/null
+++ b/test/samples/simple.wgsl.expected.glsl
@@ -0,0 +1,30 @@
+#version 310 es
+precision mediump float;
+
+void bar() {
+}
+
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ vec2 a = vec2(0.0f, 0.0f);
+ bar();
+ return vec4(0.400000006f, 0.400000006f, 0.800000012f, 1.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+out vec4 value;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ value = outputs.value;
+}
+
+
diff --git a/test/samples/simple_vertex.spvasm.expected.glsl b/test/samples/simple_vertex.spvasm.expected.glsl
new file mode 100644
index 0000000..fc281a4
--- /dev/null
+++ b/test/samples/simple_vertex.spvasm.expected.glsl
@@ -0,0 +1,37 @@
+#version 310 es
+precision mediump float;
+
+vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+
+void main_1() {
+ tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ return;
+}
+
+struct main_out {
+ vec4 tint_symbol;
+};
+struct tint_symbol_2 {
+ vec4 tint_symbol;
+};
+
+main_out tint_symbol_1_inner() {
+ main_1();
+ main_out tint_symbol_3 = main_out(tint_symbol);
+ return tint_symbol_3;
+}
+
+tint_symbol_2 tint_symbol_1() {
+ main_out inner_result = tint_symbol_1_inner();
+ tint_symbol_2 wrapper_result = tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.tint_symbol = inner_result.tint_symbol;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_2 outputs;
+ outputs = tint_symbol_1();
+ gl_Position = outputs.tint_symbol;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/samples/triangle.wgsl.expected.glsl b/test/samples/triangle.wgsl.expected.glsl
new file mode 100644
index 0000000..1604370
--- /dev/null
+++ b/test/samples/triangle.wgsl.expected.glsl
@@ -0,0 +1,66 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_1 {
+ uint VertexIndex;
+};
+struct tint_symbol_2 {
+ vec4 value;
+};
+
+vec4 vtx_main_inner(uint VertexIndex) {
+ vec2 pos[3] = vec2[3](vec2(0.0f, 0.5f), vec2(-0.5f, -0.5f), vec2(0.5f, -0.5f));
+ return vec4(pos[VertexIndex], 0.0f, 1.0f);
+}
+
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+tint_symbol_2 vtx_main(tint_symbol_1 tint_symbol) {
+ vec4 inner_result = vtx_main_inner(tint_symbol.VertexIndex);
+ tint_symbol_2 wrapper_result = tint_symbol_2(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.VertexIndex = uint(gl_VertexID);
+ tint_symbol_2 outputs;
+ outputs = vtx_main(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_1 {
+ uint VertexIndex;
+};
+struct tint_symbol_2 {
+ vec4 value;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 frag_main_inner() {
+ return vec4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+
+tint_symbol_3 frag_main() {
+ vec4 inner_result_1 = frag_main_inner();
+ tint_symbol_3 wrapper_result_1 = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+out vec4 value;
+void main() {
+ tint_symbol_3 outputs;
+ outputs = frag_main();
+ value = outputs.value;
+}
+
+
diff --git a/test/shader_io/compute_input_builtins.wgsl.expected.glsl b/test/shader_io/compute_input_builtins.wgsl.expected.glsl
new file mode 100644
index 0000000..992a1ba
--- /dev/null
+++ b/test/shader_io/compute_input_builtins.wgsl.expected.glsl
@@ -0,0 +1,41 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ uvec3 local_invocation_id;
+ uint local_invocation_index;
+ uvec3 global_invocation_id;
+ uvec3 workgroup_id;
+ uvec3 num_workgroups;
+};
+
+void tint_symbol_inner(uvec3 local_invocation_id, uint local_invocation_index, uvec3 global_invocation_id, uvec3 workgroup_id, uvec3 num_workgroups) {
+ uint foo = ((((local_invocation_id.x + local_invocation_index) + global_invocation_id.x) + workgroup_id.x) + num_workgroups.x);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_id, tint_symbol_1.local_invocation_index, tint_symbol_1.global_invocation_id, tint_symbol_1.workgroup_id, tint_symbol_1.num_workgroups);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_id = gl_LocalInvocationID;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ inputs.global_invocation_id = gl_GlobalInvocationID;
+ inputs.workgroup_id = gl_WorkGroupID;
+ inputs.num_workgroups = uvec3();
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:27: 'constructor' : not enough data provided for construction
+ERROR: 0:27: 'assign' : cannot convert from ' const float' to ' global highp 3-component vector of uint'
+ERROR: 0:27: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..4952e91
--- /dev/null
+++ b/test/shader_io/compute_input_builtins_struct.wgsl.expected.glsl
@@ -0,0 +1,49 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct ComputeInputs {
+ uvec3 local_invocation_id;
+ uint local_invocation_index;
+ uvec3 global_invocation_id;
+ uvec3 workgroup_id;
+ uvec3 num_workgroups;
+};
+struct tint_symbol_2 {
+ uvec3 local_invocation_id;
+ uint local_invocation_index;
+ uvec3 global_invocation_id;
+ uvec3 workgroup_id;
+ uvec3 num_workgroups;
+};
+
+void tint_symbol_inner(ComputeInputs inputs) {
+ uint foo = ((((inputs.local_invocation_id.x + inputs.local_invocation_index) + inputs.global_invocation_id.x) + inputs.workgroup_id.x) + inputs.num_workgroups.x);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ ComputeInputs tint_symbol_3 = ComputeInputs(tint_symbol_1.local_invocation_id, tint_symbol_1.local_invocation_index, tint_symbol_1.global_invocation_id, tint_symbol_1.workgroup_id, tint_symbol_1.num_workgroups);
+ tint_symbol_inner(tint_symbol_3);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_id = gl_LocalInvocationID;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ inputs.global_invocation_id = gl_GlobalInvocationID;
+ inputs.workgroup_id = gl_WorkGroupID;
+ inputs.num_workgroups = uvec3();
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:35: 'constructor' : not enough data provided for construction
+ERROR: 0:35: 'assign' : cannot convert from ' const float' to ' global highp 3-component vector of uint'
+ERROR: 0:35: '' : compilation terminated
+ERROR: 3 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/compute_input_mixed.wgsl.expected.glsl b/test/shader_io/compute_input_mixed.wgsl.expected.glsl
new file mode 100644
index 0000000..763d31e
--- /dev/null
+++ b/test/shader_io/compute_input_mixed.wgsl.expected.glsl
@@ -0,0 +1,37 @@
+#version 310 es
+precision mediump float;
+
+struct ComputeInputs0 {
+ uvec3 local_invocation_id;
+};
+struct ComputeInputs1 {
+ uvec3 workgroup_id;
+};
+struct tint_symbol_2 {
+ uvec3 local_invocation_id;
+ uint local_invocation_index;
+ uvec3 global_invocation_id;
+ uvec3 workgroup_id;
+};
+
+void tint_symbol_inner(ComputeInputs0 inputs0, uint local_invocation_index, uvec3 global_invocation_id, ComputeInputs1 inputs1) {
+ uint foo = (((inputs0.local_invocation_id.x + local_invocation_index) + global_invocation_id.x) + inputs1.workgroup_id.x);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ ComputeInputs0 tint_symbol_3 = ComputeInputs0(tint_symbol_1.local_invocation_id);
+ ComputeInputs1 tint_symbol_4 = ComputeInputs1(tint_symbol_1.workgroup_id);
+ tint_symbol_inner(tint_symbol_3, tint_symbol_1.local_invocation_index, tint_symbol_1.global_invocation_id, tint_symbol_4);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_id = gl_LocalInvocationID;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ inputs.global_invocation_id = gl_GlobalInvocationID;
+ inputs.workgroup_id = gl_WorkGroupID;
+ tint_symbol(inputs);
+}
+
+
diff --git a/test/shader_io/fragment_input_builtins.wgsl.expected.glsl b/test/shader_io/fragment_input_builtins.wgsl.expected.glsl
new file mode 100644
index 0000000..cef02b4
--- /dev/null
+++ b/test/shader_io/fragment_input_builtins.wgsl.expected.glsl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ vec4 position;
+ bool front_facing;
+ uint sample_index;
+ uint sample_mask;
+};
+
+void tint_symbol_inner(vec4 position, bool front_facing, uint sample_index, uint sample_mask) {
+ if (front_facing) {
+ vec4 foo = position;
+ uint bar = (sample_index + sample_mask);
+ }
+}
+
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.position, tint_symbol_1.front_facing, tint_symbol_1.sample_index, tint_symbol_1.sample_mask);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.position = gl_FragCoord;
+ inputs.front_facing = gl_FrontFacing;
+ inputs.sample_index = uint(gl_SampleID);
+ inputs.sample_mask = uint(gl_SampleMask);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:26: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:26: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..a7299c1
--- /dev/null
+++ b/test/shader_io/fragment_input_builtins_struct.wgsl.expected.glsl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct FragmentInputs {
+ vec4 position;
+ bool front_facing;
+ uint sample_index;
+ uint sample_mask;
+};
+struct tint_symbol_2 {
+ vec4 position;
+ bool front_facing;
+ uint sample_index;
+ uint sample_mask;
+};
+
+void tint_symbol_inner(FragmentInputs inputs) {
+ if (inputs.front_facing) {
+ vec4 foo = inputs.position;
+ uint bar = (inputs.sample_index + inputs.sample_mask);
+ }
+}
+
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ FragmentInputs tint_symbol_3 = FragmentInputs(tint_symbol_1.position, tint_symbol_1.front_facing, tint_symbol_1.sample_index, tint_symbol_1.sample_mask);
+ tint_symbol_inner(tint_symbol_3);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.position = gl_FragCoord;
+ inputs.front_facing = gl_FrontFacing;
+ inputs.sample_index = uint(gl_SampleID);
+ inputs.sample_mask = uint(gl_SampleMask);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:33: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:33: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_input_locations.wgsl.expected.glsl b/test/shader_io/fragment_input_locations.wgsl.expected.glsl
new file mode 100644
index 0000000..b5a0b0e
--- /dev/null
+++ b/test/shader_io/fragment_input_locations.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+
+void tint_symbol_inner(int loc0, uint loc1, float loc2, vec4 loc3) {
+ int i = loc0;
+ uint u = loc1;
+ float f = loc2;
+ vec4 v = loc3;
+}
+
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
+ return;
+}
+in int loc0;
+in uint loc1;
+in float loc2;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc2 = loc2;
+ inputs.loc3 = loc3;
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:22: 'int' : must be qualified as flat in
+ERROR: 0:22: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl b/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..952f01b
--- /dev/null
+++ b/test/shader_io/fragment_input_locations_struct.wgsl.expected.glsl
@@ -0,0 +1,51 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct FragmentInputs {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+
+void tint_symbol_inner(FragmentInputs inputs) {
+ int i = inputs.loc0;
+ uint u = inputs.loc1;
+ float f = inputs.loc2;
+ vec4 v = inputs.loc3;
+}
+
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ FragmentInputs tint_symbol_3 = FragmentInputs(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
+ tint_symbol_inner(tint_symbol_3);
+ return;
+}
+in int loc0;
+in uint loc1;
+in float loc2;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc2 = loc2;
+ inputs.loc3 = loc3;
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:29: 'int' : must be qualified as flat in
+ERROR: 0:29: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_input_mixed.wgsl.expected.glsl b/test/shader_io/fragment_input_mixed.wgsl.expected.glsl
new file mode 100644
index 0000000..2b31e3c
--- /dev/null
+++ b/test/shader_io/fragment_input_mixed.wgsl.expected.glsl
@@ -0,0 +1,66 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct FragmentInputs0 {
+ vec4 position;
+ int loc0;
+};
+struct FragmentInputs1 {
+ vec4 loc3;
+ uint sample_mask;
+};
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+ vec4 position;
+ bool front_facing;
+ uint sample_index;
+ uint sample_mask;
+};
+
+void tint_symbol_inner(FragmentInputs0 inputs0, bool front_facing, uint loc1, uint sample_index, FragmentInputs1 inputs1, float loc2) {
+ if (front_facing) {
+ vec4 foo = inputs0.position;
+ uint bar = (sample_index + inputs1.sample_mask);
+ int i = inputs0.loc0;
+ uint u = loc1;
+ float f = loc2;
+ vec4 v = inputs1.loc3;
+ }
+}
+
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ FragmentInputs0 tint_symbol_3 = FragmentInputs0(tint_symbol_1.position, tint_symbol_1.loc0);
+ FragmentInputs1 tint_symbol_4 = FragmentInputs1(tint_symbol_1.loc3, tint_symbol_1.sample_mask);
+ tint_symbol_inner(tint_symbol_3, tint_symbol_1.front_facing, tint_symbol_1.loc1, tint_symbol_1.sample_index, tint_symbol_4, tint_symbol_1.loc2);
+ return;
+}
+in int loc0;
+in uint loc1;
+in float loc2;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc2 = loc2;
+ inputs.loc3 = loc3;
+ inputs.position = gl_FragCoord;
+ inputs.front_facing = gl_FrontFacing;
+ inputs.sample_index = uint(gl_SampleID);
+ inputs.sample_mask = uint(gl_SampleMask);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:40: 'int' : must be qualified as flat in
+ERROR: 0:40: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_output_builtins.wgsl.expected.glsl b/test/shader_io/fragment_output_builtins.wgsl.expected.glsl
new file mode 100644
index 0000000..b13fd6a
--- /dev/null
+++ b/test/shader_io/fragment_output_builtins.wgsl.expected.glsl
@@ -0,0 +1,64 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ float value;
+};
+
+float main1_inner() {
+ return 1.0f;
+}
+
+struct tint_symbol_1 {
+ uint value;
+};
+
+tint_symbol main1() {
+ float inner_result = main1_inner();
+ tint_symbol wrapper_result = tint_symbol(0.0f);
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol outputs;
+ outputs = main1();
+ gl_FragDepth = outputs.value;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ float value;
+};
+struct tint_symbol_1 {
+ uint value;
+};
+
+uint main2_inner() {
+ return 1u;
+}
+
+tint_symbol_1 main2() {
+ uint inner_result_1 = main2_inner();
+ tint_symbol_1 wrapper_result_1 = tint_symbol_1(0u);
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = main2();
+ gl_SampleMask = outputs.value;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:24: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:24: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..cdfd3fb
--- /dev/null
+++ b/test/shader_io/fragment_output_builtins_struct.wgsl.expected.glsl
@@ -0,0 +1,41 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct FragmentOutputs {
+ float frag_depth;
+ uint sample_mask;
+};
+struct tint_symbol_1 {
+ float frag_depth;
+ uint sample_mask;
+};
+
+FragmentOutputs tint_symbol_inner() {
+ FragmentOutputs tint_symbol_2 = FragmentOutputs(1.0f, 1u);
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ FragmentOutputs inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(0.0f, 0u);
+ wrapper_result.frag_depth = inner_result.frag_depth;
+ wrapper_result.sample_mask = inner_result.sample_mask;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ gl_FragDepth = outputs.frag_depth;
+ gl_SampleMask = outputs.sample_mask;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:29: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:29: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/fragment_output_locations.wgsl.expected.glsl b/test/shader_io/fragment_output_locations.wgsl.expected.glsl
new file mode 100644
index 0000000..61bf161
--- /dev/null
+++ b/test/shader_io/fragment_output_locations.wgsl.expected.glsl
@@ -0,0 +1,139 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ int value;
+};
+
+int main0_inner() {
+ return 1;
+}
+
+struct tint_symbol_1 {
+ uint value;
+};
+struct tint_symbol_2 {
+ float value;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+tint_symbol main0() {
+ int inner_result = main0_inner();
+ tint_symbol wrapper_result = tint_symbol(0);
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+out int value;
+void main() {
+ tint_symbol outputs;
+ outputs = main0();
+ value = outputs.value;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ int value;
+};
+struct tint_symbol_1 {
+ uint value;
+};
+
+uint main1_inner() {
+ return 1u;
+}
+
+struct tint_symbol_2 {
+ float value;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+tint_symbol_1 main1() {
+ uint inner_result_1 = main1_inner();
+ tint_symbol_1 wrapper_result_1 = tint_symbol_1(0u);
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+out uint value;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = main1();
+ value = outputs.value;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ int value;
+};
+struct tint_symbol_1 {
+ uint value;
+};
+struct tint_symbol_2 {
+ float value;
+};
+
+float main2_inner() {
+ return 1.0f;
+}
+
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+tint_symbol_2 main2() {
+ float inner_result_2 = main2_inner();
+ tint_symbol_2 wrapper_result_2 = tint_symbol_2(0.0f);
+ wrapper_result_2.value = inner_result_2;
+ return wrapper_result_2;
+}
+out float value;
+void main() {
+ tint_symbol_2 outputs;
+ outputs = main2();
+ value = outputs.value;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct tint_symbol {
+ int value;
+};
+struct tint_symbol_1 {
+ uint value;
+};
+struct tint_symbol_2 {
+ float value;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 main3_inner() {
+ return vec4(1.0f, 2.0f, 3.0f, 4.0f);
+}
+
+tint_symbol_3 main3() {
+ vec4 inner_result_3 = main3_inner();
+ tint_symbol_3 wrapper_result_3 = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result_3.value = inner_result_3;
+ return wrapper_result_3;
+}
+out vec4 value;
+void main() {
+ tint_symbol_3 outputs;
+ outputs = main3();
+ value = outputs.value;
+}
+
+
diff --git a/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl b/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..5c70910
--- /dev/null
+++ b/test/shader_io/fragment_output_locations_struct.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+#version 310 es
+precision mediump float;
+
+struct FragmentOutputs {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+struct tint_symbol_1 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+
+FragmentOutputs tint_symbol_inner() {
+ FragmentOutputs tint_symbol_2 = FragmentOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f));
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ FragmentOutputs inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(0, 0u, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.loc0 = inner_result.loc0;
+ wrapper_result.loc1 = inner_result.loc1;
+ wrapper_result.loc2 = inner_result.loc2;
+ wrapper_result.loc3 = inner_result.loc3;
+ return wrapper_result;
+}
+out int loc0;
+out uint loc1;
+out float loc2;
+out vec4 loc3;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ loc0 = outputs.loc0;
+ loc1 = outputs.loc1;
+ loc2 = outputs.loc2;
+ loc3 = outputs.loc3;
+}
+
+
diff --git a/test/shader_io/fragment_output_mixed.wgsl.expected.glsl b/test/shader_io/fragment_output_mixed.wgsl.expected.glsl
new file mode 100644
index 0000000..7b75630
--- /dev/null
+++ b/test/shader_io/fragment_output_mixed.wgsl.expected.glsl
@@ -0,0 +1,61 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct FragmentOutputs {
+ int loc0;
+ float frag_depth;
+ uint loc1;
+ float loc2;
+ uint sample_mask;
+ vec4 loc3;
+};
+struct tint_symbol_1 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+ float frag_depth;
+ uint sample_mask;
+};
+
+FragmentOutputs tint_symbol_inner() {
+ FragmentOutputs tint_symbol_2 = FragmentOutputs(1, 2.0f, 1u, 1.0f, 2u, vec4(1.0f, 2.0f, 3.0f, 4.0f));
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ FragmentOutputs inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(0, 0u, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, 0u);
+ wrapper_result.loc0 = inner_result.loc0;
+ wrapper_result.frag_depth = inner_result.frag_depth;
+ wrapper_result.loc1 = inner_result.loc1;
+ wrapper_result.loc2 = inner_result.loc2;
+ wrapper_result.sample_mask = inner_result.sample_mask;
+ wrapper_result.loc3 = inner_result.loc3;
+ return wrapper_result;
+}
+out int loc0;
+out uint loc1;
+out float loc2;
+out vec4 loc3;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ loc0 = outputs.loc0;
+ loc1 = outputs.loc1;
+ loc2 = outputs.loc2;
+ loc3 = outputs.loc3;
+ gl_FragDepth = outputs.frag_depth;
+ gl_SampleMask = outputs.sample_mask;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:49: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables
+ERROR: 0:49: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl b/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl
new file mode 100644
index 0000000..afc6164
--- /dev/null
+++ b/test/shader_io/interpolate_input_parameters.wgsl.expected.glsl
@@ -0,0 +1,43 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_3 {
+ float none;
+ float tint_symbol_1;
+ float perspective_center;
+ float perspective_centroid;
+ float perspective_sample;
+ float linear_center;
+ float linear_centroid;
+ float linear_sample;
+};
+
+void tint_symbol_inner(float none, float tint_symbol_1, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample) {
+}
+
+void tint_symbol(tint_symbol_3 tint_symbol_2) {
+ tint_symbol_inner(tint_symbol_2.none, tint_symbol_2.tint_symbol_1, tint_symbol_2.perspective_center, tint_symbol_2.perspective_centroid, tint_symbol_2.perspective_sample, tint_symbol_2.linear_center, tint_symbol_2.linear_centroid, tint_symbol_2.linear_sample);
+ return;
+}
+in float none;
+in float tint_symbol_1;
+in float perspective_center;
+in float perspective_centroid;
+in float perspective_sample;
+in float linear_center;
+in float linear_centroid;
+in float linear_sample;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.none = none;
+ inputs.tint_symbol_1 = tint_symbol_1;
+ inputs.perspective_center = perspective_center;
+ inputs.perspective_centroid = perspective_centroid;
+ inputs.perspective_sample = perspective_sample;
+ inputs.linear_center = linear_center;
+ inputs.linear_centroid = linear_centroid;
+ inputs.linear_sample = linear_sample;
+ tint_symbol(inputs);
+}
+
+
diff --git a/test/shader_io/interpolate_input_struct.wgsl.expected.glsl b/test/shader_io/interpolate_input_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..697f4ca
--- /dev/null
+++ b/test/shader_io/interpolate_input_struct.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+#version 310 es
+precision mediump float;
+
+struct In {
+ float none;
+ float tint_symbol;
+ float perspective_center;
+ float perspective_centroid;
+ float perspective_sample;
+ float linear_center;
+ float linear_centroid;
+ float linear_sample;
+};
+struct tint_symbol_4 {
+ float none;
+ float tint_symbol;
+ float perspective_center;
+ float perspective_centroid;
+ float perspective_sample;
+ float linear_center;
+ float linear_centroid;
+ float linear_sample;
+};
+
+void tint_symbol_1_inner(In tint_symbol_2) {
+}
+
+void tint_symbol_1(tint_symbol_4 tint_symbol_3) {
+ In tint_symbol_5 = In(tint_symbol_3.none, tint_symbol_3.tint_symbol, tint_symbol_3.perspective_center, tint_symbol_3.perspective_centroid, tint_symbol_3.perspective_sample, tint_symbol_3.linear_center, tint_symbol_3.linear_centroid, tint_symbol_3.linear_sample);
+ tint_symbol_1_inner(tint_symbol_5);
+ return;
+}
+in float none;
+in float tint_symbol;
+in float perspective_center;
+in float perspective_centroid;
+in float perspective_sample;
+in float linear_center;
+in float linear_centroid;
+in float linear_sample;
+void main() {
+ tint_symbol_4 inputs;
+ inputs.none = none;
+ inputs.tint_symbol = tint_symbol;
+ inputs.perspective_center = perspective_center;
+ inputs.perspective_centroid = perspective_centroid;
+ inputs.perspective_sample = perspective_sample;
+ inputs.linear_center = linear_center;
+ inputs.linear_centroid = linear_centroid;
+ inputs.linear_sample = linear_sample;
+ tint_symbol_1(inputs);
+}
+
+
diff --git a/test/shader_io/interpolate_integers.wgsl.expected.glsl b/test/shader_io/interpolate_integers.wgsl.expected.glsl
new file mode 100644
index 0000000..1bb1c04
--- /dev/null
+++ b/test/shader_io/interpolate_integers.wgsl.expected.glsl
@@ -0,0 +1,126 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct Interface {
+ int i;
+ uint u;
+ ivec4 vi;
+ uvec4 vu;
+ vec4 pos;
+};
+struct tint_symbol {
+ int i;
+ uint u;
+ ivec4 vi;
+ uvec4 vu;
+ vec4 pos;
+};
+
+Interface vert_main_inner() {
+ Interface tint_symbol_4 = Interface(0, 0u, ivec4(0, 0, 0, 0), uvec4(0u, 0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return tint_symbol_4;
+}
+
+struct tint_symbol_2 {
+ int i;
+ uint u;
+ ivec4 vi;
+ uvec4 vu;
+ vec4 pos;
+};
+struct tint_symbol_3 {
+ int value;
+};
+
+tint_symbol vert_main() {
+ Interface inner_result = vert_main_inner();
+ tint_symbol wrapper_result = tint_symbol(0, 0u, ivec4(0, 0, 0, 0), uvec4(0u, 0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.i = inner_result.i;
+ wrapper_result.u = inner_result.u;
+ wrapper_result.vi = inner_result.vi;
+ wrapper_result.vu = inner_result.vu;
+ wrapper_result.pos = inner_result.pos;
+ return wrapper_result;
+}
+out int i;
+out uint u;
+out ivec4 vi;
+out uvec4 vu;
+void main() {
+ tint_symbol outputs;
+ outputs = vert_main();
+ i = outputs.i;
+ u = outputs.u;
+ vi = outputs.vi;
+ vu = outputs.vu;
+ gl_Position = outputs.pos;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct Interface {
+ int i;
+ uint u;
+ ivec4 vi;
+ uvec4 vu;
+ vec4 pos;
+};
+struct tint_symbol {
+ int i;
+ uint u;
+ ivec4 vi;
+ uvec4 vu;
+ vec4 pos;
+};
+struct tint_symbol_2 {
+ int i;
+ uint u;
+ ivec4 vi;
+ uvec4 vu;
+ vec4 pos;
+};
+struct tint_symbol_3 {
+ int value;
+};
+
+int frag_main_inner(Interface inputs) {
+ return inputs.i;
+}
+
+tint_symbol_3 frag_main(tint_symbol_2 tint_symbol_1) {
+ Interface tint_symbol_4 = Interface(tint_symbol_1.i, tint_symbol_1.u, tint_symbol_1.vi, tint_symbol_1.vu, tint_symbol_1.pos);
+ int inner_result_1 = frag_main_inner(tint_symbol_4);
+ tint_symbol_3 wrapper_result_1 = tint_symbol_3(0);
+ wrapper_result_1.value = inner_result_1;
+ return wrapper_result_1;
+}
+in int i;
+in uint u;
+in ivec4 vi;
+in uvec4 vu;
+out int value;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.i = i;
+ inputs.u = u;
+ inputs.vi = vi;
+ inputs.vu = vu;
+ inputs.pos = gl_FragCoord;
+ tint_symbol_3 outputs;
+ outputs = frag_main(inputs);
+ value = outputs.value;
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:40: 'int' : must be qualified as flat in
+ERROR: 0:40: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/interpolate_return_struct.wgsl.expected.glsl b/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..3773530
--- /dev/null
+++ b/test/shader_io/interpolate_return_struct.wgsl.expected.glsl
@@ -0,0 +1,69 @@
+#version 310 es
+precision mediump float;
+
+struct Out {
+ vec4 pos;
+ float none;
+ float tint_symbol;
+ float perspective_center;
+ float perspective_centroid;
+ float perspective_sample;
+ float linear_center;
+ float linear_centroid;
+ float linear_sample;
+};
+struct tint_symbol_2 {
+ float none;
+ float tint_symbol;
+ float perspective_center;
+ float perspective_centroid;
+ float perspective_sample;
+ float linear_center;
+ float linear_centroid;
+ float linear_sample;
+ vec4 pos;
+};
+
+Out tint_symbol_1_inner() {
+ Out tint_symbol_3 = Out(vec4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ return tint_symbol_3;
+}
+
+tint_symbol_2 tint_symbol_1() {
+ Out inner_result = tint_symbol_1_inner();
+ tint_symbol_2 wrapper_result = tint_symbol_2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.pos = inner_result.pos;
+ wrapper_result.none = inner_result.none;
+ wrapper_result.tint_symbol = inner_result.tint_symbol;
+ wrapper_result.perspective_center = inner_result.perspective_center;
+ wrapper_result.perspective_centroid = inner_result.perspective_centroid;
+ wrapper_result.perspective_sample = inner_result.perspective_sample;
+ wrapper_result.linear_center = inner_result.linear_center;
+ wrapper_result.linear_centroid = inner_result.linear_centroid;
+ wrapper_result.linear_sample = inner_result.linear_sample;
+ return wrapper_result;
+}
+out float none;
+out float tint_symbol;
+out float perspective_center;
+out float perspective_centroid;
+out float perspective_sample;
+out float linear_center;
+out float linear_centroid;
+out float linear_sample;
+void main() {
+ tint_symbol_2 outputs;
+ outputs = tint_symbol_1();
+ none = outputs.none;
+ tint_symbol = outputs.tint_symbol;
+ perspective_center = outputs.perspective_center;
+ perspective_centroid = outputs.perspective_centroid;
+ perspective_sample = outputs.perspective_sample;
+ linear_center = outputs.linear_center;
+ linear_centroid = outputs.linear_centroid;
+ linear_sample = outputs.linear_sample;
+ gl_Position = outputs.pos;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/invariant.wgsl.expected.glsl b/test/shader_io/invariant.wgsl.expected.glsl
new file mode 100644
index 0000000..f4a5922
--- /dev/null
+++ b/test/shader_io/invariant.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/invariant_struct_member.wgsl.expected.glsl b/test/shader_io/invariant_struct_member.wgsl.expected.glsl
new file mode 100644
index 0000000..72de2f5
--- /dev/null
+++ b/test/shader_io/invariant_struct_member.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+#version 310 es
+precision mediump float;
+
+struct Out {
+ vec4 pos;
+};
+struct tint_symbol_1 {
+ vec4 pos;
+};
+
+Out tint_symbol_inner() {
+ Out tint_symbol_2 = Out(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ Out inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.pos = inner_result.pos;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ gl_Position = outputs.pos;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl b/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
new file mode 100644
index 0000000..7926242
--- /dev/null
+++ b/test/shader_io/shared_struct_different_stages.wgsl.expected.glsl
@@ -0,0 +1,85 @@
+#version 310 es
+precision mediump float;
+
+struct Interface {
+ float col1;
+ float col2;
+ vec4 pos;
+};
+struct tint_symbol {
+ float col1;
+ float col2;
+ vec4 pos;
+};
+
+Interface vert_main_inner() {
+ Interface tint_symbol_3 = Interface(0.400000006f, 0.600000024f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return tint_symbol_3;
+}
+
+struct tint_symbol_2 {
+ float col1;
+ float col2;
+ vec4 pos;
+};
+
+tint_symbol vert_main() {
+ Interface inner_result = vert_main_inner();
+ tint_symbol wrapper_result = tint_symbol(0.0f, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.col1 = inner_result.col1;
+ wrapper_result.col2 = inner_result.col2;
+ wrapper_result.pos = inner_result.pos;
+ return wrapper_result;
+}
+out float col1;
+out float col2;
+void main() {
+ tint_symbol outputs;
+ outputs = vert_main();
+ col1 = outputs.col1;
+ col2 = outputs.col2;
+ gl_Position = outputs.pos;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct Interface {
+ float col1;
+ float col2;
+ vec4 pos;
+};
+struct tint_symbol {
+ float col1;
+ float col2;
+ vec4 pos;
+};
+struct tint_symbol_2 {
+ float col1;
+ float col2;
+ vec4 pos;
+};
+
+void frag_main_inner(Interface colors) {
+ float r = colors.col1;
+ float g = colors.col2;
+}
+
+void frag_main(tint_symbol_2 tint_symbol_1) {
+ Interface tint_symbol_3 = Interface(tint_symbol_1.col1, tint_symbol_1.col2, tint_symbol_1.pos);
+ frag_main_inner(tint_symbol_3);
+ return;
+}
+in float col1;
+in float col2;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.col1 = col1;
+ inputs.col2 = col2;
+ inputs.pos = gl_FragCoord;
+ frag_main(inputs);
+}
+
+
diff --git a/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl b/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
new file mode 100644
index 0000000..63a9342
--- /dev/null
+++ b/test/shader_io/shared_struct_helper_function.wgsl.expected.glsl
@@ -0,0 +1,87 @@
+#version 310 es
+precision mediump float;
+
+struct VertexOutput {
+ vec4 pos;
+ int loc0;
+};
+
+VertexOutput foo(float x) {
+ VertexOutput tint_symbol_2 = VertexOutput(vec4(x, x, x, 1.0f), 42);
+ return tint_symbol_2;
+}
+
+struct tint_symbol {
+ int loc0;
+ vec4 pos;
+};
+
+VertexOutput vert_main1_inner() {
+ return foo(0.5f);
+}
+
+struct tint_symbol_1 {
+ int loc0;
+ vec4 pos;
+};
+
+tint_symbol vert_main1() {
+ VertexOutput inner_result = vert_main1_inner();
+ tint_symbol wrapper_result = tint_symbol(0, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.pos = inner_result.pos;
+ wrapper_result.loc0 = inner_result.loc0;
+ return wrapper_result;
+}
+out int loc0;
+void main() {
+ tint_symbol outputs;
+ outputs = vert_main1();
+ loc0 = outputs.loc0;
+ gl_Position = outputs.pos;
+ gl_Position.y = -gl_Position.y;
+}
+
+
+#version 310 es
+precision mediump float;
+
+struct VertexOutput {
+ vec4 pos;
+ int loc0;
+};
+
+VertexOutput foo(float x) {
+ VertexOutput tint_symbol_2 = VertexOutput(vec4(x, x, x, 1.0f), 42);
+ return tint_symbol_2;
+}
+
+struct tint_symbol {
+ int loc0;
+ vec4 pos;
+};
+struct tint_symbol_1 {
+ int loc0;
+ vec4 pos;
+};
+
+VertexOutput vert_main2_inner() {
+ return foo(0.25f);
+}
+
+tint_symbol_1 vert_main2() {
+ VertexOutput inner_result_1 = vert_main2_inner();
+ tint_symbol_1 wrapper_result_1 = tint_symbol_1(0, vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result_1.pos = inner_result_1.pos;
+ wrapper_result_1.loc0 = inner_result_1.loc0;
+ return wrapper_result_1;
+}
+out int loc0;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = vert_main2();
+ loc0 = outputs.loc0;
+ gl_Position = outputs.pos;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
new file mode 100644
index 0000000..ea2e4e8
--- /dev/null
+++ b/test/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ float f;
+ uint u;
+ vec4 v;
+} tint_symbol;
+
+struct tint_symbol_3 {
+ float f;
+ uint u;
+ vec4 v;
+};
+
+void frag_main_inner(S tint_symbol_1) {
+ float f = tint_symbol_1.f;
+ uint u = tint_symbol_1.u;
+ vec4 v = tint_symbol_1.v;
+ tint_symbol = tint_symbol_1;
+}
+
+void frag_main(tint_symbol_3 tint_symbol_2) {
+ S tint_symbol_4 = S(tint_symbol_2.f, tint_symbol_2.u, tint_symbol_2.v);
+ frag_main_inner(tint_symbol_4);
+ return;
+}
+in float f;
+in uint u;
+void main() {
+ tint_symbol_3 inputs;
+ inputs.f = f;
+ inputs.u = u;
+ inputs.v = gl_FragCoord;
+ frag_main(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:17: '' : syntax error, unexpected IDENTIFIER, expecting RIGHT_PAREN
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/shader_io/vertex_input_builtins.wgsl.expected.glsl b/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
new file mode 100644
index 0000000..fc2ba6e
--- /dev/null
+++ b/test/shader_io/vertex_input_builtins.wgsl.expected.glsl
@@ -0,0 +1,33 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ uint vertex_index;
+ uint instance_index;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(uint vertex_index, uint instance_index) {
+ uint foo = (vertex_index + instance_index);
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ vec4 inner_result = tint_symbol_inner(tint_symbol_1.vertex_index, tint_symbol_1.instance_index);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.vertex_index = uint(gl_VertexID);
+ inputs.instance_index = uint(gl_InstanceID);
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..0df97fa
--- /dev/null
+++ b/test/shader_io/vertex_input_builtins_struct.wgsl.expected.glsl
@@ -0,0 +1,38 @@
+#version 310 es
+precision mediump float;
+
+struct VertexInputs {
+ uint vertex_index;
+ uint instance_index;
+};
+struct tint_symbol_2 {
+ uint vertex_index;
+ uint instance_index;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(VertexInputs inputs) {
+ uint foo = (inputs.vertex_index + inputs.instance_index);
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ VertexInputs tint_symbol_4 = VertexInputs(tint_symbol_1.vertex_index, tint_symbol_1.instance_index);
+ vec4 inner_result = tint_symbol_inner(tint_symbol_4);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.vertex_index = uint(gl_VertexID);
+ inputs.instance_index = uint(gl_InstanceID);
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_input_locations.wgsl.expected.glsl b/test/shader_io/vertex_input_locations.wgsl.expected.glsl
new file mode 100644
index 0000000..4a1499a
--- /dev/null
+++ b/test/shader_io/vertex_input_locations.wgsl.expected.glsl
@@ -0,0 +1,44 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(int loc0, uint loc1, float loc2, vec4 loc3) {
+ int i = loc0;
+ uint u = loc1;
+ float f = loc2;
+ vec4 v = loc3;
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ vec4 inner_result = tint_symbol_inner(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+in int loc0;
+in uint loc1;
+in float loc2;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc2 = loc2;
+ inputs.loc3 = loc3;
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl b/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..21dfce3
--- /dev/null
+++ b/test/shader_io/vertex_input_locations_struct.wgsl.expected.glsl
@@ -0,0 +1,51 @@
+#version 310 es
+precision mediump float;
+
+struct VertexInputs {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(VertexInputs inputs) {
+ int i = inputs.loc0;
+ uint u = inputs.loc1;
+ float f = inputs.loc2;
+ vec4 v = inputs.loc3;
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ VertexInputs tint_symbol_4 = VertexInputs(tint_symbol_1.loc0, tint_symbol_1.loc1, tint_symbol_1.loc2, tint_symbol_1.loc3);
+ vec4 inner_result = tint_symbol_inner(tint_symbol_4);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+in int loc0;
+in uint loc1;
+in float loc2;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc2 = loc2;
+ inputs.loc3 = loc3;
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_input_mixed.wgsl.expected.glsl b/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
new file mode 100644
index 0000000..e1e518d
--- /dev/null
+++ b/test/shader_io/vertex_input_mixed.wgsl.expected.glsl
@@ -0,0 +1,59 @@
+#version 310 es
+precision mediump float;
+
+struct VertexInputs0 {
+ uint vertex_index;
+ int loc0;
+};
+struct VertexInputs1 {
+ float loc2;
+ vec4 loc3;
+};
+struct tint_symbol_2 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+ uint vertex_index;
+ uint instance_index;
+};
+struct tint_symbol_3 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner(VertexInputs0 inputs0, uint loc1, uint instance_index, VertexInputs1 inputs1) {
+ uint foo = (inputs0.vertex_index + instance_index);
+ int i = inputs0.loc0;
+ uint u = loc1;
+ float f = inputs1.loc2;
+ vec4 v = inputs1.loc3;
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1) {
+ VertexInputs0 tint_symbol_4 = VertexInputs0(tint_symbol_1.vertex_index, tint_symbol_1.loc0);
+ VertexInputs1 tint_symbol_5 = VertexInputs1(tint_symbol_1.loc2, tint_symbol_1.loc3);
+ vec4 inner_result = tint_symbol_inner(tint_symbol_4, tint_symbol_1.loc1, tint_symbol_1.instance_index, tint_symbol_5);
+ tint_symbol_3 wrapper_result = tint_symbol_3(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+in int loc0;
+in uint loc1;
+in float loc2;
+in vec4 loc3;
+void main() {
+ tint_symbol_2 inputs;
+ inputs.loc0 = loc0;
+ inputs.loc1 = loc1;
+ inputs.loc2 = loc2;
+ inputs.loc3 = loc3;
+ inputs.vertex_index = uint(gl_VertexID);
+ inputs.instance_index = uint(gl_InstanceID);
+ tint_symbol_3 outputs;
+ outputs = tint_symbol(inputs);
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_output_builtins.wgsl.expected.glsl b/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
new file mode 100644
index 0000000..99f3730
--- /dev/null
+++ b/test/shader_io/vertex_output_builtins.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+#version 310 es
+precision mediump float;
+
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ return vec4(1.0f, 2.0f, 3.0f, 4.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ gl_Position = outputs.value;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..824c176
--- /dev/null
+++ b/test/shader_io/vertex_output_builtins_struct.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+#version 310 es
+precision mediump float;
+
+struct VertexOutputs {
+ vec4 position;
+};
+struct tint_symbol_1 {
+ vec4 position;
+};
+
+VertexOutputs tint_symbol_inner() {
+ VertexOutputs tint_symbol_2 = VertexOutputs(vec4(1.0f, 2.0f, 3.0f, 4.0f));
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ VertexOutputs inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.position = inner_result.position;
+ return wrapper_result;
+}
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ gl_Position = outputs.position;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl b/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
new file mode 100644
index 0000000..13ead49
--- /dev/null
+++ b/test/shader_io/vertex_output_locations_struct.wgsl.expected.glsl
@@ -0,0 +1,49 @@
+#version 310 es
+precision mediump float;
+
+struct VertexOutputs {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+ vec4 position;
+};
+struct tint_symbol_1 {
+ int loc0;
+ uint loc1;
+ float loc2;
+ vec4 loc3;
+ vec4 position;
+};
+
+VertexOutputs tint_symbol_inner() {
+ VertexOutputs tint_symbol_2 = VertexOutputs(1, 1u, 1.0f, vec4(1.0f, 2.0f, 3.0f, 4.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ return tint_symbol_2;
+}
+
+tint_symbol_1 tint_symbol() {
+ VertexOutputs inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(0, 0u, 0.0f, vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.loc0 = inner_result.loc0;
+ wrapper_result.loc1 = inner_result.loc1;
+ wrapper_result.loc2 = inner_result.loc2;
+ wrapper_result.loc3 = inner_result.loc3;
+ wrapper_result.position = inner_result.position;
+ return wrapper_result;
+}
+out int loc0;
+out uint loc1;
+out float loc2;
+out vec4 loc3;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ loc0 = outputs.loc0;
+ loc1 = outputs.loc1;
+ loc2 = outputs.loc2;
+ loc3 = outputs.loc3;
+ gl_Position = outputs.position;
+ gl_Position.y = -gl_Position.y;
+}
+
+
diff --git a/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl b/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
new file mode 100644
index 0000000..638e6fc
--- /dev/null
+++ b/test/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int arr[];
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl b/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
new file mode 100644
index 0000000..638e6fc
--- /dev/null
+++ b/test/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int arr[];
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/statements/assign/phony/call.wgsl.expected.glsl b/test/statements/assign/phony/call.wgsl.expected.glsl
new file mode 100644
index 0000000..777f222
--- /dev/null
+++ b/test/statements/assign/phony/call.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+int f(int a, int b, int c) {
+ return ((a * b) + c);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ f(1, 2, 3);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl b/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl
new file mode 100644
index 0000000..a1fc4c9
--- /dev/null
+++ b/test/statements/assign/phony/multiple_side_effects.wgsl.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+int f(int a, int b, int c) {
+ return ((a * b) + c);
+}
+
+void phony_sink(int p0, int p1, int p2) {
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ phony_sink(f(1, 2, 3), f(4, 5, 6), f(7, f(8, 9, 10), 11));
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
new file mode 100644
index 0000000..c72d1b6
--- /dev/null
+++ b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) buffer S_1 {
+ int i;
+} s;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl b/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
new file mode 100644
index 0000000..db601bc
--- /dev/null
+++ b/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+
+layout (binding = 0) uniform S_1 {
+ int i;
+} u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/statements/for/basic.wgsl.expected.glsl b/test/statements/for/basic.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/basic.wgsl.expected.glsl
diff --git a/test/statements/for/complex.wgsl.expected.glsl b/test/statements/for/complex.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/complex.wgsl.expected.glsl
diff --git a/test/statements/for/condition.wgsl.expected.glsl b/test/statements/for/condition.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/condition.wgsl.expected.glsl
diff --git a/test/statements/for/continuing.wgsl.expected.glsl b/test/statements/for/continuing.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/continuing.wgsl.expected.glsl
diff --git a/test/statements/for/empty.wgsl.expected.glsl b/test/statements/for/empty.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/empty.wgsl.expected.glsl
diff --git a/test/statements/for/initializer.wgsl.expected.glsl b/test/statements/for/initializer.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/initializer.wgsl.expected.glsl
diff --git a/test/statements/for/scoping.wgsl.expected.glsl b/test/statements/for/scoping.wgsl.expected.glsl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/statements/for/scoping.wgsl.expected.glsl
diff --git a/test/statements/switch/common.wgsl.expected.glsl b/test/statements/switch/common.wgsl.expected.glsl
new file mode 100644
index 0000000..7450348
--- /dev/null
+++ b/test/statements/switch/common.wgsl.expected.glsl
@@ -0,0 +1,32 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int i = 0;
+ int result = 0;
+ switch(i) {
+ case 0: {
+ result = 10;
+ break;
+ }
+ case 1: {
+ result = 22;
+ break;
+ }
+ case 2: {
+ result = 33;
+ break;
+ }
+ default: {
+ result = 44;
+ break;
+ }
+ }
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/statements/switch/fallthrough.wgsl.expected.glsl b/test/statements/switch/fallthrough.wgsl.expected.glsl
new file mode 100644
index 0000000..6302c00
--- /dev/null
+++ b/test/statements/switch/fallthrough.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int i = 0;
+ switch(i) {
+ case 0: {
+ /* fallthrough */
+ }
+ default: {
+ break;
+ }
+ }
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/statements/switch/only_default_case.wgsl.expected.glsl b/test/statements/switch/only_default_case.wgsl.expected.glsl
new file mode 100644
index 0000000..029765c
--- /dev/null
+++ b/test/statements/switch/only_default_case.wgsl.expected.glsl
@@ -0,0 +1,20 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void f() {
+ int i = 0;
+ int result = 0;
+ switch(i) {
+ default: {
+ result = 44;
+ break;
+ }
+ }
+ return;
+}
+void main() {
+ f();
+}
+
+
diff --git a/test/struct/type_constructor.wgsl.expected.glsl b/test/struct/type_constructor.wgsl.expected.glsl
new file mode 100644
index 0000000..be5a089
--- /dev/null
+++ b/test/struct/type_constructor.wgsl.expected.glsl
@@ -0,0 +1,66 @@
+#version 310 es
+precision mediump float;
+
+struct S1 {
+ int a;
+ int b;
+ int c;
+ int d;
+};
+struct S2 {
+ int e;
+ S1 f;
+};
+struct S3 {
+ int g;
+ S1 h;
+ S2 i;
+};
+struct T {
+ int a[2];
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int x = 42;
+ S1 empty = S1(0, 0, 0, 0);
+ S1 nonempty = S1(1, 2, 3, 4);
+ S1 nonempty_with_expr = S1(1, x, (x + 1), nonempty.d);
+ S3 nested_empty = S3(0, S1(0, 0, 0, 0), S2(0, S1(0, 0, 0, 0)));
+ S1 tint_symbol_1 = S1(2, 3, 4, 5);
+ S1 tint_symbol_2 = S1(7, 8, 9, 10);
+ S2 tint_symbol_3 = S2(6, tint_symbol_2);
+ S3 nested_nonempty = S3(1, tint_symbol_1, tint_symbol_3);
+ S1 tint_symbol_4 = S1(2, x, (x + 1), nested_nonempty.i.f.d);
+ S2 tint_symbol_5 = S2(6, nonempty);
+ S3 nested_nonempty_with_expr = S3(1, tint_symbol_4, tint_symbol_5);
+ S1 tint_symbol_6 = S1(0, 0, 0, 0);
+ int subexpr_empty = tint_symbol_6.a;
+ S1 tint_symbol_7 = S1(1, 2, 3, 4);
+ int subexpr_nonempty = tint_symbol_7.b;
+ S1 tint_symbol_8 = S1(1, x, (x + 1), nonempty.d);
+ int subexpr_nonempty_with_expr = tint_symbol_8.c;
+ S2 tint_symbol_9 = S2(0, S1(0, 0, 0, 0));
+ S1 subexpr_nested_empty = tint_symbol_9.f;
+ S1 tint_symbol_10 = S1(2, 3, 4, 5);
+ S2 tint_symbol_11 = S2(1, tint_symbol_10);
+ S1 subexpr_nested_nonempty = tint_symbol_11.f;
+ S1 tint_symbol_12 = S1(2, x, (x + 1), nested_nonempty.i.f.d);
+ S2 tint_symbol_13 = S2(1, tint_symbol_12);
+ S1 subexpr_nested_nonempty_with_expr = tint_symbol_13.f;
+ T aosoa_empty[2] = T[2](T(int[2](0, 0)), T(int[2](0, 0)));
+ int tint_symbol_14[2] = int[2](1, 2);
+ T tint_symbol_15 = T(tint_symbol_14);
+ int tint_symbol_16[2] = int[2](3, 4);
+ T tint_symbol_17 = T(tint_symbol_16);
+ T aosoa_nonempty[2] = T[2](tint_symbol_15, tint_symbol_17);
+ int tint_symbol_18[2] = int[2](1, (aosoa_nonempty[0].a[0] + 1));
+ T tint_symbol_19 = T(tint_symbol_18);
+ T aosoa_nonempty_with_expr[2] = T[2](tint_symbol_19, aosoa_nonempty[1]);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/function_scope_declarations.wgsl.expected.glsl b/test/types/function_scope_declarations.wgsl.expected.glsl
new file mode 100644
index 0000000..adf62b7
--- /dev/null
+++ b/test/types/function_scope_declarations.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ float a;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ bool bool_var = false;
+ bool bool_let = false;
+ int i32_var = 0;
+ int i32_let = 0;
+ uint u32_var = 0u;
+ uint u32_let = 0u;
+ float f32_var = 0.0f;
+ float f32_let = 0.0f;
+ ivec2 v2i32_var = ivec2(0, 0);
+ ivec2 v2i32_let = ivec2(0, 0);
+ uvec3 v3u32_var = uvec3(0u, 0u, 0u);
+ uvec3 v3u32_let = uvec3(0u, 0u, 0u);
+ vec4 v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ vec4 v4f32_let = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ mat3x4 m3x4_let = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ float arr_let[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ S struct_var = S(0.0f);
+ S struct_let = S(0.0f);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/function_scope_var_conversions.wgsl.expected.glsl b/test/types/function_scope_var_conversions.wgsl.expected.glsl
new file mode 100644
index 0000000..bc199a8
--- /dev/null
+++ b/test/types/function_scope_var_conversions.wgsl.expected.glsl
@@ -0,0 +1,42 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ bool bool_var1 = bool(123u);
+ bool bool_var2 = bool(123);
+ bool bool_var3 = bool(123.0f);
+ int i32_var1 = int(123u);
+ int i32_var2 = int(123.0f);
+ int i32_var3 = int(true);
+ uint u32_var1 = uint(123);
+ uint u32_var2 = uint(123.0f);
+ uint u32_var3 = uint(true);
+ bvec3 v3bool_var1 = bvec3(uvec3((123u).xxx));
+ bvec3 v3bool_var11 = bvec3(uvec3((1234u).xxx));
+ bvec3 v3bool_var2 = bvec3(ivec3((123).xxx));
+ bvec3 v3bool_var3 = bvec3(vec3((123.0f).xxx));
+ ivec3 v3i32_var1 = ivec3(uvec3((123u).xxx));
+ ivec3 v3i32_var2 = ivec3(vec3((123.0f).xxx));
+ ivec3 v3i32_var3 = ivec3(bvec3((true).xxx));
+ uvec3 v3u32_var1 = uvec3(ivec3((123).xxx));
+ uvec3 v3u32_var2 = uvec3(vec3((123.0f).xxx));
+ uvec3 v3u32_var3 = uvec3(bvec3((true).xxx));
+ bvec3 v3bool_var4 = bvec3(bvec2(vec2((123.0f).xx)), true);
+ bvec4 v4bool_var5 = bvec4(bvec2(vec2(123.0f, 0.0f)), bvec2(true, bool(float(0.0f))));
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:15: 'scalar swizzle' : not supported with this profile: es
+ERROR: 0:15: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/types/module_scope_let.wgsl.expected.glsl b/test/types/module_scope_let.wgsl.expected.glsl
new file mode 100644
index 0000000..bd84301f
--- /dev/null
+++ b/test/types/module_scope_let.wgsl.expected.glsl
@@ -0,0 +1,27 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ float a;
+};
+
+const bool bool_let = false;
+const int i32_let = 0;
+const uint u32_let = 0u;
+const float f32_let = 0.0f;
+const ivec2 v2i32_let = ivec2(0, 0);
+const uvec3 v3u32_let = uvec3(0u, 0u, 0u);
+const vec4 v4f32_let = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+const mat3x4 m3x4_let = mat3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+const float arr_let[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+const S struct_let = S(0.0f);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/module_scope_var.wgsl.expected.glsl b/test/types/module_scope_var.wgsl.expected.glsl
new file mode 100644
index 0000000..450d5cd
--- /dev/null
+++ b/test/types/module_scope_var.wgsl.expected.glsl
@@ -0,0 +1,39 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ float a;
+};
+
+bool bool_var = false;
+int i32_var = 0;
+uint u32_var = 0u;
+float f32_var = 0.0f;
+ivec2 v2i32_var = ivec2(0, 0);
+uvec3 v3u32_var = uvec3(0u, 0u, 0u);
+vec4 v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+S struct_var = S(0.0f);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ bool_var = false;
+ i32_var = 0;
+ u32_var = 0u;
+ f32_var = 0.0f;
+ v2i32_var = ivec2(0, 0);
+ v3u32_var = uvec3(0u, 0u, 0u);
+ v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ float tint_symbol_1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ arr_var = tint_symbol_1;
+ S tint_symbol_2 = S(0.0f);
+ struct_var = tint_symbol_2;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/module_scope_var_conversions.wgsl.expected.glsl b/test/types/module_scope_var_conversions.wgsl.expected.glsl
new file mode 100644
index 0000000..f846718
--- /dev/null
+++ b/test/types/module_scope_var_conversions.wgsl.expected.glsl
@@ -0,0 +1,62 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+bool bool_var1 = bool(1u);
+bool bool_var2 = bool(1);
+bool bool_var3 = bool(1.0f);
+int i32_var1 = int(1u);
+int i32_var2 = int(1.0f);
+int i32_var3 = int(true);
+uint u32_var1 = uint(1);
+uint u32_var2 = uint(1.0f);
+uint u32_var3 = uint(true);
+bvec3 v3bool_var1 = bvec3(uvec3((1u).xxx));
+bvec3 v3bool_var2 = bvec3(ivec3((1).xxx));
+bvec3 v3bool_var3 = bvec3(vec3((1.0f).xxx));
+ivec3 v3i32_var1 = ivec3(uvec3((1u).xxx));
+ivec3 v3i32_var2 = ivec3(vec3((1.0f).xxx));
+ivec3 v3i32_var3 = ivec3(bvec3((true).xxx));
+uvec3 v3u32_var1 = uvec3(ivec3((1).xxx));
+uvec3 v3u32_var2 = uvec3(vec3((1.0f).xxx));
+uvec3 v3u32_var3 = uvec3(bvec3((true).xxx));
+bvec3 v3bool_var4 = bvec3(bvec2(vec2((123.0f).xx)), true);
+bvec4 v4bool_var5 = bvec4(bvec2(vec2(123.0f, 0.0f)), bvec2(true, bool(float(0.0f))));
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ bool_var1 = false;
+ bool_var2 = false;
+ bool_var3 = false;
+ i32_var1 = 0;
+ i32_var2 = 0;
+ i32_var3 = 0;
+ u32_var1 = 0u;
+ u32_var2 = 0u;
+ u32_var3 = 0u;
+ v3bool_var1 = bvec3(false, false, false);
+ v3bool_var2 = bvec3(false, false, false);
+ v3bool_var3 = bvec3(false, false, false);
+ v3bool_var4 = bvec3(false, false, false);
+ v4bool_var5 = bvec4(false, false, false, false);
+ v3i32_var1 = ivec3(0, 0, 0);
+ v3i32_var2 = ivec3(0, 0, 0);
+ v3i32_var3 = ivec3(0, 0, 0);
+ v3u32_var1 = uvec3(0u, 0u, 0u);
+ v3u32_var2 = uvec3(0u, 0u, 0u);
+ v3u32_var3 = uvec3(0u, 0u, 0u);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:13: 'scalar swizzle' : not supported with this profile: es
+ERROR: 0:13: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/types/module_scope_var_initializers.wgsl.expected.glsl b/test/types/module_scope_var_initializers.wgsl.expected.glsl
new file mode 100644
index 0000000..450d5cd
--- /dev/null
+++ b/test/types/module_scope_var_initializers.wgsl.expected.glsl
@@ -0,0 +1,39 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ float a;
+};
+
+bool bool_var = false;
+int i32_var = 0;
+uint u32_var = 0u;
+float f32_var = 0.0f;
+ivec2 v2i32_var = ivec2(0, 0);
+uvec3 v3u32_var = uvec3(0u, 0u, 0u);
+vec4 v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+mat2x3 m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+float arr_var[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+S struct_var = S(0.0f);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ bool_var = false;
+ i32_var = 0;
+ u32_var = 0u;
+ f32_var = 0.0f;
+ v2i32_var = ivec2(0, 0);
+ v3u32_var = uvec3(0u, 0u, 0u);
+ v4f32_var = vec4(0.0f, 0.0f, 0.0f, 0.0f);
+ m2x3_var = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ float tint_symbol_1[4] = float[4](0.0f, 0.0f, 0.0f, 0.0f);
+ arr_var = tint_symbol_1;
+ S tint_symbol_2 = S(0.0f);
+ struct_var = tint_symbol_2;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/parameters.wgsl.expected.glsl b/test/types/parameters.wgsl.expected.glsl
new file mode 100644
index 0000000..166c6c7
--- /dev/null
+++ b/test/types/parameters.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ float a;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/return_types.wgsl.expected.glsl b/test/types/return_types.wgsl.expected.glsl
new file mode 100644
index 0000000..166c6c7
--- /dev/null
+++ b/test/types/return_types.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ float a;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/sampler.wgsl.expected.glsl b/test/types/sampler.wgsl.expected.glsl
new file mode 100644
index 0000000..fe64871
--- /dev/null
+++ b/test/types/sampler.wgsl.expected.glsl
@@ -0,0 +1,15 @@
+#version 310 es
+precision mediump float;
+
+
+
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/struct_members.wgsl.expected.glsl b/test/types/struct_members.wgsl.expected.glsl
new file mode 100644
index 0000000..58b993d
--- /dev/null
+++ b/test/types/struct_members.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+#version 310 es
+precision mediump float;
+
+struct S_inner {
+ float a;
+};
+struct S {
+ bool member_bool;
+ int member_i32;
+ uint member_u32;
+ float member_f32;
+ ivec2 member_v2i32;
+ uvec3 member_v3u32;
+ vec4 member_v4f32;
+ mat2x3 member_m2x3;
+ float member_arr[4];
+ S_inner member_struct;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ S s = S(false, 0, 0u, 0.0f, ivec2(0, 0), uvec3(0u, 0u, 0u), vec4(0.0f, 0.0f, 0.0f, 0.0f), mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f), float[4](0.0f, 0.0f, 0.0f, 0.0f), S_inner(0.0f));
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/depth/2d.wgsl.expected.glsl b/test/types/texture/depth/2d.wgsl.expected.glsl
new file mode 100644
index 0000000..2b6d25d
--- /dev/null
+++ b/test/types/texture/depth/2d.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D t_f;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/depth/2d_array.wgsl.expected.glsl b/test/types/texture/depth/2d_array.wgsl.expected.glsl
new file mode 100644
index 0000000..6e356e1
--- /dev/null
+++ b/test/types/texture/depth/2d_array.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray t_f;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/depth/cube.wgsl.expected.glsl b/test/types/texture/depth/cube.wgsl.expected.glsl
new file mode 100644
index 0000000..cb259d8
--- /dev/null
+++ b/test/types/texture/depth/cube.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube t_f;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/depth/cube_array.wgsl.expected.glsl b/test/types/texture/depth/cube_array.wgsl.expected.glsl
new file mode 100644
index 0000000..1121d73
--- /dev/null
+++ b/test/types/texture/depth/cube_array.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray t_f;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/types/texture/multisampled/2d.wgsl.expected.glsl b/test/types/texture/multisampled/2d.wgsl.expected.glsl
new file mode 100644
index 0000000..460c59c
--- /dev/null
+++ b/test/types/texture/multisampled/2d.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DMS t_f;
+uniform highp isampler2DMS t_i;
+uniform highp usampler2DMS t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/sampled/1d.wgsl.expected.glsl b/test/types/texture/sampled/1d.wgsl.expected.glsl
new file mode 100644
index 0000000..a5b0813
--- /dev/null
+++ b/test/types/texture/sampled/1d.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp sampler1D t_f;
+uniform highp isampler1D t_i;
+uniform highp usampler1D t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'sampler1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/types/texture/sampled/2d.wgsl.expected.glsl b/test/types/texture/sampled/2d.wgsl.expected.glsl
new file mode 100644
index 0000000..ce56a24
--- /dev/null
+++ b/test/types/texture/sampled/2d.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2D t_f;
+uniform highp isampler2D t_i;
+uniform highp usampler2D t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/sampled/2d_array.wgsl.expected.glsl b/test/types/texture/sampled/2d_array.wgsl.expected.glsl
new file mode 100644
index 0000000..3df57e9
--- /dev/null
+++ b/test/types/texture/sampled/2d_array.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler2DArray t_f;
+uniform highp isampler2DArray t_i;
+uniform highp usampler2DArray t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/sampled/3d.wgsl.expected.glsl b/test/types/texture/sampled/3d.wgsl.expected.glsl
new file mode 100644
index 0000000..48ce633
--- /dev/null
+++ b/test/types/texture/sampled/3d.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+uniform highp sampler3D t_f;
+uniform highp isampler3D t_i;
+uniform highp usampler3D t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/sampled/cube.wgsl.expected.glsl b/test/types/texture/sampled/cube.wgsl.expected.glsl
new file mode 100644
index 0000000..daa4f95
--- /dev/null
+++ b/test/types/texture/sampled/cube.wgsl.expected.glsl
@@ -0,0 +1,16 @@
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCube t_f;
+uniform highp isamplerCube t_i;
+uniform highp usamplerCube t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/sampled/cube_array.wgsl.expected.glsl b/test/types/texture/sampled/cube_array.wgsl.expected.glsl
new file mode 100644
index 0000000..dada745
--- /dev/null
+++ b/test/types/texture/sampled/cube_array.wgsl.expected.glsl
@@ -0,0 +1,25 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp samplerCubeArray t_f;
+uniform highp isamplerCubeArray t_i;
+uniform highp usamplerCubeArray t_u;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'samplerCubeArray' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/types/texture/storage/1d.wgsl.expected.glsl b/test/types/texture/storage/1d.wgsl.expected.glsl
new file mode 100644
index 0000000..a854f43
--- /dev/null
+++ b/test/types/texture/storage/1d.wgsl.expected.glsl
@@ -0,0 +1,38 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image1D t_rgba8unorm;
+uniform highp writeonly image1D t_rgba8snorm;
+uniform highp writeonly image1D t_rgba8uint;
+uniform highp writeonly image1D t_rgba8sint;
+uniform highp writeonly image1D t_rgba16uint;
+uniform highp writeonly image1D t_rgba16sint;
+uniform highp writeonly image1D t_rgba16float;
+uniform highp writeonly image1D t_r32uint;
+uniform highp writeonly image1D t_r32sint;
+uniform highp writeonly image1D t_r32float;
+uniform highp writeonly image1D t_rg32uint;
+uniform highp writeonly image1D t_rg32sint;
+uniform highp writeonly image1D t_rg32float;
+uniform highp writeonly image1D t_rgba32uint;
+uniform highp writeonly image1D t_rgba32sint;
+uniform highp writeonly image1D t_rgba32float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: 'image1D' : Reserved word.
+ERROR: 0:4: '' : compilation terminated
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/types/texture/storage/2d.wgsl.expected.glsl b/test/types/texture/storage/2d.wgsl.expected.glsl
new file mode 100644
index 0000000..1103c8c
--- /dev/null
+++ b/test/types/texture/storage/2d.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2D t_rgba8unorm;
+uniform highp writeonly image2D t_rgba8snorm;
+uniform highp writeonly image2D t_rgba8uint;
+uniform highp writeonly image2D t_rgba8sint;
+uniform highp writeonly image2D t_rgba16uint;
+uniform highp writeonly image2D t_rgba16sint;
+uniform highp writeonly image2D t_rgba16float;
+uniform highp writeonly image2D t_r32uint;
+uniform highp writeonly image2D t_r32sint;
+uniform highp writeonly image2D t_r32float;
+uniform highp writeonly image2D t_rg32uint;
+uniform highp writeonly image2D t_rg32sint;
+uniform highp writeonly image2D t_rg32float;
+uniform highp writeonly image2D t_rgba32uint;
+uniform highp writeonly image2D t_rgba32sint;
+uniform highp writeonly image2D t_rgba32float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/storage/2d_array.wgsl.expected.glsl b/test/types/texture/storage/2d_array.wgsl.expected.glsl
new file mode 100644
index 0000000..f047dd7
--- /dev/null
+++ b/test/types/texture/storage/2d_array.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image2DArray t_rgba8unorm;
+uniform highp writeonly image2DArray t_rgba8snorm;
+uniform highp writeonly image2DArray t_rgba8uint;
+uniform highp writeonly image2DArray t_rgba8sint;
+uniform highp writeonly image2DArray t_rgba16uint;
+uniform highp writeonly image2DArray t_rgba16sint;
+uniform highp writeonly image2DArray t_rgba16float;
+uniform highp writeonly image2DArray t_r32uint;
+uniform highp writeonly image2DArray t_r32sint;
+uniform highp writeonly image2DArray t_r32float;
+uniform highp writeonly image2DArray t_rg32uint;
+uniform highp writeonly image2DArray t_rg32sint;
+uniform highp writeonly image2DArray t_rg32float;
+uniform highp writeonly image2DArray t_rgba32uint;
+uniform highp writeonly image2DArray t_rgba32sint;
+uniform highp writeonly image2DArray t_rgba32float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/types/texture/storage/3d.wgsl.expected.glsl b/test/types/texture/storage/3d.wgsl.expected.glsl
new file mode 100644
index 0000000..edb725a
--- /dev/null
+++ b/test/types/texture/storage/3d.wgsl.expected.glsl
@@ -0,0 +1,29 @@
+#version 310 es
+precision mediump float;
+
+uniform highp writeonly image3D t_rgba8unorm;
+uniform highp writeonly image3D t_rgba8snorm;
+uniform highp writeonly image3D t_rgba8uint;
+uniform highp writeonly image3D t_rgba8sint;
+uniform highp writeonly image3D t_rgba16uint;
+uniform highp writeonly image3D t_rgba16sint;
+uniform highp writeonly image3D t_rgba16float;
+uniform highp writeonly image3D t_r32uint;
+uniform highp writeonly image3D t_r32sint;
+uniform highp writeonly image3D t_r32float;
+uniform highp writeonly image3D t_rg32uint;
+uniform highp writeonly image3D t_rg32sint;
+uniform highp writeonly image3D t_rg32float;
+uniform highp writeonly image3D t_rgba32uint;
+uniform highp writeonly image3D t_rgba32sint;
+uniform highp writeonly image3D t_rgba32float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/inferred/function.wgsl.expected.glsl b/test/var/inferred/function.wgsl.expected.glsl
new file mode 100644
index 0000000..188a6da
--- /dev/null
+++ b/test/var/inferred/function.wgsl.expected.glsl
@@ -0,0 +1,28 @@
+#version 310 es
+precision mediump float;
+
+struct MyStruct {
+ float f1;
+};
+struct tint_symbol_1 {
+ vec4 value;
+};
+
+vec4 tint_symbol_inner() {
+ return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol_1 tint_symbol() {
+ vec4 inner_result = tint_symbol_inner();
+ tint_symbol_1 wrapper_result = tint_symbol_1(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+out vec4 value;
+void main() {
+ tint_symbol_1 outputs;
+ outputs = tint_symbol();
+ value = outputs.value;
+}
+
+
diff --git a/test/var/initialization/function/array.wgsl.expected.glsl b/test/var/initialization/function/array.wgsl.expected.glsl
new file mode 100644
index 0000000..7146e7d
--- /dev/null
+++ b/test/var/initialization/function/array.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int v[3] = int[3](0, 0, 0);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/function/matrix.wgsl.expected.glsl b/test/var/initialization/function/matrix.wgsl.expected.glsl
new file mode 100644
index 0000000..34d0c8a
--- /dev/null
+++ b/test/var/initialization/function/matrix.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ mat2x3 v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/function/scalar.wgsl.expected.glsl b/test/var/initialization/function/scalar.wgsl.expected.glsl
new file mode 100644
index 0000000..8307587
--- /dev/null
+++ b/test/var/initialization/function/scalar.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ int v = 0;
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/function/struct.wgsl.expected.glsl b/test/var/initialization/function/struct.wgsl.expected.glsl
new file mode 100644
index 0000000..a81c735
--- /dev/null
+++ b/test/var/initialization/function/struct.wgsl.expected.glsl
@@ -0,0 +1,18 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int a;
+ float b;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ S v = S(0, 0.0f);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/function/vector.wgsl.expected.glsl b/test/var/initialization/function/vector.wgsl.expected.glsl
new file mode 100644
index 0000000..f475c7c
--- /dev/null
+++ b/test/var/initialization/function/vector.wgsl.expected.glsl
@@ -0,0 +1,13 @@
+#version 310 es
+precision mediump float;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ ivec3 v = ivec3(0, 0, 0);
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/private/array.wgsl.expected.glsl b/test/var/initialization/private/array.wgsl.expected.glsl
new file mode 100644
index 0000000..e5de39b
--- /dev/null
+++ b/test/var/initialization/private/array.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+int v[3] = int[3](0, 0, 0);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/private/matrix.wgsl.expected.glsl b/test/var/initialization/private/matrix.wgsl.expected.glsl
new file mode 100644
index 0000000..3771d7b
--- /dev/null
+++ b/test/var/initialization/private/matrix.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+mat2x3 v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/private/scalar.wgsl.expected.glsl b/test/var/initialization/private/scalar.wgsl.expected.glsl
new file mode 100644
index 0000000..4e93b5e
--- /dev/null
+++ b/test/var/initialization/private/scalar.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+int v = 0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/private/struct.wgsl.expected.glsl b/test/var/initialization/private/struct.wgsl.expected.glsl
new file mode 100644
index 0000000..5d17f80
--- /dev/null
+++ b/test/var/initialization/private/struct.wgsl.expected.glsl
@@ -0,0 +1,19 @@
+#version 310 es
+precision mediump float;
+
+struct S {
+ int a;
+ float b;
+};
+
+S v = S(0, 0.0f);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/private/vector.wgsl.expected.glsl b/test/var/initialization/private/vector.wgsl.expected.glsl
new file mode 100644
index 0000000..ff32b2e
--- /dev/null
+++ b/test/var/initialization/private/vector.wgsl.expected.glsl
@@ -0,0 +1,14 @@
+#version 310 es
+precision mediump float;
+
+ivec3 v = ivec3(0, 0, 0);
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/initialization/workgroup/array.wgsl.expected.glsl b/test/var/initialization/workgroup/array.wgsl.expected.glsl
new file mode 100644
index 0000000..803d29b
--- /dev/null
+++ b/test/var/initialization/workgroup/array.wgsl.expected.glsl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int v[3];
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void tint_symbol_inner(uint local_invocation_index) {
+ {
+ for(uint idx = local_invocation_index; (idx < 3u); idx = (idx + 1u)) {
+ uint i = idx;
+ v[i] = 0;
+ }
+ }
+ GroupMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/var/initialization/workgroup/matrix.wgsl.expected.glsl b/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
new file mode 100644
index 0000000..427c0d3
--- /dev/null
+++ b/test/var/initialization/workgroup/matrix.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared mat2x3 v;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void tint_symbol_inner(uint local_invocation_index) {
+ {
+ v = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
+ }
+ GroupMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/var/initialization/workgroup/scalar.wgsl.expected.glsl b/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
new file mode 100644
index 0000000..398d676
--- /dev/null
+++ b/test/var/initialization/workgroup/scalar.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int v;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void tint_symbol_inner(uint local_invocation_index) {
+ {
+ v = 0;
+ }
+ GroupMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/var/initialization/workgroup/struct.wgsl.expected.glsl b/test/var/initialization/workgroup/struct.wgsl.expected.glsl
new file mode 100644
index 0000000..f7cd58a
--- /dev/null
+++ b/test/var/initialization/workgroup/struct.wgsl.expected.glsl
@@ -0,0 +1,42 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+struct S {
+ int a;
+ float b;
+};
+
+groupshared S v;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void tint_symbol_inner(uint local_invocation_index) {
+ {
+ S tint_symbol_3 = S(0, 0.0f);
+ v = tint_symbol_3;
+ }
+ GroupMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:9: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/var/initialization/workgroup/vector.wgsl.expected.glsl b/test/var/initialization/workgroup/vector.wgsl.expected.glsl
new file mode 100644
index 0000000..6662b52
--- /dev/null
+++ b/test/var/initialization/workgroup/vector.wgsl.expected.glsl
@@ -0,0 +1,36 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared ivec3 v;
+
+struct tint_symbol_2 {
+ uint local_invocation_index;
+};
+
+void tint_symbol_inner(uint local_invocation_index) {
+ {
+ v = ivec3(0, 0, 0);
+ }
+ GroupMemoryBarrierWithGroupSync();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/named/no_init/bool.wgsl.expected.glsl b/test/var/override/named/no_init/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..da1fd24
--- /dev/null
+++ b/test/var/override/named/no_init/bool.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#error spec constant required for constant id 0
+#endif
+const bool o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 0
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/named/no_init/f32.wgsl.expected.glsl b/test/var/override/named/no_init/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..0f71961
--- /dev/null
+++ b/test/var/override/named/no_init/f32.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#error spec constant required for constant id 0
+#endif
+const float o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 0
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/named/no_init/i32.wgsl.expected.glsl b/test/var/override/named/no_init/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..0f490be
--- /dev/null
+++ b/test/var/override/named/no_init/i32.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#error spec constant required for constant id 0
+#endif
+const int o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 0
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/named/no_init/u32.wgsl.expected.glsl b/test/var/override/named/no_init/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..776a083
--- /dev/null
+++ b/test/var/override/named/no_init/u32.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#error spec constant required for constant id 0
+#endif
+const uint o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 0
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/named/val_init/bool.wgsl.expected.glsl b/test/var/override/named/val_init/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..b1c7c0a
--- /dev/null
+++ b/test/var/override/named/val_init/bool.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 true
+#endif
+const bool o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/val_init/f32.wgsl.expected.glsl b/test/var/override/named/val_init/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..29dff55
--- /dev/null
+++ b/test/var/override/named/val_init/f32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 1.0f
+#endif
+const float o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/val_init/i32.wgsl.expected.glsl b/test/var/override/named/val_init/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..edfc48c
--- /dev/null
+++ b/test/var/override/named/val_init/i32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 1
+#endif
+const int o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/val_init/u32.wgsl.expected.glsl b/test/var/override/named/val_init/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..65314db
--- /dev/null
+++ b/test/var/override/named/val_init/u32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 1u
+#endif
+const uint o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/zero_init/bool.wgsl.expected.glsl b/test/var/override/named/zero_init/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..99475b9
--- /dev/null
+++ b/test/var/override/named/zero_init/bool.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 false
+#endif
+const bool o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/zero_init/f32.wgsl.expected.glsl b/test/var/override/named/zero_init/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..13b7b84
--- /dev/null
+++ b/test/var/override/named/zero_init/f32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 0.0f
+#endif
+const float o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/zero_init/i32.wgsl.expected.glsl b/test/var/override/named/zero_init/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..40ad1ac
--- /dev/null
+++ b/test/var/override/named/zero_init/i32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 0
+#endif
+const int o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/named/zero_init/u32.wgsl.expected.glsl b/test/var/override/named/zero_init/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..90c4e53
--- /dev/null
+++ b/test/var/override/named/zero_init/u32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_0
+#define WGSL_SPEC_CONSTANT_0 0u
+#endif
+const uint o = WGSL_SPEC_CONSTANT_0;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/no_init/bool.wgsl.expected.glsl b/test/var/override/numbered/no_init/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..caf27de
--- /dev/null
+++ b/test/var/override/numbered/no_init/bool.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#error spec constant required for constant id 1234
+#endif
+const bool o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 1234
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/numbered/no_init/f32.wgsl.expected.glsl b/test/var/override/numbered/no_init/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..fc99ef9
--- /dev/null
+++ b/test/var/override/numbered/no_init/f32.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#error spec constant required for constant id 1234
+#endif
+const float o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 1234
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/numbered/no_init/i32.wgsl.expected.glsl b/test/var/override/numbered/no_init/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..54222e3
--- /dev/null
+++ b/test/var/override/numbered/no_init/i32.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#error spec constant required for constant id 1234
+#endif
+const int o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 1234
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/numbered/no_init/u32.wgsl.expected.glsl b/test/var/override/numbered/no_init/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..631b5f4
--- /dev/null
+++ b/test/var/override/numbered/no_init/u32.wgsl.expected.glsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#error spec constant required for constant id 1234
+#endif
+const uint o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:5: '#error' : spec constant required for constant id 1234
+ERROR: 0:6: '' : missing #endif
+ERROR: 2 compilation errors. No code generated.
+
+
+
diff --git a/test/var/override/numbered/val_init/bool.wgsl.expected.glsl b/test/var/override/numbered/val_init/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..8991843
--- /dev/null
+++ b/test/var/override/numbered/val_init/bool.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 true
+#endif
+const bool o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/val_init/f32.wgsl.expected.glsl b/test/var/override/numbered/val_init/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..3e56eb0
--- /dev/null
+++ b/test/var/override/numbered/val_init/f32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 1.0f
+#endif
+const float o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/val_init/i32.wgsl.expected.glsl b/test/var/override/numbered/val_init/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..99a03ef
--- /dev/null
+++ b/test/var/override/numbered/val_init/i32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 1
+#endif
+const int o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/val_init/u32.wgsl.expected.glsl b/test/var/override/numbered/val_init/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..ab1ec93
--- /dev/null
+++ b/test/var/override/numbered/val_init/u32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 1u
+#endif
+const uint o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl b/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl
new file mode 100644
index 0000000..4f1f5d0
--- /dev/null
+++ b/test/var/override/numbered/zero_init/bool.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 false
+#endif
+const bool o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl b/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl
new file mode 100644
index 0000000..b108b60
--- /dev/null
+++ b/test/var/override/numbered/zero_init/f32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 0.0f
+#endif
+const float o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl b/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl
new file mode 100644
index 0000000..bece063
--- /dev/null
+++ b/test/var/override/numbered/zero_init/i32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 0
+#endif
+const int o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl b/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl
new file mode 100644
index 0000000..34d0432
--- /dev/null
+++ b/test/var/override/numbered/zero_init/u32.wgsl.expected.glsl
@@ -0,0 +1,17 @@
+#version 310 es
+precision mediump float;
+
+#ifndef WGSL_SPEC_CONSTANT_1234
+#define WGSL_SPEC_CONSTANT_1234 0u
+#endif
+const uint o = WGSL_SPEC_CONSTANT_1234;
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol() {
+ return;
+}
+void main() {
+ tint_symbol();
+}
+
+
diff --git a/test/var/uses/many_workgroup_vars.wgsl.expected.glsl b/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
new file mode 100644
index 0000000..479388b
--- /dev/null
+++ b/test/var/uses/many_workgroup_vars.wgsl.expected.glsl
@@ -0,0 +1,334 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared mat2 m00;
+groupshared mat2 m01;
+groupshared mat2 m02;
+groupshared mat2 m03;
+groupshared mat2 m04;
+groupshared mat2 m05;
+groupshared mat2 m06;
+groupshared mat2 m07;
+groupshared mat2 m08;
+groupshared mat2 m09;
+groupshared mat2 m10;
+groupshared mat2 m11;
+groupshared mat2 m12;
+groupshared mat2 m13;
+groupshared mat2 m14;
+groupshared mat2 m15;
+groupshared mat2 m16;
+groupshared mat2 m17;
+groupshared mat2 m18;
+groupshared mat2 m19;
+groupshared mat2 m20;
+groupshared mat2 m21;
+groupshared mat2 m22;
+groupshared mat2 m23;
+groupshared mat2 m24;
+groupshared mat2 m25;
+groupshared mat2 m26;
+groupshared mat2 m27;
+groupshared mat2 m28;
+groupshared mat2 m29;
+groupshared mat2 m30;
+groupshared mat2 m31;
+groupshared mat2 m32;
+groupshared mat2 m33;
+groupshared mat2 m34;
+groupshared mat2 m35;
+groupshared mat2 m36;
+groupshared mat2 m37;
+groupshared mat2 m38;
+groupshared mat2 m39;
+groupshared mat2 m40;
+groupshared mat2 m41;
+groupshared mat2 m42;
+groupshared mat2 m43;
+groupshared mat2 m44;
+groupshared mat2 m45;
+groupshared mat2 m46;
+groupshared mat2 m47;
+groupshared mat2 m48;
+groupshared mat2 m49;
+groupshared mat2 m50;
+groupshared mat2 m51;
+groupshared mat2 m52;
+groupshared mat2 m53;
+groupshared mat2 m54;
+groupshared mat2 m55;
+groupshared mat2 m56;
+groupshared mat2 m57;
+groupshared mat2 m58;
+groupshared mat2 m59;
+groupshared mat2 m60;
+groupshared mat2 m61;
+groupshared mat2 m62;
+groupshared mat2 m63;
+groupshared mat2 m64;
+groupshared mat2 m65;
+groupshared mat2 m66;
+groupshared mat2 m67;
+groupshared mat2 m68;
+groupshared mat2 m69;
+groupshared mat2 m70;
+groupshared mat2 m71;
+groupshared mat2 m72;
+groupshared mat2 m73;
+groupshared mat2 m74;
+groupshared mat2 m75;
+groupshared mat2 m76;
+groupshared mat2 m77;
+groupshared mat2 m78;
+groupshared mat2 m79;
+groupshared mat2 m80;
+groupshared mat2 m81;
+groupshared mat2 m82;
+groupshared mat2 m83;
+groupshared mat2 m84;
+groupshared mat2 m85;
+groupshared mat2 m86;
+groupshared mat2 m87;
+groupshared mat2 m88;
+groupshared mat2 m89;
+groupshared mat2 m90;
+groupshared mat2 m91;
+groupshared mat2 m92;
+groupshared mat2 m93;
+groupshared mat2 m94;
+groupshared mat2 m95;
+groupshared mat2 m96;
+groupshared mat2 m97;
+groupshared mat2 m98;
+groupshared mat2 m99;
+
+struct tint_symbol_2 {
+ uint idx;
+};
+
+void tint_symbol_inner(uint idx) {
+ {
+ m00 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m01 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m02 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m03 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m04 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m05 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m06 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m07 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m08 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m09 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m10 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m11 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m12 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m13 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m14 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m15 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m16 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m17 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m18 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m19 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m20 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m21 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m22 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m23 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m24 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m25 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m26 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m27 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m28 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m29 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m30 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m31 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m32 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m33 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m34 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m35 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m36 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m37 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m38 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m39 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m40 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m41 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m42 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m43 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m44 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m45 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m46 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m47 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m48 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m49 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m50 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m51 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m52 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m53 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m54 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m55 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m56 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m57 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m58 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m59 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m60 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m61 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m62 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m63 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m64 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m65 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m66 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m67 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m68 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m69 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m70 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m71 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m72 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m73 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m74 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m75 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m76 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m77 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m78 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m79 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m80 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m81 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m82 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m83 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m84 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m85 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m86 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m87 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m88 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m89 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m90 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m91 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m92 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m93 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m94 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m95 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m96 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m97 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m98 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ m99 = mat2(0.0f, 0.0f, 0.0f, 0.0f);
+ }
+ GroupMemoryBarrierWithGroupSync();
+ m00[0][0] = 1.0f;
+ m01[0][0] = 1.0f;
+ m02[0][0] = 1.0f;
+ m03[0][0] = 1.0f;
+ m04[0][0] = 1.0f;
+ m05[0][0] = 1.0f;
+ m06[0][0] = 1.0f;
+ m07[0][0] = 1.0f;
+ m08[0][0] = 1.0f;
+ m09[0][0] = 1.0f;
+ m10[0][0] = 1.0f;
+ m11[0][0] = 1.0f;
+ m12[0][0] = 1.0f;
+ m13[0][0] = 1.0f;
+ m14[0][0] = 1.0f;
+ m15[0][0] = 1.0f;
+ m16[0][0] = 1.0f;
+ m17[0][0] = 1.0f;
+ m18[0][0] = 1.0f;
+ m19[0][0] = 1.0f;
+ m20[0][0] = 1.0f;
+ m21[0][0] = 1.0f;
+ m22[0][0] = 1.0f;
+ m23[0][0] = 1.0f;
+ m24[0][0] = 1.0f;
+ m25[0][0] = 1.0f;
+ m26[0][0] = 1.0f;
+ m27[0][0] = 1.0f;
+ m28[0][0] = 1.0f;
+ m29[0][0] = 1.0f;
+ m30[0][0] = 1.0f;
+ m31[0][0] = 1.0f;
+ m32[0][0] = 1.0f;
+ m33[0][0] = 1.0f;
+ m34[0][0] = 1.0f;
+ m35[0][0] = 1.0f;
+ m36[0][0] = 1.0f;
+ m37[0][0] = 1.0f;
+ m38[0][0] = 1.0f;
+ m39[0][0] = 1.0f;
+ m40[0][0] = 1.0f;
+ m41[0][0] = 1.0f;
+ m42[0][0] = 1.0f;
+ m43[0][0] = 1.0f;
+ m44[0][0] = 1.0f;
+ m45[0][0] = 1.0f;
+ m46[0][0] = 1.0f;
+ m47[0][0] = 1.0f;
+ m48[0][0] = 1.0f;
+ m49[0][0] = 1.0f;
+ m50[0][0] = 1.0f;
+ m51[0][0] = 1.0f;
+ m52[0][0] = 1.0f;
+ m53[0][0] = 1.0f;
+ m54[0][0] = 1.0f;
+ m55[0][0] = 1.0f;
+ m56[0][0] = 1.0f;
+ m57[0][0] = 1.0f;
+ m58[0][0] = 1.0f;
+ m59[0][0] = 1.0f;
+ m60[0][0] = 1.0f;
+ m61[0][0] = 1.0f;
+ m62[0][0] = 1.0f;
+ m63[0][0] = 1.0f;
+ m64[0][0] = 1.0f;
+ m65[0][0] = 1.0f;
+ m66[0][0] = 1.0f;
+ m67[0][0] = 1.0f;
+ m68[0][0] = 1.0f;
+ m69[0][0] = 1.0f;
+ m70[0][0] = 1.0f;
+ m71[0][0] = 1.0f;
+ m72[0][0] = 1.0f;
+ m73[0][0] = 1.0f;
+ m74[0][0] = 1.0f;
+ m75[0][0] = 1.0f;
+ m76[0][0] = 1.0f;
+ m77[0][0] = 1.0f;
+ m78[0][0] = 1.0f;
+ m79[0][0] = 1.0f;
+ m80[0][0] = 1.0f;
+ m81[0][0] = 1.0f;
+ m82[0][0] = 1.0f;
+ m83[0][0] = 1.0f;
+ m84[0][0] = 1.0f;
+ m85[0][0] = 1.0f;
+ m86[0][0] = 1.0f;
+ m87[0][0] = 1.0f;
+ m88[0][0] = 1.0f;
+ m89[0][0] = 1.0f;
+ m90[0][0] = 1.0f;
+ m91[0][0] = 1.0f;
+ m92[0][0] = 1.0f;
+ m93[0][0] = 1.0f;
+ m94[0][0] = 1.0f;
+ m95[0][0] = 1.0f;
+ m96[0][0] = 1.0f;
+ m97[0][0] = 1.0f;
+ m98[0][0] = 1.0f;
+ m99[0][0] = 1.0f;
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void tint_symbol(tint_symbol_2 tint_symbol_1) {
+ tint_symbol_inner(tint_symbol_1.idx);
+ return;
+}
+void main() {
+ tint_symbol_2 inputs;
+ inputs.idx = uint(gl_LocalInvocationIndex);
+ tint_symbol(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
diff --git a/test/var/uses/private.wgsl.expected.glsl b/test/var/uses/private.wgsl.expected.glsl
new file mode 100644
index 0000000..f2d75e9
--- /dev/null
+++ b/test/var/uses/private.wgsl.expected.glsl
@@ -0,0 +1,96 @@
+#version 310 es
+precision mediump float;
+
+int a = 0;
+
+void uses_a() {
+ a = (a + 1);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main1() {
+ a = 42;
+ uses_a();
+ return;
+}
+void main() {
+ main1();
+}
+
+
+#version 310 es
+precision mediump float;
+
+int b = 0;
+
+void uses_b() {
+ b = (b * 2);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main2() {
+ b = 7;
+ uses_b();
+ return;
+}
+void main() {
+ main2();
+}
+
+
+#version 310 es
+precision mediump float;
+
+int a = 0;
+int b = 0;
+
+void uses_a() {
+ a = (a + 1);
+}
+
+void uses_b() {
+ b = (b * 2);
+}
+
+void uses_a_and_b() {
+ b = a;
+}
+
+void no_uses() {
+}
+
+void outer() {
+ a = 0;
+ uses_a();
+ uses_a_and_b();
+ uses_b();
+ no_uses();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main3() {
+ outer();
+ no_uses();
+ return;
+}
+void main() {
+ main3();
+}
+
+
+#version 310 es
+precision mediump float;
+
+void no_uses() {
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main4() {
+ no_uses();
+ return;
+}
+void main() {
+ main4();
+}
+
+
diff --git a/test/var/uses/workgroup.wgsl.expected.glsl b/test/var/uses/workgroup.wgsl.expected.glsl
new file mode 100644
index 0000000..8b19e03
--- /dev/null
+++ b/test/var/uses/workgroup.wgsl.expected.glsl
@@ -0,0 +1,189 @@
+SKIP: FAILED
+
+#version 310 es
+precision mediump float;
+
+groupshared int a;
+
+void uses_a() {
+ a = (a + 1);
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+
+void main1_inner(uint local_invocation_index) {
+ {
+ a = 0;
+ }
+ GroupMemoryBarrierWithGroupSync();
+ a = 42;
+ uses_a();
+}
+
+struct tint_symbol_3 {
+ uint local_invocation_index_1;
+};
+struct tint_symbol_5 {
+ uint local_invocation_index_2;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main1(tint_symbol_1 tint_symbol) {
+ main1_inner(tint_symbol.local_invocation_index);
+ return;
+}
+void main() {
+ tint_symbol_1 inputs;
+ inputs.local_invocation_index = uint(gl_LocalInvocationIndex);
+ main1(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+groupshared int b;
+
+void uses_b() {
+ b = (b * 2);
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+struct tint_symbol_3 {
+ uint local_invocation_index_1;
+};
+
+void main2_inner(uint local_invocation_index_1) {
+ {
+ b = 0;
+ }
+ GroupMemoryBarrierWithGroupSync();
+ b = 7;
+ uses_b();
+}
+
+struct tint_symbol_5 {
+ uint local_invocation_index_2;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main2(tint_symbol_3 tint_symbol_2) {
+ main2_inner(tint_symbol_2.local_invocation_index_1);
+ return;
+}
+void main() {
+ tint_symbol_3 inputs;
+ inputs.local_invocation_index_1 = uint(gl_LocalInvocationIndex);
+ main2(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+groupshared int a;
+groupshared int b;
+
+void uses_a() {
+ a = (a + 1);
+}
+
+void uses_b() {
+ b = (b * 2);
+}
+
+void uses_a_and_b() {
+ b = a;
+}
+
+void no_uses() {
+}
+
+void outer() {
+ a = 0;
+ uses_a();
+ uses_a_and_b();
+ uses_b();
+ no_uses();
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+struct tint_symbol_3 {
+ uint local_invocation_index_1;
+};
+struct tint_symbol_5 {
+ uint local_invocation_index_2;
+};
+
+void main3_inner(uint local_invocation_index_2) {
+ {
+ a = 0;
+ b = 0;
+ }
+ GroupMemoryBarrierWithGroupSync();
+ outer();
+ no_uses();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main3(tint_symbol_5 tint_symbol_4) {
+ main3_inner(tint_symbol_4.local_invocation_index_2);
+ return;
+}
+void main() {
+ tint_symbol_5 inputs;
+ inputs.local_invocation_index_2 = uint(gl_LocalInvocationIndex);
+ main3(inputs);
+}
+
+
+Error parsing GLSL shader:
+ERROR: 0:4: '' : syntax error, unexpected IDENTIFIER
+ERROR: 1 compilation errors. No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void no_uses() {
+}
+
+struct tint_symbol_1 {
+ uint local_invocation_index;
+};
+struct tint_symbol_3 {
+ uint local_invocation_index_1;
+};
+struct tint_symbol_5 {
+ uint local_invocation_index_2;
+};
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main4() {
+ no_uses();
+ return;
+}
+void main() {
+ main4();
+}
+
+