mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
panvk: Implement bitfield_select
Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com> Reviewed-by: Lorenzo Rossi <lorenzo.rossi@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41036>
This commit is contained in:
parent
58cba7887a
commit
ffae24bfe2
2 changed files with 11 additions and 0 deletions
|
|
@ -3530,6 +3530,16 @@ bi_emit_alu(bi_builder *b, nir_alu_instr *instr)
|
|||
bi_bitrev_i32_to(b, dst, s0);
|
||||
break;
|
||||
|
||||
case nir_op_bitfield_select:
|
||||
/* Bifrost doesn't have MUX.v4i8.bit but that's okay because MUX.v4i8
|
||||
* can't swizzle on Bifrost anyway so we can just use MUX.i32.
|
||||
*/
|
||||
if (b->shader->arch < 9 && sz == 8)
|
||||
bi_mux_i32_to(b, dst, s1, s2, s0, BI_MUX_BIT);
|
||||
else
|
||||
bi_mux_to(b, sz, dst, s1, s2, s0, BI_MUX_BIT);
|
||||
break;
|
||||
|
||||
case nir_op_ufind_msb: {
|
||||
bi_index clz = bi_clz(b, src_sz, s0, false);
|
||||
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ bool valhall_can_merge_workgroups(nir_shader *nir);
|
|||
.lower_bitfield_extract8 = true, \
|
||||
.lower_bitfield_extract16 = true, \
|
||||
.lower_insert_byte = true, \
|
||||
.has_bitfield_select = true, \
|
||||
\
|
||||
.lower_pack_64_4x16 = true, \
|
||||
.lower_pack_half_2x16 = true, \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue