diff options
author | Jason Ekstrand <[email protected]> | 2018-08-15 11:58:50 -0500 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-08-29 14:04:02 -0500 |
commit | 80c424148b47b6615f8e8c4886257a5c7323ef25 (patch) | |
tree | ffab2848578d1057be35fbbae84fcfe3686073ef | |
parent | d448fa3ae35c3aa4e7bf25f8b1870315573e32fa (diff) |
nir/opcodes: Make unpack_half_2x16_split_* variable-width
There is nothing inherent about these opcodes that requires them to only
take scalars. It's very convenient if we let them take vectors as well.
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/compiler/nir/nir_opcodes.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py index ed8e0ae9f39..4ef4ecc6f22 100644 --- a/src/compiler/nir/nir_opcodes.py +++ b/src/compiler/nir/nir_opcodes.py @@ -304,10 +304,10 @@ unop_horiz("unpack_32_2x16", 2, tuint16, 1, tuint32, # Lowered floating point unpacking operations. -unop_horiz("unpack_half_2x16_split_x", 1, tfloat32, 1, tuint32, - "unpack_half_1x16((uint16_t)(src0.x & 0xffff))") -unop_horiz("unpack_half_2x16_split_y", 1, tfloat32, 1, tuint32, - "unpack_half_1x16((uint16_t)(src0.x >> 16))") +unop_convert("unpack_half_2x16_split_x", tfloat32, tuint32, + "unpack_half_1x16((uint16_t)(src0 & 0xffff))") +unop_convert("unpack_half_2x16_split_y", tfloat32, tuint32, + "unpack_half_1x16((uint16_t)(src0 >> 16))") unop_convert("unpack_32_2x16_split_x", tuint16, tuint32, "src0") unop_convert("unpack_32_2x16_split_y", tuint16, tuint32, "src0 >> 16") |