diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-float.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-float.vert
new file mode 100644
index 0000000..0c238bd
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-float.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bool a[2];
+
+void main()
+{
+  float b[2] = float[](a[0], a[1]);
+
+  gl_Position = vec4(b[0]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-int.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-int.vert
new file mode 100644
index 0000000..7003e3a
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bool-int.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bool a[2];
+
+void main()
+{
+  int b[2] = int[](a[0], a[1]);
+
+  gl_Position = vec4(b[0]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec2-ivec2.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec2-ivec2.vert
new file mode 100644
index 0000000..62cc139
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec2-ivec2.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bvec2 a[2];
+
+void main()
+{
+  ivec2 b[2] = ivec2[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec2-vec2.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec2-vec2.vert
new file mode 100644
index 0000000..bb2574c
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec2-vec2.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bvec2 a[2];
+
+void main()
+{
+  vec2 b[2] = vec2[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec3-ivec3.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec3-ivec3.vert
new file mode 100644
index 0000000..d9a4697
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec3-ivec3.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsles_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bvec3 a[2];
+
+void main()
+{
+  ivec3 b[2] = ivec3[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec3-vec3.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec3-vec3.vert
new file mode 100644
index 0000000..58092ce
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec3-vec3.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bvec3 a[2];
+
+void main()
+{
+  vec3 b[2] = vec3[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec4-ivec4.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec4-ivec4.vert
new file mode 100644
index 0000000..578d2bd
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec4-ivec4.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bvec4 a[2];
+
+void main()
+{
+  ivec4 b[2] = ivec4[](a[0], a[1]);
+
+  gl_Position = vec4(b[0]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec4-vec4.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec4-vec4.vert
new file mode 100644
index 0000000..cfd7843
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-bvec4-vec4.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform bvec4 a[2];
+
+void main()
+{
+  vec4 b[2] = vec4[](a[0], a[1]);
+
+  gl_Position = b[0];
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-bool.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-bool.vert
new file mode 100644
index 0000000..13c10ef
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-bool.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform float a[2];
+
+void main()
+{
+  bool b[2] = bool[](a[0], a[0]);
+
+  gl_Position = vec4(b[0], b[0], b[1], b[1]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-int.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-int.vert
new file mode 100644
index 0000000..183743f
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-float-int.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform float a[2];
+
+void main()
+{
+  int b[2] = int[](a[0], a[0]);
+
+  gl_Position = vec4(b[0], b[0], b[1], b[1]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-int-bool.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-int-bool.vert
new file mode 100644
index 0000000..cebbb8e
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-int-bool.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform int a[2];
+
+void main()
+{
+  bool b[2] = bool[](a[0], a[1]);
+
+  gl_Position = vec4(b[0]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-int-float.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-int-float.vert
new file mode 100644
index 0000000..3b7df8c
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-int-float.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform int a[2];
+
+void main()
+{
+  float b[2] = float[](a[0], a[1]);
+
+  gl_Position = vec4(b[0]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec2-bvec2.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec2-bvec2.vert
new file mode 100644
index 0000000..d18e9c8
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec2-bvec2.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform ivec2 a[2];
+
+void main()
+{
+  bvec2 b[2] = bvec2[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec2-vec2.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec2-vec2.vert
new file mode 100644
index 0000000..36e5ac0
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec2-vec2.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform ivec2 a[2];
+
+void main()
+{
+  vec2 b[2] = vec2[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec3-bvec3.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec3-bvec3.vert
new file mode 100644
index 0000000..036175a
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec3-bvec3.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform ivec3 a[2];
+
+void main()
+{
+  bvec3 b[2] = bvec3[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec3-vec3.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec3-vec3.vert
new file mode 100644
index 0000000..88ac6e3
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec3-vec3.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform ivec3 a[2];
+
+void main()
+{
+  vec3 b[2] = vec3[](a[0], a[1]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec4-bvec4.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec4-bvec4.vert
new file mode 100644
index 0000000..c6bf5b5
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec4-bvec4.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform ivec4 a[2];
+
+void main()
+{
+  bvec4 b[2] = bvec4[](a[0], a[1]);
+
+  gl_Position = vec4(b[0]);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec4-vec4.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec4-vec4.vert
new file mode 100644
index 0000000..81d794d
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-ivec4-vec4.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform ivec4 a[2];
+
+void main()
+{
+  vec4 b[2] = vec4[](a[0], a[1]);
+
+  gl_Position = b[0];
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec2-bvec2.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec2-bvec2.vert
new file mode 100644
index 0000000..7ccfc1b
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec2-bvec2.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform vec2 a[2];
+
+void main()
+{
+  bvec2 b[2] = bvec2[](a[0], a[0]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec2-ivec2.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec2-ivec2.vert
new file mode 100644
index 0000000..3f850aa
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec2-ivec2.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform vec2 a[2];
+
+void main()
+{
+  ivec2 b[2] = ivec2[](a[0], a[0]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec3-bvec3.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec3-bvec3.vert
new file mode 100644
index 0000000..959273d
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec3-bvec3.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform vec3 a[2];
+
+void main()
+{
+  bvec3 b[2] = bvec3[](a[0], a[0]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec3-ivec3.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec3-ivec3.vert
new file mode 100644
index 0000000..b6f1288
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec3-ivec3.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform vec3 a[2];
+
+void main()
+{
+  ivec3 b[2] = ivec3[](a[0], a[0]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[1].x, b[1].y);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec4-bvec4.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec4-bvec4.vert
new file mode 100644
index 0000000..68ba154
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec4-bvec4.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform vec4 a[2];
+
+void main()
+{
+  bvec4 b[2] = bvec4[](a[0], a[0]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[0].z, b[0].w);
+}
diff --git a/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec4-ivec4.vert b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec4-ivec4.vert
new file mode 100644
index 0000000..3d5300c
--- /dev/null
+++ b/tests/spec/glsl-es-1.00/compiler/structure-and-array-operations/array-ctor-implicit-conversion-vec4-ivec4.vert
@@ -0,0 +1,19 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.00
+ * [end config]
+ *
+ * Page 18 GLSL ES 1.00.17 spec:
+ *
+ * "There are no implicit conversion between types."
+ */
+
+
+uniform vec4 a[2];
+
+void main()
+{
+  ivec4 b[2] = ivec4[](a[0], a[0]);
+
+  gl_Position = vec4(b[0].x, b[0].y, b[0].z, b[0].w);
+}
