From 80c424148b47b6615f8e8c4886257a5c7323ef25 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 15 Aug 2018 11:58:50 -0500 Subject: [PATCH] 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 --- src/compiler/nir/nir_opcodes.py | 8 ++++---- 1 file 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")