summaryrefslogtreecommitdiff
path: root/transfer.c
diff options
context:
space:
mode:
Diffstat (limited to 'transfer.c')
-rw-r--r--transfer.c9
1 files changed, 9 insertions, 0 deletions
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;