result = LLVMBuildSExt(ctx->ac.builder, tmp, ctx->ac.i32, "");
break;
}
- case nir_intrinsic_vote_eq: {
+ case nir_intrinsic_vote_ieq: {
LLVMValueRef tmp = ac_build_vote_eq(&ctx->ac, get_src(ctx, instr->src[0]));
result = LLVMBuildSExt(ctx->ac.builder, tmp, ctx->ac.i32, "");
break;
op = nir_intrinsic_vote_all;
break;
case ir_intrinsic_vote_eq:
- op = nir_intrinsic_vote_eq;
+ op = nir_intrinsic_vote_ieq;
break;
case ir_intrinsic_ballot:
op = nir_intrinsic_ballot;
}
case nir_intrinsic_vote_any:
case nir_intrinsic_vote_all:
- case nir_intrinsic_vote_eq: {
+ case nir_intrinsic_vote_ieq: {
nir_ssa_dest_init(&instr->instr, &instr->dest, 1, 32, NULL);
+ instr->num_components = 1;
ir_rvalue *value = (ir_rvalue *) ir->actual_parameters.get_head();
instr->src[0] = nir_src_for_ssa(evaluate_rvalue(value));
/** ARB_shader_group_vote intrinsics */
INTRINSIC(vote_any, 1, ARR(1), true, 1, 0, 0, xx, xx, xx, NIR_INTRINSIC_CAN_ELIMINATE)
INTRINSIC(vote_all, 1, ARR(1), true, 1, 0, 0, xx, xx, xx, NIR_INTRINSIC_CAN_ELIMINATE)
-INTRINSIC(vote_eq, 1, ARR(1), true, 1, 0, 0, xx, xx, xx, NIR_INTRINSIC_CAN_ELIMINATE)
+INTRINSIC(vote_feq, 1, ARR(0), true, 1, 0, 0, xx, xx, xx, NIR_INTRINSIC_CAN_ELIMINATE)
+INTRINSIC(vote_ieq, 1, ARR(0), true, 1, 0, 0, xx, xx, xx, NIR_INTRINSIC_CAN_ELIMINATE)
/** Ballot ALU operations from SPIR-V.
*
return nir_ssa_for_src(b, intrin->src[0], 1);
break;
- case nir_intrinsic_vote_eq:
+ case nir_intrinsic_vote_feq:
+ case nir_intrinsic_vote_ieq:
if (options->lower_vote_trivial)
return nir_imm_int(b, NIR_TRUE);
break;
if (nir_src_as_const_value(intrin->src[0]))
replacement = nir_ssa_for_src(&b, intrin->src[0], 1);
break;
- case nir_intrinsic_vote_eq:
+ case nir_intrinsic_vote_feq:
+ case nir_intrinsic_vote_ieq:
if (nir_src_as_const_value(intrin->src[0]))
replacement = nir_imm_int(&b, NIR_TRUE);
break;
bld.MOV(retype(dest, BRW_REGISTER_TYPE_D), component(res1, 0));
break;
}
- case nir_intrinsic_vote_eq: {
+ case nir_intrinsic_vote_ieq: {
fs_reg value = get_nir_src(instr->src[0]);
fs_reg uniformized = bld.emit_uniformize(value);
const fs_builder ubld = bld.exec_all().group(1, 0);