Index: source/scale_argb.cc |
diff --git a/source/scale_argb.cc b/source/scale_argb.cc |
index 09c6e0ae1fc47461341fd8e304d6083c5a787ae6..17e61ba708b4f58fb152541d1e5447caaa735bc9 100644 |
--- a/source/scale_argb.cc |
+++ b/source/scale_argb.cc |
@@ -92,6 +92,22 @@ static void ScaleARGBDown2(int src_width, |
} |
} |
#endif |
+#if defined(HAS_SCALEARGBROWDOWN2_MSA) |
+ if (TestCpuFlag(kCpuHasMSA)) { |
+ ScaleARGBRowDown2 = |
+ filtering == kFilterNone |
+ ? ScaleARGBRowDown2_Any_MSA |
+ : (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_Any_MSA |
+ : ScaleARGBRowDown2Box_Any_MSA); |
+ if (IS_ALIGNED(dst_width, 4)) { |
+ ScaleARGBRowDown2 = |
+ filtering == kFilterNone |
+ ? ScaleARGBRowDown2_MSA |
+ : (filtering == kFilterLinear ? ScaleARGBRowDown2Linear_MSA |
+ : ScaleARGBRowDown2Box_MSA); |
+ } |
+ } |
+#endif |
if (filtering == kFilterLinear) { |
src_stride = 0; |
@@ -203,6 +219,16 @@ static void ScaleARGBDownEven(int src_width, |
} |
} |
#endif |
+#if defined(HAS_SCALEARGBROWDOWNEVEN_MSA) |
+ if (TestCpuFlag(kCpuHasMSA)) { |
+ ScaleARGBRowDownEven = filtering ? ScaleARGBRowDownEvenBox_Any_MSA |
+ : ScaleARGBRowDownEven_Any_MSA; |
+ if (IS_ALIGNED(dst_width, 4)) { |
+ ScaleARGBRowDownEven = |
+ filtering ? ScaleARGBRowDownEvenBox_MSA : ScaleARGBRowDownEven_MSA; |
+ } |
+ } |
+#endif |
if (filtering == kFilterLinear) { |
src_stride = 0; |