diff options
author | Anton Khirnov <anton@khirnov.net> | 2019-04-09 22:06:03 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2019-04-09 22:06:03 +0200 |
commit | 552bcf4c906522c3ef7695654052f61e12260049 (patch) | |
tree | 294b5c636a6c29f050d0a7112cc47508c3a1e14c /transfer.c | |
parent | 1e83fd63c30d433ee53769d4e4768feabf822ae2 (diff) |
transfer: add AVX2 version of LAGRANGE_5 interpolation.
Diffstat (limited to 'transfer.c')
-rw-r--r-- | transfer.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -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; |