r-b for both.
On Mon, Apr 8, 2019 at 9:22 AM Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > > From: Rhys Perry <pendingchao...@gmail.com> > > Signed-off-by: Rhys Perry <pendingchao...@gmail.com> > --- > src/amd/common/ac_llvm_build.c | 22 +++++++++++++++++----- > 1 file changed, 17 insertions(+), 5 deletions(-) > > diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c > index 54e90288bda..3e3ca5c7fdb 100644 > --- a/src/amd/common/ac_llvm_build.c > +++ b/src/amd/common/ac_llvm_build.c > @@ -1862,9 +1862,16 @@ ac_build_ddxy(struct ac_llvm_context *ctx, > LLVMValueRef val) > { > unsigned tl_lanes[4], trbl_lanes[4]; > + char name[32], type[8]; > LLVMValueRef tl, trbl; > + LLVMTypeRef result_type; > LLVMValueRef result; > > + result_type = ac_to_float_type(ctx, LLVMTypeOf(val)); > + > + if (result_type == ctx->f16) > + val = LLVMBuildZExt(ctx->builder, val, ctx->i32, ""); > + > for (unsigned i = 0; i < 4; ++i) { > tl_lanes[i] = i & mask; > trbl_lanes[i] = (i & mask) + idx; > @@ -1877,14 +1884,19 @@ ac_build_ddxy(struct ac_llvm_context *ctx, > trbl_lanes[0], trbl_lanes[1], > trbl_lanes[2], trbl_lanes[3]); > > - tl = LLVMBuildBitCast(ctx->builder, tl, ctx->f32, ""); > - trbl = LLVMBuildBitCast(ctx->builder, trbl, ctx->f32, ""); > + if (result_type == ctx->f16) { > + tl = LLVMBuildTrunc(ctx->builder, tl, ctx->i16, ""); > + trbl = LLVMBuildTrunc(ctx->builder, trbl, ctx->i16, ""); > + } > + > + tl = LLVMBuildBitCast(ctx->builder, tl, result_type, ""); > + trbl = LLVMBuildBitCast(ctx->builder, trbl, result_type, ""); > result = LLVMBuildFSub(ctx->builder, trbl, tl, ""); > > - result = ac_build_intrinsic(ctx, "llvm.amdgcn.wqm.f32", ctx->f32, > - &result, 1, 0); > + ac_build_type_name_for_intr(result_type, type, sizeof(type)); > + snprintf(name, sizeof(name), "llvm.amdgcn.wqm.%s", type); > > - return result; > + return ac_build_intrinsic(ctx, name, result_type, &result, 1, 0); > } > > void > -- > 2.21.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev