Fix blend filter for autovectorizing
https://bugs.webkit.org/show_bug.cgi?id=91398
Reviewed by Nikolas Zimmermann.
To support auto-vectorizing, the loop had to be unswitched, and regular arrays used that
did not do boundary-checks in the inner loop. Finally the integer division by 255
was optimized not use integer division intrinsics.
On a X86-64 architechture using GCC -O3 on the file, this gives a speed-up of 2.9x.
* platform/graphics/filters/FEBlend.cpp:
(WebCore::fastDivideBy255):
(BlendNormal):
(WebCore::BlendNormal::apply):
(BlendMultiply):
(WebCore::BlendMultiply::apply):
(BlendScreen):
(WebCore::BlendScreen::apply):
(BlendDarken):
(WebCore::BlendDarken::apply):
(BlendLighten):
(WebCore::BlendLighten::apply):
(BlendUnknown):
(WebCore::BlendUnknown::apply):
(WebCore::platformApply):
(WebCore::FEBlend::platformApplyGeneric):
(WebCore::FEBlend::platformApplySoftware):
* platform/graphics/filters/FEBlend.h:
(FEBlend):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@123467
268f45cc-cd09-0410-ab3c-
d52691b4dbfc