[Mesa-dev] [PATCH 1/2] nir/opcodes: Simplify and fix the unpack_half_*_split_* constant expressions

Jason Ekstrand jason at jlekstrand.net
Mon Jan 26 09:43:33 PST 2015


Previously, these functions were explicitly writing to dst.x and dst.y.
However they both return only one component so writing to dst.y is invalid.
Also, since they only return one component, we don't need the explicit
assignment in the expression and can simplify it use an implicit
assignment.
---
 src/glsl/nir/nir_opcodes.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/glsl/nir/nir_opcodes.py b/src/glsl/nir/nir_opcodes.py
index 5fe9572..0fa8bf5 100644
--- a/src/glsl/nir/nir_opcodes.py
+++ b/src/glsl/nir/nir_opcodes.py
@@ -252,12 +252,10 @@ unpack_2x16("half")
 # Lowered floating point unpacking operations.
 
 
-unop_horiz("unpack_half_2x16_split_x", 1, tfloat, 1, tunsigned, """
-dst.x = unpack_half_1x16((uint16_t)(src0.x & 0xffff));
-""")
-unop_horiz("unpack_half_2x16_split_y", 1, tfloat, 1, tunsigned, """
-dst.y = unpack_half_1x16((uint16_t)(src0.x >> 16));
-""")
+unop_horiz("unpack_half_2x16_split_x", 1, tfloat, 1, tunsigned,
+           "unpack_half_1x16((uint16_t)(src0.x & 0xffff))")
+unop_horiz("unpack_half_2x16_split_y", 1, tfloat, 1, tunsigned,
+           "unpack_half_1x16((uint16_t)(src0.x >> 16))")
 
 
 # Bit operations, part of ARB_gpu_shader5.
-- 
2.2.1



More information about the mesa-dev mailing list