mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
ac/llvm: fix bitfield ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35423>
This commit is contained in:
parent
358addb78d
commit
4ff66b4343
2 changed files with 2 additions and 3 deletions
|
|
@ -45,6 +45,8 @@ void ac_nir_set_options(struct radeon_info *info, bool use_llvm,
|
|||
options->lower_ineg = true;
|
||||
options->lower_bitfield_insert = true;
|
||||
options->lower_bitfield_extract = true;
|
||||
options->lower_bitfield_extract16 = use_llvm;
|
||||
options->lower_bitfield_extract8 = use_llvm;
|
||||
options->lower_pack_snorm_4x8 = true;
|
||||
options->lower_pack_unorm_4x8 = true;
|
||||
options->lower_pack_half_2x16 = true;
|
||||
|
|
|
|||
|
|
@ -2197,18 +2197,15 @@ LLVMValueRef ac_build_bitfield_reverse(struct ac_llvm_context *ctx, LLVMValueRef
|
|||
switch (bitsize) {
|
||||
case 64:
|
||||
result = ac_build_intrinsic(ctx, "llvm.bitreverse.i64", ctx->i64, (LLVMValueRef[]){src0}, 1, 0);
|
||||
result = LLVMBuildTrunc(ctx->builder, result, ctx->i32, "");
|
||||
break;
|
||||
case 32:
|
||||
result = ac_build_intrinsic(ctx, "llvm.bitreverse.i32", ctx->i32, (LLVMValueRef[]){src0}, 1, 0);
|
||||
break;
|
||||
case 16:
|
||||
result = ac_build_intrinsic(ctx, "llvm.bitreverse.i16", ctx->i16, (LLVMValueRef[]){src0}, 1, 0);
|
||||
result = LLVMBuildZExt(ctx->builder, result, ctx->i32, "");
|
||||
break;
|
||||
case 8:
|
||||
result = ac_build_intrinsic(ctx, "llvm.bitreverse.i8", ctx->i8, (LLVMValueRef[]){src0}, 1, 0);
|
||||
result = LLVMBuildZExt(ctx->builder, result, ctx->i32, "");
|
||||
break;
|
||||
default:
|
||||
unreachable("invalid bitsize");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue