mypaint / libmypaint

libmypaint, a.k.a. "brushlib", is a library for making brushstrokes which is used by MyPaint and other projects.
http://mypaint.org
Other
307 stars 87 forks source link

allow auto vectorization in spectral_to_rgb #171

Closed SleepProgger closed 4 years ago

SleepProgger commented 4 years ago

Currently the spectral_to_rgb function can't be auto vectorized by gcc due to "complicated access pattern". This PR solves that by using a temporary array.

This changes the IR required per call according to callgrind from from 206 to 122 with sse2 and 99 with avx.