nir: In prog->nir, don't wrap dot products with ptn_channel(..., X).
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 30 Mar 2015 12:17:56 +0000 (05:17 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 1 Apr 2015 20:30:13 +0000 (13:30 -0700)
ptn_move_dest and nir_fadd already take care of replicating the last
channel out, so we can just use a scalar and skip splatting it.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/program/prog_to_nir.c

index d0e611003d6677d5bdfeaa6b67d107e40af95aaf..4e210d190decf90419e8f52d69e60f5f6869427b 100644 (file)
@@ -499,25 +499,25 @@ ptn_xpd(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 static void
 ptn_dp2(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   ptn_move_dest(b, dest, ptn_channel(b, nir_fdot2(b, src[0], src[1]), X));
+   ptn_move_dest(b, dest, nir_fdot2(b, src[0], src[1]));
 }
 
 static void
 ptn_dp3(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   ptn_move_dest(b, dest, ptn_channel(b, nir_fdot3(b, src[0], src[1]), X));
+   ptn_move_dest(b, dest, nir_fdot3(b, src[0], src[1]));
 }
 
 static void
 ptn_dp4(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   ptn_move_dest(b, dest, ptn_channel(b, nir_fdot4(b, src[0], src[1]), X));
+   ptn_move_dest(b, dest, nir_fdot4(b, src[0], src[1]));
 }
 
 static void
 ptn_dph(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
 {
-   nir_ssa_def *dp3 = ptn_channel(b, nir_fdot3(b, src[0], src[1]), X);
+   nir_ssa_def *dp3 = nir_fdot3(b, src[0], src[1]);
    ptn_move_dest(b, dest, nir_fadd(b, dp3, ptn_channel(b, src[1], W)));
 }