mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
aco: sign-extend the input and identity for 8-bit subgroup operations
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4494>
This commit is contained in:
parent
c76595aec2
commit
2d4493ee11
1 changed files with 12 additions and 0 deletions
|
|
@ -506,6 +506,18 @@ void emit_reduction(lower_context *ctx, aco_opcode op, ReduceOp reduce_op, unsig
|
|||
Operand(stmp, bld.lm));
|
||||
}
|
||||
|
||||
if (src.regClass() == v1b) {
|
||||
aco_ptr<SDWA_instruction> sdwa{create_instruction<SDWA_instruction>(aco_opcode::v_mov_b32, asSDWA(Format::VOP1), 1, 1)};
|
||||
sdwa->operands[0] = Operand(PhysReg{tmp}, v1);
|
||||
sdwa->definitions[0] = Definition(PhysReg{tmp}, v1);
|
||||
if (reduce_op == imin8 || reduce_op == imax8)
|
||||
sdwa->sel[0] = sdwa_sbyte;
|
||||
else
|
||||
sdwa->sel[0] = sdwa_ubyte;
|
||||
sdwa->dst_sel = sdwa_udword;
|
||||
bld.insert(std::move(sdwa));
|
||||
}
|
||||
|
||||
bool reduction_needs_last_op = false;
|
||||
switch (op) {
|
||||
case aco_opcode::p_reduce:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue