nir/opcodes: Simplify and fix the unpack_half_*_split_* constant expressions

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.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
Jason Ekstrand 2015-01-26 09:36:58 -08:00
parent 27c6e3e4ca
commit 9bd28fe3a3

View file

@ -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.