Skip to content

Commit 6f0bb74

Browse files
committed
(RPGN) Fixes issues for accelerated SIMD NEON codepath
1 parent 5863bb0 commit 6f0bb74

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

  • libretro-common/formats/png

libretro-common/formats/png/rpng.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,12 @@ static void rpng_copy_line_rgba_neon(uint32_t *data,
301301
uint16x8_t ag = vshll_n_u8(a, 8); /* a << 8 */
302302
ag = vorrq_u16(ag, vmovl_u8(r)); /* | r → high word = A|R (need to shift) */
303303
/* Build full 32-bit using vshl + orr on 32-bit lanes */
304-
uint32x4_t lo_a = vshll_n_u16(vget_low_u16(vmovl_u8(a)), 24);
304+
uint32x4_t lo_a = vshlq_n_u32(vmovl_u16(vget_low_u16(vmovl_u8(a))), 24);
305305
uint32x4_t lo_r = vshll_n_u16(vget_low_u16(vmovl_u8(r)), 16);
306306
uint32x4_t lo_g = vshll_n_u16(vget_low_u16(vmovl_u8(g)), 8);
307307
uint32x4_t lo_b = vmovl_u16(vget_low_u16(vmovl_u8(b)));
308308
uint32x4_t lo = vorrq_u32(vorrq_u32(lo_a, lo_r), vorrq_u32(lo_g, lo_b));
309-
uint32x4_t hi_a = vshll_n_u16(vget_high_u16(vmovl_u8(a)), 24);
309+
uint32x4_t hi_a = vshlq_n_u32(vmovl_u16(vget_high_u16(vmovl_u8(a))), 24);
310310
uint32x4_t hi_r = vshll_n_u16(vget_high_u16(vmovl_u8(r)), 16);
311311
uint32x4_t hi_g = vshll_n_u16(vget_high_u16(vmovl_u8(g)), 8);
312312
uint32x4_t hi_b = vmovl_u16(vget_high_u16(vmovl_u8(b)));

0 commit comments

Comments
 (0)