Remove array restriction from EOpEqual, EOpNotEqual The GLSL-version-specific behavior is already dealt with in earlier checks; here we can assume we are dealing with GLSL ES 3.00. The GLSL ES 3.00 spec section 5.7 explicitly calls out == and != as being supported operations on arrays. This is an unusual construct in real shaders, but it is used in the various "complex expression" tests (in an unreachable path). Bug: b/141916742 Test: dEQP-GLES3.functional.shaders.arrays.complex_expression.* Change-Id: I8a4ece122d604ffb917b94c03c8a086230e9108a Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/36828 Tested-by: Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/compiler/Intermediate.cpp b/src/OpenGL/compiler/Intermediate.cpp index 2c47256..c5fb3a2 100644 --- a/src/OpenGL/compiler/Intermediate.cpp +++ b/src/OpenGL/compiler/Intermediate.cpp
@@ -333,8 +333,6 @@ switch (op) { case EOpEqual: case EOpNotEqual: - if (left->isArray()) - return 0; break; case EOpLessThan: case EOpGreaterThan: