Fix min/max constant folding.

Change-Id: I9ac2051f5cc8703e804b86c0006bb1b9fe48f521
Reviewed-on: https://swiftshader-review.googlesource.com/5082
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp
index df9ffd0..ddf0765 100644
--- a/src/OpenGL/compiler/ParseHelper.cpp
+++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -3581,6 +3581,25 @@
 					functionCallLValueErrorCheck(fnCandidate, aggregate);
 
 					callNode = aggregate;
+
+					if(fnCandidate->getParamCount() == 2)
+					{
+						TIntermSequence &parameters = paramNode->getAsAggregate()->getSequence();
+						TIntermTyped *left = parameters[0]->getAsTyped();
+						TIntermTyped *right = parameters[1]->getAsTyped();
+
+						TIntermConstantUnion *leftTempConstant = left->getAsConstantUnion();
+						TIntermConstantUnion *rightTempConstant = right->getAsConstantUnion();
+						if (leftTempConstant && rightTempConstant)
+						{
+							TIntermTyped *typedReturnNode = leftTempConstant->fold(op, rightTempConstant, infoSink());
+
+							if(typedReturnNode)
+							{
+								callNode = typedReturnNode;
+							}
+						}
+					}
 				}
 			}
 			else