mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 02:20:11 +01:00
nir: add support for (un)pack_double_2x32
v2 (Sam): - Use uint64 instead of float64 for sources and destinations. (Connor) Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
d5d6260329
commit
9e31e0a21b
2 changed files with 35 additions and 0 deletions
|
|
@ -1422,6 +1422,12 @@ nir_visitor::visit(ir_expression *ir)
|
|||
case ir_unop_unpack_half_2x16:
|
||||
result = nir_unpack_half_2x16(&b, srcs[0]);
|
||||
break;
|
||||
case ir_unop_pack_double_2x32:
|
||||
result = nir_pack_double_2x32(&b, srcs[0]);
|
||||
break;
|
||||
case ir_unop_unpack_double_2x32:
|
||||
result = nir_unpack_double_2x32(&b, srcs[0]);
|
||||
break;
|
||||
case ir_unop_bitfield_reverse:
|
||||
result = nir_bitfield_reverse(&b, srcs[0]);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ tuint = "uint"
|
|||
tfloat32 = "float32"
|
||||
tint32 = "int32"
|
||||
tuint32 = "uint32"
|
||||
tuint64 = "uint64"
|
||||
tfloat64 = "float64"
|
||||
|
||||
commutative = "commutative "
|
||||
|
|
@ -261,6 +262,34 @@ dst.x = (src0.x << 0) |
|
|||
(src0.w << 24);
|
||||
""")
|
||||
|
||||
unop_horiz("pack_double_2x32", 1, tuint64, 2, tuint32, """
|
||||
union {
|
||||
uint64_t u64;
|
||||
struct {
|
||||
uint32_t i1;
|
||||
uint32_t i2;
|
||||
};
|
||||
} di;
|
||||
|
||||
di.i1 = src0.x;
|
||||
di.i2 = src0.y;
|
||||
dst.x = di.u64;
|
||||
""")
|
||||
|
||||
unop_horiz("unpack_double_2x32", 2, tuint32, 1, tuint64, """
|
||||
union {
|
||||
uint64_t u64;
|
||||
struct {
|
||||
uint32_t i1;
|
||||
uint32_t i2;
|
||||
};
|
||||
} di;
|
||||
|
||||
di.u64 = src0.x;
|
||||
dst.x = di.i1;
|
||||
dst.y = di.i2;
|
||||
""")
|
||||
|
||||
# Lowered floating point unpacking operations.
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue