diff --git a/plugin.json b/plugin.json index 1dad1e8..82d6739 100644 --- a/plugin.json +++ b/plugin.json @@ -73,4 +73,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/simd_mask.hpp b/src/simd_mask.hpp index 158a3ce..322bc8c 100644 --- a/src/simd_mask.hpp +++ b/src/simd_mask.hpp @@ -24,13 +24,15 @@ struct ChannelMask { inline void apply(simd::float_4 *vec, int numChannels) { int c=numChannels/4; - vec[c] = vec[c]&mask[numChannels-4*c]; + if(c<4) vec[c] = vec[c]&mask[numChannels-4*c]; } inline void apply_all(simd::float_4 *vec, int numChannels) { int c=numChannels/4; - vec[c] = vec[c]&mask[numChannels-4*c]; - for(int i=c+1; i<4; i++) vec[i] = simd::float_4::zero(); + if(c<4) { + vec[c] = vec[c]&mask[numChannels-4*c]; + for(int i=c+1; i<4; i++) vec[i] = simd::float_4::zero(); + } }