| Index: Source/platform/graphics/filters/FilterEffect.cpp
 | 
| diff --git a/Source/platform/graphics/filters/FilterEffect.cpp b/Source/platform/graphics/filters/FilterEffect.cpp
 | 
| index 9ec5524bf1e511e8f3442aad82daae643f3a0bf0..6b81913c94583df6b12c024e6f621fab225e404f 100644
 | 
| --- a/Source/platform/graphics/filters/FilterEffect.cpp
 | 
| +++ b/Source/platform/graphics/filters/FilterEffect.cpp
 | 
| @@ -25,14 +25,13 @@
 | 
|  
 | 
|  #include "platform/graphics/filters/FilterEffect.h"
 | 
|  
 | 
| +#if HAVE(ARM_NEON_INTRINSICS)
 | 
| +#include "platform/graphics/cpu/arm/filters/FilterEffectNEON.h"
 | 
| +#endif
 | 
|  #include "platform/graphics/ImageBuffer.h"
 | 
|  #include "platform/graphics/UnacceleratedImageBufferSurface.h"
 | 
|  #include "platform/graphics/filters/Filter.h"
 | 
|  
 | 
| -#if HAVE(ARM_NEON_INTRINSICS)
 | 
| -#include <arm_neon.h>
 | 
| -#endif
 | 
| -
 | 
|  namespace blink {
 | 
|  
 | 
|  static const float kMaxFilterArea = 4096 * 4096;
 | 
| @@ -220,22 +219,8 @@ void FilterEffect::forceValidPreMultipliedPixels()
 | 
|      ASSERT(!(pixelArrayLength % 4));
 | 
|  
 | 
|  #if HAVE(ARM_NEON_INTRINSICS)
 | 
| -    if (pixelArrayLength >= 64) {
 | 
| -        unsigned char* lastPixel = pixelData + (pixelArrayLength & ~0x3f);
 | 
| -        do {
 | 
| -            // Increments pixelData by 64.
 | 
| -            uint8x16x4_t sixteenPixels = vld4q_u8(pixelData);
 | 
| -            sixteenPixels.val[0] = vminq_u8(sixteenPixels.val[0], sixteenPixels.val[3]);
 | 
| -            sixteenPixels.val[1] = vminq_u8(sixteenPixels.val[1], sixteenPixels.val[3]);
 | 
| -            sixteenPixels.val[2] = vminq_u8(sixteenPixels.val[2], sixteenPixels.val[3]);
 | 
| -            vst4q_u8(pixelData, sixteenPixels);
 | 
| -            pixelData += 64;
 | 
| -        } while (pixelData < lastPixel);
 | 
| -
 | 
| -        pixelArrayLength &= 0x3f;
 | 
| -        if (!pixelArrayLength)
 | 
| -            return;
 | 
| -    }
 | 
| +    if (hasCPUNEON())
 | 
| +        pixelArrayLength = validPreMultipliedPixels64NEON(imageArray->length(), pixelData);
 | 
|  #endif
 | 
|  
 | 
|      int numPixels = pixelArrayLength / 4;
 | 
| 
 |