ac: add 16-bit support to ac_build_isign()

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset 2018-09-14 12:52:35 +02:00
parent cfd6314cfe
commit 3e7f3e2cd1
1 changed files with 16 additions and 5 deletions

View File

@ -2069,14 +2069,25 @@ LLVMValueRef ac_build_isign(struct ac_llvm_context *ctx, LLVMValueRef src0,
LLVMValueRef cmp, val, zero, one;
LLVMTypeRef type;
if (bitsize == 32) {
type = ctx->i32;
zero = ctx->i32_0;
one = ctx->i32_1;
} else {
switch (bitsize) {
case 64:
type = ctx->i64;
zero = ctx->i64_0;
one = ctx->i64_1;
break;
case 32:
type = ctx->i32;
zero = ctx->i32_0;
one = ctx->i32_1;
break;
case 16:
type = ctx->i16;
zero = ctx->i16_0;
one = ctx->i16_1;
break;
default:
unreachable(!"invalid bitsize");
break;
}
cmp = LLVMBuildICmp(ctx->builder, LLVMIntSGT, src0, zero, "");