From 552bcf4c906522c3ef7695654052f61e12260049 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 9 Apr 2019 22:06:03 +0200 Subject: transfer: add AVX2 version of LAGRANGE_5 interpolation. --- transfer.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'transfer.c') diff --git a/transfer.c b/transfer.c index 311c6a9..db3cecb 100644 --- a/transfer.c +++ b/transfer.c @@ -61,6 +61,10 @@ void mg2di_transfer_interp_line_cont_4_fma3(double *dst, ptrdiff_t dst_len, const double *src, ptrdiff_t src_stride, const ptrdiff_t *idx_x, const double *fact_x, const double *fact_y); +void mg2di_transfer_interp_line_cont_6_fma3(double *dst, ptrdiff_t dst_len, + const double *src, ptrdiff_t src_stride, + const ptrdiff_t *idx_x, + const double *fact_x, const double *fact_y); #endif #define STENCIL 2 @@ -170,6 +174,11 @@ static int transfer_lagrange_init(GridTransferContext *ctx) priv->transfer_cont = interp_transfer_line_cont_6; priv->transfer_generic = interp_transfer_line_generic_6; priv->stencil = 6; +#if HAVE_EXTERNAL_ASM + if (ctx->cpuflags & MG2DI_CPU_FLAG_FMA3) { + priv->transfer_cont = mg2di_transfer_interp_line_cont_6_fma3; + } +#endif break; case GRID_TRANSFER_LAGRANGE_7: priv->transfer_cont = interp_transfer_line_cont_8; -- cgit v1.2.3