OSDN Git Service

Eliminate unnecessary casts.
authorNicolas Capens <capn@google.com>
Sun, 29 Mar 2015 15:19:59 +0000 (11:19 -0400)
committerNicolas Capens <capn@google.com>
Tue, 26 May 2015 20:10:58 +0000 (20:10 +0000)
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>
src/Shader/SamplerCore.cpp

index eb25c78..654e01b 100644 (file)
@@ -601,13 +601,13 @@ namespace sw
                                        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 @@ namespace sw
 
                                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 @@ namespace sw
                                        {
                                                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 @@ namespace sw
                                        {
                                                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 @@ namespace sw
                                        {
                                                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 @@ namespace sw
                                        {
                                                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 @@ namespace sw
                                }
                        }
 
-                       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;
-
-                       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(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));
+                       UShort4 f1u = ~f0u;
+                       UShort4 f1v = ~f0v;
+                       UShort4 f1s = ~f0s;
+
+                       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(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 @@ namespace sw
                                        {
                                                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)
                                                {