new file mode 100644
@@ -0,0 +1,38 @@
+# Test for linking error between vertex and fragment shaders
+# with mismatching AoA atomic counter declorations
+
+[require]
+GLSL >= 1.40
+GL_ARB_shader_atomic_counters
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 140
+#extension GL_ARB_arrays_of_arrays: enable
+#extension GL_ARB_shader_atomic_counters: enable
+
+layout(binding = 0) uniform atomic_uint a1[3][2][2];
+
+in vec4 piglit_vertex;
+
+void main()
+{
+ gl_Position = piglit_vertex;
+}
+
+[fragment shader]
+#version 140
+#extension GL_ARB_arrays_of_arrays: enable
+#extension GL_ARB_shader_atomic_counters: enable
+
+layout(binding = 0) uniform atomic_uint a1[2][2][2];
+
+out vec4 fcolor;
+
+void main()
+{
+ fcolor = vec4(1.0);
+}
+
+[test]
+link error
new file mode 100644
@@ -0,0 +1,38 @@
+# Test for successful linking between vertex and fragment shaders
+# with matching AoA atomic counter declorations
+
+[require]
+GLSL >= 1.40
+GL_ARB_shader_atomic_counters
+GL_ARB_arrays_of_arrays
+
+[vertex shader]
+#version 140
+#extension GL_ARB_arrays_of_arrays: enable
+#extension GL_ARB_shader_atomic_counters: enable
+
+layout(binding = 0) uniform atomic_uint a1[3][2][2];
+
+in vec4 piglit_vertex;
+
+void main()
+{
+ gl_Position = piglit_vertex;
+}
+
+[fragment shader]
+#version 140
+#extension GL_ARB_arrays_of_arrays: enable
+#extension GL_ARB_shader_atomic_counters: enable
+
+layout(binding = 0) uniform atomic_uint a1[3][2][2];
+
+out vec4 fcolor;
+
+void main()
+{
+ fcolor = vec4(1.0);
+}
+
+[test]
+link success