ac: add 64bit bitCount support
v2: use LLVMBuildTrunc() Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
bb750d265c
commit
19f9839f0b
|
@ -1917,7 +1917,12 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
|
|||
result = ac_build_intrinsic(&ctx->ac, "llvm.bitreverse.i32", ctx->ac.i32, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
break;
|
||||
case nir_op_bit_count:
|
||||
result = ac_build_intrinsic(&ctx->ac, "llvm.ctpop.i32", ctx->ac.i32, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
if (get_elem_bits(&ctx->ac, LLVMTypeOf(src[0])) == 32)
|
||||
result = ac_build_intrinsic(&ctx->ac, "llvm.ctpop.i32", ctx->ac.i32, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
else {
|
||||
result = ac_build_intrinsic(&ctx->ac, "llvm.ctpop.i64", ctx->ac.i64, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
result = LLVMBuildTrunc(ctx->ac.builder, result, ctx->ac.i32, "");
|
||||
}
|
||||
break;
|
||||
case nir_op_vec2:
|
||||
case nir_op_vec3:
|
||||
|
|
Loading…
Reference in New Issue