aboutsummaryrefslogtreecommitdiff
path: root/residual_calc.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2019-04-09 09:35:58 +0200
committerAnton Khirnov <anton@khirnov.net>2024-04-16 17:32:15 +0200
commitbda21267fd85388d1543976cc86f71097fc2bf5c (patch)
tree9587cffb5f4e1bd42f1ad54d9a42b839e573b5e6 /residual_calc.c
parentbf320a3d0f5c526f0d96551681c37e20b3f44efb (diff)
residual_calc.asm: add AVX512 versionavx512
Diffstat (limited to 'residual_calc.c')
-rw-r--r--residual_calc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/residual_calc.c b/residual_calc.c
index 6d43e4d..fe7ec12 100644
--- a/residual_calc.c
+++ b/residual_calc.c
@@ -79,6 +79,11 @@ ResidualLineCalc mg2di_residual_line_calc_s1_avx2;
ResidualLineCalc mg2di_residual_line_calc_s2_avx2;
ResidualLineAdd mg2di_residual_line_add_s1_avx2;
ResidualLineAdd mg2di_residual_line_add_s2_avx2;
+
+ResidualLineCalc mg2di_residual_line_calc_s1_avx512;
+ResidualLineCalc mg2di_residual_line_calc_s2_avx512;
+ResidualLineAdd mg2di_residual_line_add_s1_avx512;
+ResidualLineAdd mg2di_residual_line_add_s2_avx512;
#endif
static void
@@ -336,6 +341,11 @@ int mg2di_residual_calc_init(ResidualCalcContext *ctx)
priv->residual_line_add = mg2di_residual_line_add_s1_avx2;
priv->calc_blocksize = 4;
}
+ if (ctx->cpuflags & MG2DI_CPU_FLAG_AVX512) {
+ priv->residual_line_calc = mg2di_residual_line_calc_s1_avx512;
+ priv->residual_line_add = mg2di_residual_line_add_s1_avx512;
+ priv->calc_blocksize = 8;
+ }
#endif
break;
case 2:
@@ -347,6 +357,11 @@ int mg2di_residual_calc_init(ResidualCalcContext *ctx)
priv->residual_line_add = mg2di_residual_line_add_s2_avx2;
priv->calc_blocksize = 4;
}
+ if (ctx->cpuflags & MG2DI_CPU_FLAG_AVX512) {
+ priv->residual_line_calc = mg2di_residual_line_calc_s2_avx512;
+ priv->residual_line_add = mg2di_residual_line_add_s2_avx512;
+ priv->calc_blocksize = 8;
+ }
#endif
break;
}