Fixed some unary operators

There were a few issues in unary operators:
- Many were not compiling because the promote function had not
  been adjusted to take the new builtin functions into account
- abs and sign had not been implemented for int
- For the integer abs version, used pabsd. Removed the extra
  argument, which seemed unnecessary (abs should have 1 input,
  1 output, AFAIK).

Change-Id: If02c5040438e8c45c99fc7b3c55107448c85cf58
Reviewed-on: https://swiftshader-review.googlesource.com/4970
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/VertexProgram.cpp b/src/Shader/VertexProgram.cpp
index efae39cc..dc829ef 100644
--- a/src/Shader/VertexProgram.cpp
+++ b/src/Shader/VertexProgram.cpp
@@ -157,6 +157,7 @@
 			case Shader::OPCODE_DEFB:                                       break;
 			case Shader::OPCODE_NOP:                                        break;
 			case Shader::OPCODE_ABS:        abs(d, s0);                     break;
+			case Shader::OPCODE_IABS:       iabs(d, s0);                    break;
 			case Shader::OPCODE_ADD:        add(d, s0, s1);                 break;
 			case Shader::OPCODE_IADD:       iadd(d, s0, s1);                break;
 			case Shader::OPCODE_CRS:        crs(d, s0, s1);                 break;
@@ -256,6 +257,7 @@
 			case Shader::OPCODE_DIST4:      dist4(d.x, s0, s1, pp);         break;
 			case Shader::OPCODE_SGE:        step(d, s1, s0);                break;
 			case Shader::OPCODE_SGN:        sgn(d, s0);                     break;
+			case Shader::OPCODE_ISGN:       isgn(d, s0);                    break;
 			case Shader::OPCODE_SINCOS:     sincos(d, s0, pp);              break;
 			case Shader::OPCODE_COS:        cos(d, s0, pp);                 break;
 			case Shader::OPCODE_SIN:        sin(d, s0, pp);                 break;