added #undef _mm_packus_epi32
authorIlya Lavrenov <ilya.lavrenov@itseez.com>
Mon, 17 Dec 2012 12:56:37 +0000 (16:56 +0400)
committerIlya Lavrenov <ilya.lavrenov@itseez.com>
Mon, 17 Dec 2012 12:56:37 +0000 (16:56 +0400)
modules/imgproc/src/imgwarp.cpp

index ede6604..f536623 100644 (file)
@@ -1271,7 +1271,7 @@ public:
         if (cn == 1)
         {
             __m128i masklow = _mm_set1_epi16(0x00ff);
-            for ( ; dx <= w - 8; dx += 8, S0 += 16, S1 += 16, D += 8)
+            for ( ; dx < w - 8; dx += 8, S0 += 16, S1 += 16, D += 8)
             {
                 __m128i r0 = _mm_loadu_si128((const __m128i*)S0);
                 __m128i r1 = _mm_loadu_si128((const __m128i*)S1);
@@ -1285,7 +1285,7 @@ public:
             }
         }
         else if (cn == 3)
-            for ( ; dx <= w - 6; dx += 6, S0 += 12, S1 += 12, D += 6)
+            for ( ; dx < w - 6; dx += 6, S0 += 12, S1 += 12, D += 6)
             {
                 __m128i r0 = _mm_loadu_si128((const __m128i*)S0);
                 __m128i r1 = _mm_loadu_si128((const __m128i*)S1);
@@ -1310,7 +1310,7 @@ public:
         else
         {
             CV_Assert(cn == 4);
-            for ( ; dx <= w - 8; dx += 8, S0 += 16, S1 += 16, D += 8)
+            for ( ; dx < w - 8; dx += 8, S0 += 16, S1 += 16, D += 8)
             {
                 __m128i r0 = _mm_loadu_si128((const __m128i*)S0);
                 __m128i r1 = _mm_loadu_si128((const __m128i*)S1);
@@ -1364,11 +1364,11 @@ public:
         __m128i zero = _mm_setzero_si128();
         __m128i delta2 = _mm_set1_epi32(2);
 
-#define _mm_packus_epi32(a, zero) _mm_packs_epi32(_mm_srai_epi32(_mm_slli_epi32(a, 16), 16), zero);
+#define _mm_packus_epi32(a, zero) _mm_packs_epi32(_mm_srai_epi32(_mm_slli_epi32(a, 16), 16), zero)
 
         if (cn == 1)
         {
-            for ( ; dx <= w - 4; dx += 4, S0 += 8, S1 += 8, D += 4)
+            for ( ; dx < w - 4; dx += 4, S0 += 8, S1 += 8, D += 4)
             {
                 __m128i r0 = _mm_loadu_si128((const __m128i*)S0);
                 __m128i r1 = _mm_loadu_si128((const __m128i*)S1);
@@ -1383,7 +1383,7 @@ public:
             }
         }
         else if (cn == 3)
-            for ( ; dx <= w - 3; dx += 3, S0 += 6, S1 += 6, D += 3)
+            for ( ; dx < w - 3; dx += 3, S0 += 6, S1 += 6, D += 3)
             {
                 __m128i r0 = _mm_loadu_si128((const __m128i*)S0);
                 __m128i r1 = _mm_loadu_si128((const __m128i*)S1);
@@ -1402,7 +1402,7 @@ public:
         else
         {
             CV_Assert(cn == 4);
-            for ( ; dx <= w - 4; dx += 4, S0 += 8, S1 += 8, D += 4)
+            for ( ; dx < w - 4; dx += 4, S0 += 8, S1 += 8, D += 4)
             {
                 __m128i r0 = _mm_loadu_si128((const __m128i*)S0);
                 __m128i r1 = _mm_loadu_si128((const __m128i*)S1);
@@ -1420,6 +1420,8 @@ public:
             }
         }
 
+#undef _mm_packus_epi32
+
         return dx;
     }