From ea2d9b3d38b8ad6c32afa91f606ad7671b602777 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 31 Oct 2019 13:20:26 +0100 Subject: [PATCH] zink/spirv: implement ball_iequal[2-4] --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index cd7d48c..2e430c6 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -1052,6 +1052,18 @@ emit_alu(struct ntv_context *ctx, nir_alu_instr *alu) result = emit_unop(ctx, SpvOpAny, dest_type, result); break; + case nir_op_ball_iequal2: + case nir_op_ball_iequal3: + case nir_op_ball_iequal4: + assert(nir_op_infos[alu->op].num_inputs == 2); + assert(alu_instr_src_components(alu, 0) == + alu_instr_src_components(alu, 1)); + result = emit_binop(ctx, SpvOpIEqual, + get_bvec_type(ctx, alu_instr_src_components(alu, 0)), + src[0], src[1]); + result = emit_unop(ctx, SpvOpAll, dest_type, result); + break; + case nir_op_vec2: case nir_op_vec3: case nir_op_vec4: { -- 2.7.4