ac: add 8-bit support to ac_build_umsb()
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 1 Apr 2019 14:18:09 +0000 (16:18 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 1 Apr 2019 16:53:55 +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 f8d28a59cfe90c1d082831a486ff2a63f597140d..8d749cc8eb09b42b68ae4d555f5db1b48ec26769 100644 (file)
@@ -1953,6 +1953,12 @@ ac_build_umsb(struct ac_llvm_context *ctx,
                highest_bit = LLVMConstInt(ctx->i16, 15, false);
                zero = ctx->i16_0;
                break;
+       case 8:
+               intrin_name = "llvm.ctlz.i8";
+               type = ctx->i8;
+               highest_bit = LLVMConstInt(ctx->i8, 7, false);
+               zero = ctx->i8_0;
+               break;
        default:
                unreachable(!"invalid bitsize");
                break;
@@ -1973,7 +1979,7 @@ ac_build_umsb(struct ac_llvm_context *ctx,
 
        if (bitsize == 64) {
                msb = LLVMBuildTrunc(ctx->builder, msb, ctx->i32, "");
-       } else if (bitsize == 16) {
+       } else if (bitsize < 32) {
                msb = LLVMBuildSExt(ctx->builder, msb, ctx->i32, "");
        }