Author: post
Date: 2009-10-12 17:54:32 +0200 (Mon, 12 Oct 2009)
New Revision: 2700

Modified:
   trunk/plugins/resample/resample.c
Log:
Add soft prefetch to vertical resampler.

Modified: trunk/plugins/resample/resample.c
===================================================================
--- trunk/plugins/resample/resample.c   2009-10-12 15:35:30 UTC (rev 2699)
+++ trunk/plugins/resample/resample.c   2009-10-12 15:54:32 UTC (rev 2700)
@@ -759,12 +759,16 @@
                        for (i = 0; i < fir_filter_size; i++) {
                                /* Load weight */
                                __m128i w = 
_mm_set_epi32(wg[i],wg[i],wg[i],wg[i]);
-                               /* Load source */
+                               
+                               /* Load source and prefetch next line */
+                               int pos = i * input->rowstride;
                                __m128i src1i, src2i, src3i;
-                               __m128i* in_sse =  (__m128i*)&in[i * 
input->rowstride];
+                               __m128i* in_sse =  (__m128i*)&in[pos];
                                src1i = _mm_load_si128(in_sse);
                                src2i = _mm_load_si128(in_sse+1);
                                src3i = _mm_load_si128(in_sse+2);
+                               _mm_prefetch(&in[pos + input->rowstride], 
_MM_HINT_T0);
+                               
                                /* Unpack to dwords */
                                __m128i src1i_h, src2i_h, src3i_h;
                                src1i_h = _mm_unpackhi_epi16(src1i, zero);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to