mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
broadcom/qpu: add packing for fmov on ADD alu
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
This commit is contained in:
parent
d1281d857f
commit
852274d00a
1 changed files with 31 additions and 0 deletions
|
|
@ -1335,6 +1335,20 @@ v3d71_qpu_add_unpack(const struct v3d_device_info *devinfo, uint64_t packed_inst
|
|||
}
|
||||
break;
|
||||
|
||||
case V3D_QPU_A_FMOV:
|
||||
instr->alu.add.output_pack = raddr_b & 0x3;
|
||||
|
||||
/* Mul alu FMOV has one additional variant */
|
||||
int32_t unpack = (raddr_b >> 2) & 0x7;
|
||||
if (unpack == 7)
|
||||
return false;
|
||||
|
||||
if (!v3d_qpu_float32_unpack_unpack(unpack,
|
||||
&instr->alu.add.a.unpack)) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
instr->alu.add.output_pack = V3D_QPU_PACK_NONE;
|
||||
instr->alu.add.a.unpack = V3D_QPU_UNPACK_NONE;
|
||||
|
|
@ -1995,6 +2009,23 @@ v3d71_qpu_add_pack(const struct v3d_device_info *devinfo,
|
|||
break;
|
||||
}
|
||||
|
||||
case V3D_QPU_A_FMOV: {
|
||||
uint32_t packed;
|
||||
|
||||
if (!v3d_qpu_float32_pack_pack(instr->alu.add.output_pack,
|
||||
&packed)) {
|
||||
return false;
|
||||
}
|
||||
raddr_b = packed;
|
||||
|
||||
if (!v3d_qpu_float32_unpack_pack(instr->alu.add.a.unpack,
|
||||
&packed)) {
|
||||
return false;
|
||||
}
|
||||
raddr_b |= packed << 2;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
if (instr->alu.add.op != V3D_QPU_A_NOP &&
|
||||
(instr->alu.add.output_pack != V3D_QPU_PACK_NONE ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue