Index: src/core/SkConvolver.cpp |
diff --git a/src/core/SkConvolver.cpp b/src/core/SkConvolver.cpp |
index 0e97fac07ffc5083cad6d045247c37e388428cd6..298600e871f32383362a635b2e12e8ecf0f0a378 100644 |
--- a/src/core/SkConvolver.cpp |
+++ b/src/core/SkConvolver.cpp |
@@ -330,6 +330,11 @@ const SkConvolutionFilter1D::ConvolutionFixed* SkConvolutionFilter1D::GetSingleF |
return &fFilterValues[filter.fDataLocation]; |
} |
+// There's a bug somewhere in here with GCC autovectorization (-ftree-vectorize) on 32 bit builds. |
+// Dropping to -O2 disables -ftree-vectorize. http://skbug.com/2575 |
+#if defined(__i386) && SK_HAS_ATTRIBUTE(optimize) |
+ __attribute__((optimize("O2"))) |
+#endif |
void BGRAConvolve2D(const unsigned char* sourceData, |
int sourceByteRowStride, |
bool sourceHasAlpha, |