ac/nir: remove useless bitcast in load_tess_coord()
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 9 Feb 2018 12:54:24 +0000 (13:54 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 12 Feb 2018 10:54:15 +0000 (11:54 +0100)
nir_intrinsic_load_tess_coord always returns a v3i32.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/common/ac_nir_to_llvm.c

index f99c9d3d6928b946b1622e7fa5e281c8c03065e5..dff9fd2ee346a21b9fb297d5eb3a847f1175e7ba 100644 (file)
@@ -4243,8 +4243,7 @@ load_tess_coord(struct ac_shader_abi *abi, LLVMTypeRef type,
                coord[2] = LLVMBuildFSub(ctx->builder, ctx->ac.f32_1,
                                        LLVMBuildFAdd(ctx->builder, coord[0], coord[1], ""), "");
 
-       LLVMValueRef result = ac_build_gather_values(&ctx->ac, coord, num_components);
-       return LLVMBuildBitCast(ctx->builder, result, type, "");
+       return ac_build_gather_values(&ctx->ac, coord, 3);
 }
 
 static LLVMValueRef
@@ -4487,13 +4486,9 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
        case nir_intrinsic_end_primitive:
                ctx->abi->emit_primitive(ctx->abi, nir_intrinsic_stream_id(instr));
                break;
-       case nir_intrinsic_load_tess_coord: {
-               LLVMTypeRef type = ctx->nctx ?
-                       get_def_type(ctx->nctx->nir, &instr->dest.ssa) :
-                       NULL;
-               result = ctx->abi->load_tess_coord(ctx->abi, type, instr->num_components);
+       case nir_intrinsic_load_tess_coord:
+               result = ctx->abi->load_tess_coord(ctx->abi, NULL, 0);
                break;
-       }
        case nir_intrinsic_load_tess_level_outer:
                result = ctx->abi->load_tess_level(ctx->abi, VARYING_SLOT_TESS_LEVEL_OUTER);
                break;