ac: add 8-bit support to ac_find_lsb()
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 1 Apr 2019 14:18:08 +0000 (16:18 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 1 Apr 2019 16:53:53 +0000 (18:53 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/common/ac_llvm_build.c

index 6d26ab31a66dd9d3ed981810a0811c7f3ac91cdf..f8d28a59cfe90c1d082831a486ff2a63f597140d 100644 (file)
@@ -2931,6 +2931,11 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
                type = ctx->i16;
                zero = ctx->i16_0;
                break;
+       case 8:
+               intrin_name = "llvm.cttz.i8";
+               type = ctx->i8;
+               zero = ctx->i8_0;
+               break;
        default:
                unreachable(!"invalid bitsize");
        }
@@ -2956,7 +2961,7 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
 
        if (src0_bitsize == 64) {
                lsb = LLVMBuildTrunc(ctx->builder, lsb, ctx->i32, "");
-       } else if (src0_bitsize == 16) {
+       } else if (src0_bitsize < 32) {
                lsb = LLVMBuildSExt(ctx->builder, lsb, ctx->i32, "");
        }