[Mesa-dev] [PATCH] nir: In prog->nir, don't wrap dot products with ptn_channel(..., X).

Kenneth Graunke kenneth at whitecape.org
Mon Mar 30 18:06:08 PDT 2015


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 at whitecape.org>
---
 src/mesa/program/prog_to_nir.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/program/prog_to_nir.c b/src/mesa/program/prog_to_nir.c
index d0e6110..4e210d1 100644
--- a/src/mesa/program/prog_to_nir.c
+++ b/src/mesa/program/prog_to_nir.c
@@ -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)));
 }
 
-- 
2.3.4



More information about the mesa-dev mailing list