ac: move ac_to_integer() and ac_to_float() to ac_llvm_build.c
authorConnor Abbott <cwabbott0@gmail.com>
Wed, 19 Jul 2017 00:32:10 +0000 (17:32 -0700)
committerDave Airlie <airlied@redhat.com>
Fri, 8 Sep 2017 03:24:02 +0000 (04:24 +0100)
We'll need to use ac_to_integer() for other stuff in ac_llvm_build.c.

Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_llvm_build.c
src/amd/common/ac_llvm_build.h
src/amd/common/ac_nir_to_llvm.c

index f8ae9db3357591bd18c27a5dcd28cc23f19c2b24..cc82e78fba15dc56c363fb993a60c1d486161285 100644 (file)
@@ -114,6 +114,67 @@ ac_get_type_size(LLVMTypeRef type)
        }
 }
 
+static LLVMTypeRef to_integer_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
+{
+       if (t == ctx->f16 || t == ctx->i16)
+               return ctx->i16;
+       else if (t == ctx->f32 || t == ctx->i32)
+               return ctx->i32;
+       else if (t == ctx->f64 || t == ctx->i64)
+               return ctx->i64;
+       else
+               unreachable("Unhandled integer size");
+}
+
+LLVMTypeRef
+ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
+{
+       if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
+               LLVMTypeRef elem_type = LLVMGetElementType(t);
+               return LLVMVectorType(to_integer_type_scalar(ctx, elem_type),
+                                     LLVMGetVectorSize(t));
+       }
+       return to_integer_type_scalar(ctx, t);
+}
+
+LLVMValueRef
+ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v)
+{
+       LLVMTypeRef type = LLVMTypeOf(v);
+       return LLVMBuildBitCast(ctx->builder, v, ac_to_integer_type(ctx, type), "");
+}
+
+static LLVMTypeRef to_float_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
+{
+       if (t == ctx->i16 || t == ctx->f16)
+               return ctx->f16;
+       else if (t == ctx->i32 || t == ctx->f32)
+               return ctx->f32;
+       else if (t == ctx->i64 || t == ctx->f64)
+               return ctx->f64;
+       else
+               unreachable("Unhandled float size");
+}
+
+LLVMTypeRef
+ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
+{
+       if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
+               LLVMTypeRef elem_type = LLVMGetElementType(t);
+               return LLVMVectorType(to_float_type_scalar(ctx, elem_type),
+                                     LLVMGetVectorSize(t));
+       }
+       return to_float_type_scalar(ctx, t);
+}
+
+LLVMValueRef
+ac_to_float(struct ac_llvm_context *ctx, LLVMValueRef v)
+{
+       LLVMTypeRef type = LLVMTypeOf(v);
+       return LLVMBuildBitCast(ctx->builder, v, ac_to_float_type(ctx, type), "");
+}
+
+
 LLVMValueRef
 ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
                   LLVMTypeRef return_type, LLVMValueRef *params,
index 323fd3a1fba64115fc575107914c256694523bef..dae32e45752b258372d70186a42f7ae85e95ed0c 100644 (file)
@@ -68,6 +68,11 @@ ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context);
 
 unsigned ac_get_type_size(LLVMTypeRef type);
 
+LLVMTypeRef ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t);
+LLVMValueRef ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v);
+LLVMTypeRef ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t);
+LLVMValueRef ac_to_float(struct ac_llvm_context *ctx, LLVMValueRef v);
+
 LLVMValueRef
 ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
                   LLVMTypeRef return_type, LLVMValueRef *params,
index 2460f88cfff213a63648ae2a4286cf27f202ee43..8f9f771acf8be2d9bed09e0160ccd76a790e6bdc 100644 (file)
@@ -380,62 +380,6 @@ static LLVMTypeRef const_array(LLVMTypeRef elem_type, int num_elements)
                               CONST_ADDR_SPACE);
 }
 
-static LLVMTypeRef to_integer_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
-{
-       if (t == ctx->f16 || t == ctx->i16)
-               return ctx->i16;
-       else if (t == ctx->f32 || t == ctx->i32)
-               return ctx->i32;
-       else if (t == ctx->f64 || t == ctx->i64)
-               return ctx->i64;
-       else
-               unreachable("Unhandled integer size");
-}
-
-static LLVMTypeRef to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
-{
-       if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
-               LLVMTypeRef elem_type = LLVMGetElementType(t);
-               return LLVMVectorType(to_integer_type_scalar(ctx, elem_type),
-                                     LLVMGetVectorSize(t));
-       }
-       return to_integer_type_scalar(ctx, t);
-}
-
-static LLVMValueRef to_integer(struct ac_llvm_context *ctx, LLVMValueRef v)
-{
-       LLVMTypeRef type = LLVMTypeOf(v);
-       return LLVMBuildBitCast(ctx->builder, v, to_integer_type(ctx, type), "");
-}
-
-static LLVMTypeRef to_float_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
-{
-       if (t == ctx->i16 || t == ctx->f16)
-               return ctx->f16;
-       else if (t == ctx->i32 || t == ctx->f32)
-               return ctx->f32;
-       else if (t == ctx->i64 || t == ctx->f64)
-               return ctx->f64;
-       else
-               unreachable("Unhandled float size");
-}
-
-static LLVMTypeRef to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
-{
-       if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
-               LLVMTypeRef elem_type = LLVMGetElementType(t);
-               return LLVMVectorType(to_float_type_scalar(ctx, elem_type),
-                                     LLVMGetVectorSize(t));
-       }
-       return to_float_type_scalar(ctx, t);
-}
-
-static LLVMValueRef to_float(struct ac_llvm_context *ctx, LLVMValueRef v)
-{
-       LLVMTypeRef type = LLVMTypeOf(v);
-       return LLVMBuildBitCast(ctx->builder, v, to_float_type(ctx, type), "");
-}
-
 static int get_elem_bits(struct ac_llvm_context *ctx, LLVMTypeRef type)
 {
        if (LLVMGetTypeKind(type) == LLVMVectorTypeKind)
@@ -1100,8 +1044,8 @@ static LLVMValueRef emit_float_cmp(struct ac_llvm_context *ctx,
                                    LLVMValueRef src1)
 {
        LLVMValueRef result;
-       src0 = to_float(ctx, src0);
-       src1 = to_float(ctx, src1);
+       src0 = ac_to_float(ctx, src0);
+       src1 = ac_to_float(ctx, src1);
        result = LLVMBuildFCmp(ctx->builder, pred, src0, src1, "");
        return LLVMBuildSelect(ctx->builder, result,
                               LLVMConstInt(ctx->i32, 0xFFFFFFFF, false),
@@ -1115,7 +1059,7 @@ static LLVMValueRef emit_intrin_1f_param(struct ac_llvm_context *ctx,
 {
        char name[64];
        LLVMValueRef params[] = {
-               to_float(ctx, src0),
+               ac_to_float(ctx, src0),
        };
 
        MAYBE_UNUSED const int length = snprintf(name, sizeof(name), "%s.f%d", intrin,
@@ -1131,8 +1075,8 @@ static LLVMValueRef emit_intrin_2f_param(struct ac_llvm_context *ctx,
 {
        char name[64];
        LLVMValueRef params[] = {
-               to_float(ctx, src0),
-               to_float(ctx, src1),
+               ac_to_float(ctx, src0),
+               ac_to_float(ctx, src1),
        };
 
        MAYBE_UNUSED const int length = snprintf(name, sizeof(name), "%s.f%d", intrin,
@@ -1148,9 +1092,9 @@ static LLVMValueRef emit_intrin_3f_param(struct ac_llvm_context *ctx,
 {
        char name[64];
        LLVMValueRef params[] = {
-               to_float(ctx, src0),
-               to_float(ctx, src1),
-               to_float(ctx, src2),
+               ac_to_float(ctx, src0),
+               ac_to_float(ctx, src1),
+               ac_to_float(ctx, src2),
        };
 
        MAYBE_UNUSED const int length = snprintf(name, sizeof(name), "%s.f%d", intrin,
@@ -1252,7 +1196,7 @@ static LLVMValueRef emit_ffract(struct ac_llvm_context *ctx,
                                LLVMValueRef src0)
 {
        const char *intr = "llvm.floor.f32";
-       LLVMValueRef fsrc0 = to_float(ctx, src0);
+       LLVMValueRef fsrc0 = ac_to_float(ctx, src0);
        LLVMValueRef params[] = {
                fsrc0,
        };
@@ -1290,7 +1234,7 @@ static LLVMValueRef emit_b2f(struct ac_llvm_context *ctx,
 static LLVMValueRef emit_f2b(struct ac_llvm_context *ctx,
                             LLVMValueRef src0)
 {
-       src0 = to_float(ctx, src0);
+       src0 = ac_to_float(ctx, src0);
        return LLVMBuildSExt(ctx->builder,
                             LLVMBuildFCmp(ctx->builder, LLVMRealUNE, src0, ctx->f32_0, ""),
                             ctx->i32, "");
@@ -1316,7 +1260,7 @@ static LLVMValueRef emit_f2f16(struct nir_to_llvm_context *ctx,
        LLVMValueRef result;
        LLVMValueRef cond = NULL;
 
-       src0 = to_float(&ctx->ac, src0);
+       src0 = ac_to_float(&ctx->ac, src0);
        result = LLVMBuildFPTrunc(ctx->builder, src0, ctx->f16, "");
 
        if (ctx->options->chip_class >= VI) {
@@ -1426,7 +1370,7 @@ static LLVMValueRef emit_pack_half_2x16(struct ac_llvm_context *ctx,
        int i;
        LLVMValueRef comp[2];
 
-       src0 = to_float(ctx, src0);
+       src0 = ac_to_float(ctx, src0);
        comp[0] = LLVMBuildExtractElement(ctx->builder, src0, ctx->i32_0, "");
        comp[1] = LLVMBuildExtractElement(ctx->builder, src0, ctx->i32_1, "");
        for (i = 0; i < 2; i++) {
@@ -1547,7 +1491,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = src[0];
                break;
        case nir_op_fneg:
-               src[0] = to_float(&ctx->ac, src[0]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
                result = LLVMBuildFNeg(ctx->ac.builder, src[0], "");
                break;
        case nir_op_ineg:
@@ -1560,13 +1504,13 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = LLVMBuildAdd(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_fadd:
-               src[0] = to_float(&ctx->ac, src[0]);
-               src[1] = to_float(&ctx->ac, src[1]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
+               src[1] = ac_to_float(&ctx->ac, src[1]);
                result = LLVMBuildFAdd(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_fsub:
-               src[0] = to_float(&ctx->ac, src[0]);
-               src[1] = to_float(&ctx->ac, src[1]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
+               src[1] = ac_to_float(&ctx->ac, src[1]);
                result = LLVMBuildFSub(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_isub:
@@ -1582,17 +1526,17 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = LLVMBuildURem(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_fmod:
-               src[0] = to_float(&ctx->ac, src[0]);
-               src[1] = to_float(&ctx->ac, src[1]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
+               src[1] = ac_to_float(&ctx->ac, src[1]);
                result = ac_build_fdiv(&ctx->ac, src[0], src[1]);
                result = emit_intrin_1f_param(&ctx->ac, "llvm.floor",
-                                             to_float_type(&ctx->ac, def_type), result);
+                                             ac_to_float_type(&ctx->ac, def_type), result);
                result = LLVMBuildFMul(ctx->ac.builder, src[1] , result, "");
                result = LLVMBuildFSub(ctx->ac.builder, src[0], result, "");
                break;
        case nir_op_frem:
-               src[0] = to_float(&ctx->ac, src[0]);
-               src[1] = to_float(&ctx->ac, src[1]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
+               src[1] = ac_to_float(&ctx->ac, src[1]);
                result = LLVMBuildFRem(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_irem:
@@ -1605,17 +1549,17 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = LLVMBuildUDiv(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_fmul:
-               src[0] = to_float(&ctx->ac, src[0]);
-               src[1] = to_float(&ctx->ac, src[1]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
+               src[1] = ac_to_float(&ctx->ac, src[1]);
                result = LLVMBuildFMul(ctx->ac.builder, src[0], src[1], "");
                break;
        case nir_op_fdiv:
-               src[0] = to_float(&ctx->ac, src[0]);
-               src[1] = to_float(&ctx->ac, src[1]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
+               src[1] = ac_to_float(&ctx->ac, src[1]);
                result = ac_build_fdiv(&ctx->ac, src[0], src[1]);
                break;
        case nir_op_frcp:
-               src[0] = to_float(&ctx->ac, src[0]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
                result = ac_build_fdiv(&ctx->ac, ctx->ac.f32_1, src[0]);
                break;
        case nir_op_iand:
@@ -1677,7 +1621,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                break;
        case nir_op_fabs:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.fabs",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_iabs:
                result = emit_iabs(&ctx->ac, src[0]);
@@ -1698,76 +1642,76 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = emit_isign(&ctx->ac, src[0]);
                break;
        case nir_op_fsign:
-               src[0] = to_float(&ctx->ac, src[0]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
                result = emit_fsign(&ctx->ac, src[0]);
                break;
        case nir_op_ffloor:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.floor",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_ftrunc:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.trunc",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_fceil:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.ceil",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_fround_even:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.rint",
-                                             to_float_type(&ctx->ac, def_type),src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type),src[0]);
                break;
        case nir_op_ffract:
                result = emit_ffract(&ctx->ac, src[0]);
                break;
        case nir_op_fsin:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.sin",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_fcos:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.cos",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_fsqrt:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.sqrt",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_fexp2:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.exp2",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_flog2:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.log2",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                break;
        case nir_op_frsq:
                result = emit_intrin_1f_param(&ctx->ac, "llvm.sqrt",
-                                             to_float_type(&ctx->ac, def_type), src[0]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0]);
                result = ac_build_fdiv(&ctx->ac, ctx->ac.f32_1, result);
                break;
        case nir_op_fpow:
                result = emit_intrin_2f_param(&ctx->ac, "llvm.pow",
-                                             to_float_type(&ctx->ac, def_type), src[0], src[1]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0], src[1]);
                break;
        case nir_op_fmax:
                result = emit_intrin_2f_param(&ctx->ac, "llvm.maxnum",
-                                             to_float_type(&ctx->ac, def_type), src[0], src[1]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0], src[1]);
                if (instr->dest.dest.ssa.bit_size == 32)
                        result = emit_intrin_1f_param(&ctx->ac, "llvm.canonicalize",
-                                                     to_float_type(&ctx->ac, def_type),
+                                                     ac_to_float_type(&ctx->ac, def_type),
                                                      result);
                break;
        case nir_op_fmin:
                result = emit_intrin_2f_param(&ctx->ac, "llvm.minnum",
-                                             to_float_type(&ctx->ac, def_type), src[0], src[1]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0], src[1]);
                if (instr->dest.dest.ssa.bit_size == 32)
                        result = emit_intrin_1f_param(&ctx->ac, "llvm.canonicalize",
-                                                     to_float_type(&ctx->ac, def_type),
+                                                     ac_to_float_type(&ctx->ac, def_type),
                                                      result);
                break;
        case nir_op_ffma:
                result = emit_intrin_3f_param(&ctx->ac, "llvm.fma",
-                                             to_float_type(&ctx->ac, def_type), src[0], src[1], src[2]);
+                                             ac_to_float_type(&ctx->ac, def_type), src[0], src[1], src[2]);
                break;
        case nir_op_ibitfield_extract:
                result = emit_bitfield_extract(&ctx->ac, true, src);
@@ -1788,38 +1732,38 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
        case nir_op_vec3:
        case nir_op_vec4:
                for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++)
-                       src[i] = to_integer(&ctx->ac, src[i]);
+                       src[i] = ac_to_integer(&ctx->ac, src[i]);
                result = ac_build_gather_values(&ctx->ac, src, num_components);
                break;
        case nir_op_f2i32:
        case nir_op_f2i64:
-               src[0] = to_float(&ctx->ac, src[0]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
                result = LLVMBuildFPToSI(ctx->ac.builder, src[0], def_type, "");
                break;
        case nir_op_f2u32:
        case nir_op_f2u64:
-               src[0] = to_float(&ctx->ac, src[0]);
+               src[0] = ac_to_float(&ctx->ac, src[0]);
                result = LLVMBuildFPToUI(ctx->ac.builder, src[0], def_type, "");
                break;
        case nir_op_i2f32:
        case nir_op_i2f64:
-               src[0] = to_integer(&ctx->ac, src[0]);
-               result = LLVMBuildSIToFP(ctx->ac.builder, src[0], to_float_type(&ctx->ac, def_type), "");
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
+               result = LLVMBuildSIToFP(ctx->ac.builder, src[0], ac_to_float_type(&ctx->ac, def_type), "");
                break;
        case nir_op_u2f32:
        case nir_op_u2f64:
-               src[0] = to_integer(&ctx->ac, src[0]);
-               result = LLVMBuildUIToFP(ctx->ac.builder, src[0], to_float_type(&ctx->ac, def_type), "");
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
+               result = LLVMBuildUIToFP(ctx->ac.builder, src[0], ac_to_float_type(&ctx->ac, def_type), "");
                break;
        case nir_op_f2f64:
-               result = LLVMBuildFPExt(ctx->ac.builder, src[0], to_float_type(&ctx->ac, def_type), "");
+               result = LLVMBuildFPExt(ctx->ac.builder, src[0], ac_to_float_type(&ctx->ac, def_type), "");
                break;
        case nir_op_f2f32:
-               result = LLVMBuildFPTrunc(ctx->ac.builder, src[0], to_float_type(&ctx->ac, def_type), "");
+               result = LLVMBuildFPTrunc(ctx->ac.builder, src[0], ac_to_float_type(&ctx->ac, def_type), "");
                break;
        case nir_op_u2u32:
        case nir_op_u2u64:
-               src[0] = to_integer(&ctx->ac, src[0]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
                if (get_elem_bits(&ctx->ac, LLVMTypeOf(src[0])) < get_elem_bits(&ctx->ac, def_type))
                        result = LLVMBuildZExt(ctx->ac.builder, src[0], def_type, "");
                else
@@ -1827,7 +1771,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                break;
        case nir_op_i2i32:
        case nir_op_i2i64:
-               src[0] = to_integer(&ctx->ac, src[0]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
                if (get_elem_bits(&ctx->ac, LLVMTypeOf(src[0])) < get_elem_bits(&ctx->ac, def_type))
                        result = LLVMBuildSExt(ctx->ac.builder, src[0], def_type, "");
                else
@@ -1837,25 +1781,25 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = emit_bcsel(&ctx->ac, src[0], src[1], src[2]);
                break;
        case nir_op_find_lsb:
-               src[0] = to_integer(&ctx->ac, src[0]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
                result = emit_find_lsb(&ctx->ac, src[0]);
                break;
        case nir_op_ufind_msb:
-               src[0] = to_integer(&ctx->ac, src[0]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
                result = emit_ufind_msb(&ctx->ac, src[0]);
                break;
        case nir_op_ifind_msb:
-               src[0] = to_integer(&ctx->ac, src[0]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
                result = emit_ifind_msb(&ctx->ac, src[0]);
                break;
        case nir_op_uadd_carry:
-               src[0] = to_integer(&ctx->ac, src[0]);
-               src[1] = to_integer(&ctx->ac, src[1]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
+               src[1] = ac_to_integer(&ctx->ac, src[1]);
                result = emit_uint_carry(&ctx->ac, "llvm.uadd.with.overflow.i32", src[0], src[1]);
                break;
        case nir_op_usub_borrow:
-               src[0] = to_integer(&ctx->ac, src[0]);
-               src[1] = to_integer(&ctx->ac, src[1]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
+               src[1] = ac_to_integer(&ctx->ac, src[1]);
                result = emit_uint_carry(&ctx->ac, "llvm.usub.with.overflow.i32", src[0], src[1]);
                break;
        case nir_op_b2f:
@@ -1868,20 +1812,20 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
                result = emit_b2i(&ctx->ac, src[0]);
                break;
        case nir_op_i2b:
-               src[0] = to_integer(&ctx->ac, src[0]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
                result = emit_i2b(&ctx->ac, src[0]);
                break;
        case nir_op_fquantize2f16:
                result = emit_f2f16(ctx->nctx, src[0]);
                break;
        case nir_op_umul_high:
-               src[0] = to_integer(&ctx->ac, src[0]);
-               src[1] = to_integer(&ctx->ac, src[1]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
+               src[1] = ac_to_integer(&ctx->ac, src[1]);
                result = emit_umul_high(&ctx->ac, src[0], src[1]);
                break;
        case nir_op_imul_high:
-               src[0] = to_integer(&ctx->ac, src[0]);
-               src[1] = to_integer(&ctx->ac, src[1]);
+               src[0] = ac_to_integer(&ctx->ac, src[0]);
+               src[1] = ac_to_integer(&ctx->ac, src[1]);
                result = emit_imul_high(&ctx->ac, src[0], src[1]);
                break;
        case nir_op_pack_half_2x16:
@@ -1938,7 +1882,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
 
        if (result) {
                assert(instr->dest.dest.is_ssa);
-               result = to_integer(&ctx->ac, result);
+               result = ac_to_integer(&ctx->ac, result);
                _mesa_hash_table_insert(ctx->defs, &instr->dest.dest.ssa,
                                        result);
        }
@@ -2283,7 +2227,7 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
        if (components_32bit > 1)
                data_type = LLVMVectorType(ctx->ac.f32, components_32bit);
 
-       base_data = to_float(&ctx->ac, src_data);
+       base_data = ac_to_float(&ctx->ac, src_data);
        base_data = trim_vector(&ctx->ac, base_data, instr->num_components);
        base_data = LLVMBuildBitCast(ctx->ac.builder, base_data,
                                     data_type, "");
@@ -3080,7 +3024,7 @@ visit_store_var(struct ac_nir_context *ctx,
 {
        LLVMValueRef temp_ptr, value;
        int idx = instr->variables[0]->var->data.driver_location;
-       LLVMValueRef src = to_float(&ctx->ac, get_src(ctx, instr->src[0]));
+       LLVMValueRef src = ac_to_float(&ctx->ac, get_src(ctx, instr->src[0]));
        int writemask = instr->const_index[0];
        LLVMValueRef indir_index;
        unsigned const_index;
@@ -3265,7 +3209,7 @@ static LLVMValueRef adjust_sample_index_using_fmask(struct ac_llvm_context *ctx,
 
        res = ac_build_image_opcode(ctx, &args);
 
-       res = to_integer(ctx, res);
+       res = ac_to_integer(ctx, res);
        LLVMValueRef four = LLVMConstInt(ctx->i32, 4, false);
        LLVMValueRef F = LLVMConstInt(ctx->i32, 0xf, false);
 
@@ -3344,7 +3288,7 @@ static LLVMValueRef get_image_coords(struct ac_nir_context *ctx,
                                        LLVMBuildAdd(ctx->ac.builder, fmask_load_address[chan],
                                                LLVMBuildFPToUI(ctx->ac.builder, ctx->abi->frag_pos[chan],
                                                                ctx->ac.i32, ""), "");
-                       fmask_load_address[2] = to_integer(&ctx->ac, ctx->abi->inputs[radeon_llvm_reg_index_soa(VARYING_SLOT_LAYER, 0)]);
+                       fmask_load_address[2] = ac_to_integer(&ctx->ac, ctx->abi->inputs[radeon_llvm_reg_index_soa(VARYING_SLOT_LAYER, 0)]);
                }
                sample_index = adjust_sample_index_using_fmask(&ctx->ac,
                                                               fmask_load_address[0],
@@ -3370,7 +3314,7 @@ static LLVMValueRef get_image_coords(struct ac_nir_context *ctx,
                        for (chan = 0; chan < 2; ++chan)
                                coords[chan] = LLVMBuildAdd(ctx->ac.builder, coords[chan], LLVMBuildFPToUI(ctx->ac.builder, ctx->abi->frag_pos[chan],
                                                ctx->ac.i32, ""), "");
-                       coords[2] = to_integer(&ctx->ac, ctx->abi->inputs[radeon_llvm_reg_index_soa(VARYING_SLOT_LAYER, 0)]);
+                       coords[2] = ac_to_integer(&ctx->ac, ctx->abi->inputs[radeon_llvm_reg_index_soa(VARYING_SLOT_LAYER, 0)]);
                        count++;
                }
                if (is_ms) {
@@ -3413,7 +3357,7 @@ static LLVMValueRef visit_image_load(struct ac_nir_context *ctx,
                                         params, 5, 0);
 
                res = trim_vector(&ctx->ac, res, instr->dest.ssa.num_components);
-               res = to_integer(&ctx->ac, res);
+               res = ac_to_integer(&ctx->ac, res);
        } else {
                bool is_da = glsl_sampler_type_is_array(type) ||
                             glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_CUBE ||
@@ -3448,7 +3392,7 @@ static LLVMValueRef visit_image_load(struct ac_nir_context *ctx,
                res = ac_build_intrinsic(&ctx->ac, intrinsic_name, ctx->ac.v4f32,
                                         params, 7, AC_FUNC_ATTR_READONLY);
        }
-       return to_integer(&ctx->ac, res);
+       return ac_to_integer(&ctx->ac, res);
 }
 
 static void visit_image_store(struct ac_nir_context *ctx,
@@ -3466,7 +3410,7 @@ static void visit_image_store(struct ac_nir_context *ctx,
                glc = i1true;
 
        if (glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_BUF) {
-               params[0] = to_float(&ctx->ac, get_src(ctx, instr->src[2])); /* data */
+               params[0] = ac_to_float(&ctx->ac, get_src(ctx, instr->src[2])); /* data */
                params[1] = get_sampler_desc(ctx, instr->variables[0], AC_DESC_BUFFER, true, true);
                params[2] = LLVMBuildExtractElement(ctx->ac.builder, get_src(ctx, instr->src[0]),
                                                    ctx->ac.i32_0, ""); /* vindex */
@@ -3481,7 +3425,7 @@ static void visit_image_store(struct ac_nir_context *ctx,
                LLVMValueRef da = is_da ? i1true : i1false;
                LLVMValueRef slc = i1false;
 
-               params[0] = to_float(&ctx->ac, get_src(ctx, instr->src[2]));
+               params[0] = ac_to_float(&ctx->ac, get_src(ctx, instr->src[2]));
                params[1] = get_image_coords(ctx, instr); /* coords */
                params[2] = get_sampler_desc(ctx, instr->variables[0], AC_DESC_IMAGE, true, true);
                params[3] = LLVMConstInt(ctx->ac.i32, 15, false); /* dmask */
@@ -3731,7 +3675,7 @@ static LLVMValueRef visit_var_atomic(struct nir_to_llvm_context *ctx,
                        return NULL;
                }
 
-               result = LLVMBuildAtomicRMW(ctx->builder, op, ptr, to_integer(&ctx->ac, src),
+               result = LLVMBuildAtomicRMW(ctx->builder, op, ptr, ac_to_integer(&ctx->ac, src),
                                            LLVMAtomicOrderingSequentiallyConsistent,
                                            false);
        }
@@ -3819,8 +3763,8 @@ static LLVMValueRef visit_interp(struct nir_to_llvm_context *ctx,
        }
 
        if (instr->intrinsic == nir_intrinsic_interp_var_at_offset) {
-               src_c0 = to_float(&ctx->ac, LLVMBuildExtractElement(ctx->builder, src0, ctx->i32zero, ""));
-               src_c1 = to_float(&ctx->ac, LLVMBuildExtractElement(ctx->builder, src0, ctx->i32one, ""));
+               src_c0 = ac_to_float(&ctx->ac, LLVMBuildExtractElement(ctx->builder, src0, ctx->i32zero, ""));
+               src_c1 = ac_to_float(&ctx->ac, LLVMBuildExtractElement(ctx->builder, src0, ctx->i32one, ""));
        } else if (instr->intrinsic == nir_intrinsic_interp_var_at_sample) {
                LLVMValueRef sample_position;
                LLVMValueRef halfval = LLVMConstReal(ctx->f32, 0.5f);
@@ -4405,9 +4349,9 @@ static void tex_fetch_ptrs(struct ac_nir_context *ctx,
 static LLVMValueRef apply_round_slice(struct ac_llvm_context *ctx,
                                      LLVMValueRef coord)
 {
-       coord = to_float(ctx, coord);
+       coord = ac_to_float(ctx, coord);
        coord = ac_build_intrinsic(ctx, "llvm.rint.f32", ctx->f32, &coord, 1, 0);
-       coord = to_integer(ctx, coord);
+       coord = ac_to_integer(ctx, coord);
        return coord;
 }
 
@@ -4533,8 +4477,8 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
 
        /* Pack depth comparison value */
        if (instr->is_shadow && comparator) {
-               LLVMValueRef z = to_float(&ctx->ac,
-                                         llvm_extract_elem(&ctx->ac, comparator, 0));
+               LLVMValueRef z = ac_to_float(&ctx->ac,
+                                            llvm_extract_elem(&ctx->ac, comparator, 0));
 
                /* TC-compatible HTILE promotes Z16 and Z24 to Z32_FLOAT,
                 * so the depth comparison value isn't clamped for Z16 and
@@ -4566,8 +4510,8 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
                }
 
                for (unsigned i = 0; i < num_deriv_comp; i++) {
-                       derivs[i] = to_float(&ctx->ac, llvm_extract_elem(&ctx->ac, ddx, i));
-                       derivs[num_deriv_comp + i] = to_float(&ctx->ac, llvm_extract_elem(&ctx->ac, ddy, i));
+                       derivs[i] = ac_to_float(&ctx->ac, llvm_extract_elem(&ctx->ac, ddx, i));
+                       derivs[num_deriv_comp + i] = ac_to_float(&ctx->ac, llvm_extract_elem(&ctx->ac, ddy, i));
                }
        }
 
@@ -4575,7 +4519,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
                if (instr->is_array && instr->op != nir_texop_lod)
                        coords[3] = apply_round_slice(&ctx->ac, coords[3]);
                for (chan = 0; chan < instr->coord_components; chan++)
-                       coords[chan] = to_float(&ctx->ac, coords[chan]);
+                       coords[chan] = ac_to_float(&ctx->ac, coords[chan]);
                if (instr->coord_components == 3)
                        coords[3] = LLVMGetUndef(ctx->ac.f32);
                ac_prepare_cube_coords(&ctx->ac,
@@ -4710,7 +4654,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
 write_result:
        if (result) {
                assert(instr->dest.is_ssa);
-               result = to_integer(&ctx->ac, result);
+               result = ac_to_integer(&ctx->ac, result);
                _mesa_hash_table_insert(ctx->defs, &instr->dest.ssa, result);
        }
 }
@@ -4939,7 +4883,7 @@ handle_vs_input_decl(struct nir_to_llvm_context *ctx,
                for (unsigned chan = 0; chan < 4; chan++) {
                        LLVMValueRef llvm_chan = LLVMConstInt(ctx->i32, chan, false);
                        ctx->inputs[radeon_llvm_reg_index_soa(idx, chan)] =
-                               to_integer(&ctx->ac, LLVMBuildExtractElement(ctx->builder,
+                               ac_to_integer(&ctx->ac, LLVMBuildExtractElement(ctx->builder,
                                                        input, llvm_chan, ""));
                }
        }
@@ -5325,7 +5269,7 @@ setup_shared(struct ac_nir_context *ctx,
 static LLVMValueRef
 emit_float_saturate(struct ac_llvm_context *ctx, LLVMValueRef v, float lo, float hi)
 {
-       v = to_float(ctx, v);
+       v = ac_to_float(ctx, v);
        v = emit_intrin_2f_param(ctx, "llvm.maxnum", ctx->f32, v, LLVMConstReal(ctx->f32, lo));
        return emit_intrin_2f_param(ctx, "llvm.minnum", ctx->f32, v, LLVMConstReal(ctx->f32, hi));
 }
@@ -5459,7 +5403,7 @@ si_llvm_init_export_args(struct nir_to_llvm_context *ctx,
                        LLVMValueRef max_alpha = !is_int10 ? max_rgb : LLVMConstInt(ctx->i32, 3, 0);
 
                        for (unsigned chan = 0; chan < 4; chan++) {
-                               val[chan] = to_integer(&ctx->ac, values[chan]);
+                               val[chan] = ac_to_integer(&ctx->ac, values[chan]);
                                val[chan] = emit_minmax_int(&ctx->ac, LLVMIntULT, val[chan], chan == 3 ? max_alpha : max_rgb);
                        }
 
@@ -5479,7 +5423,7 @@ si_llvm_init_export_args(struct nir_to_llvm_context *ctx,
 
                        /* Clamp. */
                        for (unsigned chan = 0; chan < 4; chan++) {
-                               val[chan] = to_integer(&ctx->ac, values[chan]);
+                               val[chan] = ac_to_integer(&ctx->ac, values[chan]);
                                val[chan] = emit_minmax_int(&ctx->ac, LLVMIntSLT, val[chan], chan == 3 ? max_alpha : max_rgb);
                                val[chan] = emit_minmax_int(&ctx->ac, LLVMIntSGT, val[chan], chan == 3 ? min_alpha : min_rgb);
                        }
@@ -5499,7 +5443,7 @@ si_llvm_init_export_args(struct nir_to_llvm_context *ctx,
                memcpy(&args->out[0], values, sizeof(values[0]) * 4);
 
        for (unsigned i = 0; i < 4; ++i)
-               args->out[i] = to_float(&ctx->ac, args->out[i]);
+               args->out[i] = ac_to_float(&ctx->ac, args->out[i]);
 }
 
 static void
@@ -5522,7 +5466,7 @@ handle_vs_outputs_post(struct nir_to_llvm_context *ctx,
                                            si_build_alloca_undef(&ctx->ac, ctx->ac.f32, "");
                }
 
-               LLVMBuildStore(ctx->builder, to_float(&ctx->ac, ctx->view_index),  *tmp_out);
+               LLVMBuildStore(ctx->builder, ac_to_float(&ctx->ac, ctx->view_index),  *tmp_out);
                ctx->output_mask |= 1ull << VARYING_SLOT_LAYER;
        }
 
@@ -5538,7 +5482,7 @@ handle_vs_outputs_post(struct nir_to_llvm_context *ctx,
 
                i = VARYING_SLOT_CLIP_DIST0;
                for (j = 0; j < ctx->num_output_clips + ctx->num_output_culls; j++)
-                       slots[j] = to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
+                       slots[j] = ac_to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
                                                               ctx->nir->outputs[radeon_llvm_reg_index_soa(i, j)], ""));
 
                for (i = ctx->num_output_clips + ctx->num_output_culls; i < 8; i++)
@@ -5608,14 +5552,14 @@ handle_vs_outputs_post(struct nir_to_llvm_context *ctx,
                                 * index in out.z[19:16].
                                 */
                                LLVMValueRef v = viewport_index_value;
-                               v = to_integer(&ctx->ac, v);
+                               v = ac_to_integer(&ctx->ac, v);
                                v = LLVMBuildShl(ctx->builder, v,
                                                 LLVMConstInt(ctx->i32, 16, false),
                                                 "");
                                v = LLVMBuildOr(ctx->builder, v,
-                                               to_integer(&ctx->ac, pos_args[1].out[2]), "");
+                                               ac_to_integer(&ctx->ac, pos_args[1].out[2]), "");
 
-                               pos_args[1].out[2] = to_float(&ctx->ac, v);
+                               pos_args[1].out[2] = ac_to_float(&ctx->ac, v);
                                pos_args[1].enabled_channels |= 1 << 2;
                        } else {
                                pos_args[1].out[3] = viewport_index_value;
@@ -5646,8 +5590,8 @@ handle_vs_outputs_post(struct nir_to_llvm_context *ctx,
                        continue;
 
                for (unsigned j = 0; j < 4; j++)
-                       values[j] = to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
-                                             ctx->nir->outputs[radeon_llvm_reg_index_soa(i, j)], ""));
+                       values[j] = ac_to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
+                                               ctx->nir->outputs[radeon_llvm_reg_index_soa(i, j)], ""));
 
                if (i == VARYING_SLOT_LAYER) {
                        target = V_008DFC_SQ_EXP_PARAM + param_count;
@@ -6075,20 +6019,20 @@ handle_fs_outputs_post(struct nir_to_llvm_context *ctx)
 
                if (i == FRAG_RESULT_DEPTH) {
                        ctx->shader_info->fs.writes_z = true;
-                       depth = to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
+                       depth = ac_to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
                                                            ctx->nir->outputs[radeon_llvm_reg_index_soa(i, 0)], ""));
                } else if (i == FRAG_RESULT_STENCIL) {
                        ctx->shader_info->fs.writes_stencil = true;
-                       stencil = to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
+                       stencil = ac_to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
                                                              ctx->nir->outputs[radeon_llvm_reg_index_soa(i, 0)], ""));
                } else if (i == FRAG_RESULT_SAMPLE_MASK) {
                        ctx->shader_info->fs.writes_sample_mask = true;
-                       samplemask = to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
+                       samplemask = ac_to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
                                                                  ctx->nir->outputs[radeon_llvm_reg_index_soa(i, 0)], ""));
                } else {
                        bool last = false;
                        for (unsigned j = 0; j < 4; j++)
-                               values[j] = to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
+                               values[j] = ac_to_float(&ctx->ac, LLVMBuildLoad(ctx->builder,
                                                                        ctx->nir->outputs[radeon_llvm_reg_index_soa(i, j)], ""));
 
                        if (!ctx->shader_info->fs.writes_z && !ctx->shader_info->fs.writes_stencil && !ctx->shader_info->fs.writes_sample_mask)
@@ -6631,7 +6575,7 @@ ac_gs_copy_shader_emit(struct nir_to_llvm_context *ctx)
                                                   AC_FUNC_ATTR_LEGACY);
 
                        LLVMBuildStore(ctx->builder,
-                                      to_float(&ctx->ac, value), ctx->nir->outputs[radeon_llvm_reg_index_soa(i, j)]);
+                                      ac_to_float(&ctx->ac, value), ctx->nir->outputs[radeon_llvm_reg_index_soa(i, j)]);
                }
                idx += slot_inc;
        }