Eliminate unnecessary casts.

Change-Id: I7db8aa80460d80975898dc941a34c26179539cf6
Reviewed-on: https://swiftshader-review.googlesource.com/2743
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/SamplerCore.cpp b/src/Shader/SamplerCore.cpp
index eb25c78..654e01b 100644
--- a/src/Shader/SamplerCore.cpp
+++ b/src/Shader/SamplerCore.cpp
@@ -601,13 +601,13 @@
 					f0v = f0v * *Pointer<UShort4>(mipmap + OFFSET(Mipmap,height));
 				}
 
-				Short4 f1u = ~f0u;
-				Short4 f1v = ~f0v;
+				UShort4 f1u = ~f0u;
+				UShort4 f1v = ~f0v;
 			
-				Short4 f0u0v = MulHigh(As<UShort4>(f0u), As<UShort4>(f0v));
-				Short4 f1u0v = MulHigh(As<UShort4>(f1u), As<UShort4>(f0v));
-				Short4 f0u1v = MulHigh(As<UShort4>(f0u), As<UShort4>(f1v));
-				Short4 f1u1v = MulHigh(As<UShort4>(f1u), As<UShort4>(f1v));
+				UShort4 f0u0v = MulHigh(f0u, f0v);
+				UShort4 f1u0v = MulHigh(f1u, f0v);
+				UShort4 f0u1v = MulHigh(f0u, f1v);
+				UShort4 f1u1v = MulHigh(f1u, f1v);
 
 				// Signed fractions
 				Short4 f1u1vs;
@@ -617,10 +617,10 @@
 
 				if(!hasUnsignedTextureComponent(0) || !hasUnsignedTextureComponent(1) || !hasUnsignedTextureComponent(2) || !hasUnsignedTextureComponent(3))
 				{
-					f1u1vs = As<UShort4>(f1u1v) >> 1;
-					f0u1vs = As<UShort4>(f0u1v) >> 1;
-					f1u0vs = As<UShort4>(f1u0v) >> 1;
-					f0u0vs = As<UShort4>(f0u0v) >> 1;
+					f1u1vs = f1u1v >> 1;
+					f0u1vs = f0u1v >> 1;
+					f1u0vs = f1u0v >> 1;
+					f0u0vs = f0u0v >> 1;
 				}
 
 				// Bilinear interpolation
@@ -636,10 +636,10 @@
 					{
 						if(hasUnsignedTextureComponent(0))
 						{
-							c0.x = MulHigh(As<UShort4>(c0.x), As<UShort4>(f1u1v));
-							c1.x = MulHigh(As<UShort4>(c1.x), As<UShort4>(f0u1v));
-							c2.x = MulHigh(As<UShort4>(c2.x), As<UShort4>(f1u0v));
-							c3.x = MulHigh(As<UShort4>(c3.x), As<UShort4>(f0u0v));
+							c0.x = MulHigh(As<UShort4>(c0.x), f1u1v);
+							c1.x = MulHigh(As<UShort4>(c1.x), f0u1v);
+							c2.x = MulHigh(As<UShort4>(c2.x), f1u0v);
+							c3.x = MulHigh(As<UShort4>(c3.x), f0u0v);
 						}
 						else
 						{
@@ -666,10 +666,10 @@
 					{
 						if(hasUnsignedTextureComponent(1))
 						{
-							c0.y = MulHigh(As<UShort4>(c0.y), As<UShort4>(f1u1v));
-							c1.y = MulHigh(As<UShort4>(c1.y), As<UShort4>(f0u1v));
-							c2.y = MulHigh(As<UShort4>(c2.y), As<UShort4>(f1u0v));
-							c3.y = MulHigh(As<UShort4>(c3.y), As<UShort4>(f0u0v));
+							c0.y = MulHigh(As<UShort4>(c0.y), f1u1v);
+							c1.y = MulHigh(As<UShort4>(c1.y), f0u1v);
+							c2.y = MulHigh(As<UShort4>(c2.y), f1u0v);
+							c3.y = MulHigh(As<UShort4>(c3.y), f0u0v);
 						}
 						else
 						{
@@ -696,10 +696,10 @@
 					{
 						if(hasUnsignedTextureComponent(2))
 						{
-							c0.z = MulHigh(As<UShort4>(c0.z), As<UShort4>(f1u1v));
-							c1.z = MulHigh(As<UShort4>(c1.z), As<UShort4>(f0u1v));
-							c2.z = MulHigh(As<UShort4>(c2.z), As<UShort4>(f1u0v));
-							c3.z = MulHigh(As<UShort4>(c3.z), As<UShort4>(f0u0v));
+							c0.z = MulHigh(As<UShort4>(c0.z), f1u1v);
+							c1.z = MulHigh(As<UShort4>(c1.z), f0u1v);
+							c2.z = MulHigh(As<UShort4>(c2.z), f1u0v);
+							c3.z = MulHigh(As<UShort4>(c3.z), f0u0v);
 						}
 						else
 						{
@@ -726,10 +726,10 @@
 					{
 						if(hasUnsignedTextureComponent(3))
 						{
-							c0.w = MulHigh(As<UShort4>(c0.w), As<UShort4>(f1u1v));
-							c1.w = MulHigh(As<UShort4>(c1.w), As<UShort4>(f0u1v));
-							c2.w = MulHigh(As<UShort4>(c2.w), As<UShort4>(f1u0v));
-							c3.w = MulHigh(As<UShort4>(c3.w), As<UShort4>(f0u0v));
+							c0.w = MulHigh(As<UShort4>(c0.w), f1u1v);
+							c1.w = MulHigh(As<UShort4>(c1.w), f0u1v);
+							c2.w = MulHigh(As<UShort4>(c2.w), f1u0v);
+							c3.w = MulHigh(As<UShort4>(c3.w), f0u0v);
 						}
 						else
 						{
@@ -797,66 +797,59 @@
 				}
 			}
 
-			Short4 f[2][2][2];
-			Short4 fs[2][2][2];
-			Short4 f0u;
-			Short4 f0v;
-			Short4 f0s;
-			Short4 f1u;
-			Short4 f1v;
-			Short4 f1s;
-
 			// Fractions
-			f0u = u[0][0][0];
-			f0v = v[0][0][0];
-			f0s = s[0][0][0];
+			UShort4 f[2][2][2];
+			Short4 fs[2][2][2];
+			UShort4 f0u;
+			UShort4 f0v;
+			UShort4 f0s;
 
 			if(!state.hasNPOTTexture)
 			{
-				f0u = f0u << *Pointer<Long1>(mipmap + OFFSET(Mipmap,uInt));
-				f0v = f0v << *Pointer<Long1>(mipmap + OFFSET(Mipmap,vInt));
-				f0s = f0s << *Pointer<Long1>(mipmap + OFFSET(Mipmap,wInt));
+				f0u = As<UShort4>(u[0][0][0]) << *Pointer<Long1>(mipmap + OFFSET(Mipmap,uInt));
+				f0v = As<UShort4>(v[0][0][0]) << *Pointer<Long1>(mipmap + OFFSET(Mipmap,vInt));
+				f0s = As<UShort4>(s[0][0][0]) << *Pointer<Long1>(mipmap + OFFSET(Mipmap,wInt));
 			}
 			else
 			{
-				f0u *= *Pointer<Short4>(mipmap + OFFSET(Mipmap,width));
-				f0v *= *Pointer<Short4>(mipmap + OFFSET(Mipmap,height));
-				f0s *= *Pointer<Short4>(mipmap + OFFSET(Mipmap,depth));
+				f0u = As<UShort4>(u[0][0][0]) * *Pointer<UShort4>(mipmap + OFFSET(Mipmap,width));
+				f0v = As<UShort4>(v[0][0][0]) * *Pointer<UShort4>(mipmap + OFFSET(Mipmap,height));
+				f0s = As<UShort4>(s[0][0][0]) * *Pointer<UShort4>(mipmap + OFFSET(Mipmap,depth));
 			}
 
-			f1u = ~f0u;
-			f1v = ~f0v;
-			f1s = ~f0s;
+			UShort4 f1u = ~f0u;
+			UShort4 f1v = ~f0v;
+			UShort4 f1s = ~f0s;
 
-			f[1][1][1] = MulHigh(As<UShort4>(f1u), As<UShort4>(f1v));
-			f[0][1][1] = MulHigh(As<UShort4>(f0u), As<UShort4>(f1v));
-			f[1][0][1] = MulHigh(As<UShort4>(f1u), As<UShort4>(f0v));
-			f[0][0][1] = MulHigh(As<UShort4>(f0u), As<UShort4>(f0v));
-			f[1][1][0] = MulHigh(As<UShort4>(f1u), As<UShort4>(f1v));
-			f[0][1][0] = MulHigh(As<UShort4>(f0u), As<UShort4>(f1v));
-			f[1][0][0] = MulHigh(As<UShort4>(f1u), As<UShort4>(f0v));
-			f[0][0][0] = MulHigh(As<UShort4>(f0u), As<UShort4>(f0v));
+			f[1][1][1] = MulHigh(f1u, f1v);
+			f[0][1][1] = MulHigh(f0u, f1v);
+			f[1][0][1] = MulHigh(f1u, f0v);
+			f[0][0][1] = MulHigh(f0u, f0v);
+			f[1][1][0] = MulHigh(f1u, f1v);
+			f[0][1][0] = MulHigh(f0u, f1v);
+			f[1][0][0] = MulHigh(f1u, f0v);
+			f[0][0][0] = MulHigh(f0u, f0v);
 
-			f[1][1][1] = MulHigh(As<UShort4>(f[1][1][1]), As<UShort4>(f1s));
-			f[0][1][1] = MulHigh(As<UShort4>(f[0][1][1]), As<UShort4>(f1s));
-			f[1][0][1] = MulHigh(As<UShort4>(f[1][0][1]), As<UShort4>(f1s));
-			f[0][0][1] = MulHigh(As<UShort4>(f[0][0][1]), As<UShort4>(f1s));
-			f[1][1][0] = MulHigh(As<UShort4>(f[1][1][0]), As<UShort4>(f0s));
-			f[0][1][0] = MulHigh(As<UShort4>(f[0][1][0]), As<UShort4>(f0s));
-			f[1][0][0] = MulHigh(As<UShort4>(f[1][0][0]), As<UShort4>(f0s));
-			f[0][0][0] = MulHigh(As<UShort4>(f[0][0][0]), As<UShort4>(f0s));
+			f[1][1][1] = MulHigh(f[1][1][1], f1s);
+			f[0][1][1] = MulHigh(f[0][1][1], f1s);
+			f[1][0][1] = MulHigh(f[1][0][1], f1s);
+			f[0][0][1] = MulHigh(f[0][0][1], f1s);
+			f[1][1][0] = MulHigh(f[1][1][0], f0s);
+			f[0][1][0] = MulHigh(f[0][1][0], f0s);
+			f[1][0][0] = MulHigh(f[1][0][0], f0s);
+			f[0][0][0] = MulHigh(f[0][0][0], f0s);
 
 			// Signed fractions
 			if(!hasUnsignedTextureComponent(0) || !hasUnsignedTextureComponent(1) || !hasUnsignedTextureComponent(2) || !hasUnsignedTextureComponent(3))
 			{
-				fs[0][0][0] = As<UShort4>(f[0][0][0]) >> 1;
-				fs[0][0][1] = As<UShort4>(f[0][0][1]) >> 1;
-				fs[0][1][0] = As<UShort4>(f[0][1][0]) >> 1;
-				fs[0][1][1] = As<UShort4>(f[0][1][1]) >> 1;
-				fs[1][0][0] = As<UShort4>(f[1][0][0]) >> 1;
-				fs[1][0][1] = As<UShort4>(f[1][0][1]) >> 1;
-				fs[1][1][0] = As<UShort4>(f[1][1][0]) >> 1;
-				fs[1][1][1] = As<UShort4>(f[1][1][1]) >> 1;
+				fs[0][0][0] = f[0][0][0] >> 1;
+				fs[0][0][1] = f[0][0][1] >> 1;
+				fs[0][1][0] = f[0][1][0] >> 1;
+				fs[0][1][1] = f[0][1][1] >> 1;
+				fs[1][0][0] = f[1][0][0] >> 1;
+				fs[1][0][1] = f[1][0][1] >> 1;
+				fs[1][1][0] = f[1][1][0] >> 1;
+				fs[1][1][1] = f[1][1][1] >> 1;
 			}
 
 			for(int i = 0; i < 2; i++)
@@ -867,10 +860,10 @@
 					{
 						sampleTexel(c[i][j][k], u[i][j][k], v[i][j][k], s[i][j][k], mipmap, buffer);
 
-						if(componentCount >= 1) if(hasUnsignedTextureComponent(0)) c[i][j][k].x = MulHigh(As<UShort4>(c[i][j][k].x), As<UShort4>(f[1 - i][1 - j][1 - k])); else c[i][j][k].x = MulHigh(c[i][j][k].x, fs[1 - i][1 - j][1 - k]);
-						if(componentCount >= 2) if(hasUnsignedTextureComponent(1)) c[i][j][k].y = MulHigh(As<UShort4>(c[i][j][k].y), As<UShort4>(f[1 - i][1 - j][1 - k])); else c[i][j][k].y = MulHigh(c[i][j][k].y, fs[1 - i][1 - j][1 - k]);
-						if(componentCount >= 3) if(hasUnsignedTextureComponent(2)) c[i][j][k].z = MulHigh(As<UShort4>(c[i][j][k].z), As<UShort4>(f[1 - i][1 - j][1 - k])); else c[i][j][k].z = MulHigh(c[i][j][k].z, fs[1 - i][1 - j][1 - k]);
-						if(componentCount >= 4) if(hasUnsignedTextureComponent(3)) c[i][j][k].w = MulHigh(As<UShort4>(c[i][j][k].w), As<UShort4>(f[1 - i][1 - j][1 - k])); else c[i][j][k].w = MulHigh(c[i][j][k].w, fs[1 - i][1 - j][1 - k]);
+						if(componentCount >= 1) if(hasUnsignedTextureComponent(0)) c[i][j][k].x = MulHigh(As<UShort4>(c[i][j][k].x), f[1 - i][1 - j][1 - k]); else c[i][j][k].x = MulHigh(c[i][j][k].x, fs[1 - i][1 - j][1 - k]);
+						if(componentCount >= 2) if(hasUnsignedTextureComponent(1)) c[i][j][k].y = MulHigh(As<UShort4>(c[i][j][k].y), f[1 - i][1 - j][1 - k]); else c[i][j][k].y = MulHigh(c[i][j][k].y, fs[1 - i][1 - j][1 - k]);
+						if(componentCount >= 3) if(hasUnsignedTextureComponent(2)) c[i][j][k].z = MulHigh(As<UShort4>(c[i][j][k].z), f[1 - i][1 - j][1 - k]); else c[i][j][k].z = MulHigh(c[i][j][k].z, fs[1 - i][1 - j][1 - k]);
+						if(componentCount >= 4) if(hasUnsignedTextureComponent(3)) c[i][j][k].w = MulHigh(As<UShort4>(c[i][j][k].w), f[1 - i][1 - j][1 - k]); else c[i][j][k].w = MulHigh(c[i][j][k].w, fs[1 - i][1 - j][1 - k]);
 
 						if(i != 0 || j != 0 || k != 0)
 						{