aco: fix read_invocation with VGPR lane index

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 93c8ebfa ('aco: Initial commit of independent AMD compiler')
(cherry picked from commit 5a1bacb6f9)
This commit is contained in:
Rhys Perry 2019-11-12 15:44:17 +00:00 committed by Dylan Baker
parent 992bff94f7
commit 1b8f93550a

View file

@ -5626,9 +5626,8 @@ void visit_intrinsic(isel_context *ctx, nir_intrinsic_instr *instr)
}
case nir_intrinsic_read_invocation: {
Temp src = get_ssa_temp(ctx, instr->src[0].ssa);
Temp lane = get_ssa_temp(ctx, instr->src[1].ssa);
Temp lane = bld.as_uniform(get_ssa_temp(ctx, instr->src[1].ssa));
Temp dst = get_ssa_temp(ctx, &instr->dest.ssa);
assert(lane.regClass() == s1);
if (src.regClass() == v1) {
emit_wqm(ctx, bld.vop3(aco_opcode::v_readlane_b32, bld.def(s1), src, lane), dst);
} else if (src.regClass() == v2) {