r600/sfn: Fix source modifiers for ffract64

Fixes: 79ca456b48
    r600/sfn: rewrite NIR backend

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19707>
This commit is contained in:
Gert Wollny 2022-11-13 12:09:20 +01:00
parent e63d6ed85e
commit fd27b18631

View file

@ -1725,17 +1725,21 @@ emit_alu_op1_64bit(const nir_alu_instr& alu,
}
for (unsigned i = 0; i < nir_dest_num_components(alu.dest.dest); ++i) {
for (unsigned c = 0; c < 2; ++c) {
ir = new AluInstr(opcode,
value_factory.dest(alu.dest, 2 * i + c, pin_chan),
value_factory.src64(alu.src[0], i, swz[c]),
{alu_write});
group->add_instruction(ir);
}
ir = new AluInstr(opcode,
value_factory.dest(alu.dest, 2 * i, pin_chan),
value_factory.src64(alu.src[0], i, swz[0]),
{alu_write});
group->add_instruction(ir);
if (alu.src[0].abs)
ir->set_alu_flag(alu_src0_abs);
if (alu.src[0].negate)
ir->set_alu_flag(alu_src0_neg);
ir = new AluInstr(opcode,
value_factory.dest(alu.dest, 2 * i + 1, pin_chan),
value_factory.src64(alu.src[0], i, swz[1]),
{alu_write});
group->add_instruction(ir);
}
if (ir)
ir->set_alu_flag(alu_last_instr);