Skip to content

Commit 8f3a26e

Browse files
committed
fixes
1 parent 223b1b2 commit 8f3a26e

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

src_c/simd_surface_fill_avx2.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -170,25 +170,20 @@ _pg_has_avx2()
170170
#define SUB_CODE mm256_dst = _mm256_subs_epu8(mm256_dst, mm256_color);
171171
#define MIN_CODE mm256_dst = _mm256_min_epu8(mm256_dst, mm256_color);
172172
#define MAX_CODE mm256_dst = _mm256_max_epu8(mm256_dst, mm256_color);
173-
#define MULT_CODE \
174-
{ \
175-
shuff_dst = _mm256_mullo_epi16(shuff_dst, mm256_color); \
176-
shuff_dst = _mm256_srli_epi16(shuff_dst, 8); \
173+
#define MULT_CODE \
174+
{ \
175+
shuff_dst = _mm256_mullo_epi16(shuff_dst, mm256_color); \
176+
shuff_dst = _mm256_adds_epu16(shuff_dst, _mm256_set1_epi16(255)); \
177+
shuff_dst = _mm256_srli_epi16(shuff_dst, 8); \
177178
}
178179

179180
#if defined(__AVX2__) && defined(HAVE_IMMINTRIN_H) && \
180181
!defined(SDL_DISABLE_IMMINTRIN_H)
181182
FILLERS(add, color &= ~amask;, ADD_CODE)
182183
FILLERS(sub, color &= ~amask;, SUB_CODE)
183-
FILLERS(min, color &= ~amask;, MIN_CODE)
184+
FILLERS(min, color |= amask;, MIN_CODE)
184185
FILLERS(max, color &= ~amask;, MAX_CODE)
185-
FILLERS_SHUFF(
186-
mult,
187-
{
188-
color &= ~amask; /* clear the alpha channel */
189-
color |= (0x01010101 & amask); /* set the alpha channel to 1 */
190-
},
191-
MULT_CODE)
186+
FILLERS_SHUFF(mult, color |= amask;, MULT_CODE)
192187
#else
193188
INVALID_DEFS(add)
194189
INVALID_DEFS(sub)

0 commit comments

Comments
 (0)