diff options
author | Samuel Pitoiset <[email protected]> | 2018-09-14 12:52:37 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2018-09-17 15:18:32 +0200 |
commit | 94dd08eb7c5eb5dbb38a997ffbd3105be2d20d52 (patch) | |
tree | 510aa96d5a2c556cfd56157fde287b377460c342 | |
parent | 5a6c8ca3e8efca5b9ef6cf8adbcede12c9552618 (diff) |
ac: add 16-bit support to ac_find_lsb()
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
-rw-r--r-- | src/amd/common/ac_llvm_build.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 905146c9f28..6955df48e00 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -2499,14 +2499,25 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx, const char *intrin_name; LLVMTypeRef type; LLVMValueRef zero; - if (src0_bitsize == 64) { + + switch (src0_bitsize) { + case 64: intrin_name = "llvm.cttz.i64"; type = ctx->i64; zero = ctx->i64_0; - } else { + break; + case 32: intrin_name = "llvm.cttz.i32"; type = ctx->i32; zero = ctx->i32_0; + break; + case 16: + intrin_name = "llvm.cttz.i16"; + type = ctx->i16; + zero = ctx->i16_0; + break; + default: + unreachable(!"invalid bitsize"); } LLVMValueRef params[2] = { |