ac: fix ac_find_lsb() for 16-bit integer type
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 26 Mar 2019 10:34:45 +0000 (11:34 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 1 Apr 2019 07:51:54 +0000 (09:51 +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 ae1502abef605c2280ce288337785082d652eab9..20c722e332e555d04e8f9192182bde7a06e47c1e 100644 (file)
@@ -2944,6 +2944,8 @@ 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) {
+               lsb = LLVMBuildSExt(ctx->builder, lsb, ctx->i32, "");
        }
 
        /* TODO: We need an intrinsic to skip this conditional. */