Skip to content
  • allan.jensen@nokia.com's avatar
    Fix blend filter for autovectorizing · 89e9ee1b
    allan.jensen@nokia.com authored
    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: http://svn.webkit.org/repository/webkit/trunk@123467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    89e9ee1b