uint8x8x3_t f_vld3_lane_u8 (uint8_t * p, uint8x8x3_t v) { uint8x8x3_t res; /* { dg-error "lane 8 out of range 0 - 7" "" { xfail arm*-*-* } 0 } */ res = vld3_lane_u8 (p, v, 8); /* { dg-error "lane -1 out of range 0 - 7" "" { xfail arm*-*-* } 0 } */ res = vld3_lane_u8 (p, v, -1); return res; }
void test_vld3_laneu8 (void) { uint8x8x3_t out_uint8x8x3_t; uint8x8x3_t arg1_uint8x8x3_t; out_uint8x8x3_t = vld3_lane_u8 (0, arg1_uint8x8x3_t, 1); }
/* Expands a palettized row into RGB format. */ int png_do_expand_palette_neon_rgb(png_structrp png_ptr, png_row_infop row_info, png_const_bytep row, png_bytepp ssp, png_bytepp ddp) { png_uint_32 row_width = row_info->width; png_const_bytep palette = (png_const_bytep)png_ptr->palette; const png_uint_32 pixels_per_chunk = 8; int i; if (row_width <= pixels_per_chunk) return 0; /* Seeking this back by 8 pixels x 3 bytes. */ *ddp = *ddp - ((pixels_per_chunk * sizeof(png_color)) - 1); for (i = 0; i < row_width; i += pixels_per_chunk) { uint8x8x3_t cur; png_bytep sp = *ssp - i, dp = *ddp - ((i << 1) + i); cur = vld3_dup_u8(palette + sizeof(png_color) * (*(sp - 7))); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 6)), cur, 1); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 5)), cur, 2); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 4)), cur, 3); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 3)), cur, 4); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 2)), cur, 5); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 1)), cur, 6); cur = vld3_lane_u8(palette + sizeof(png_color) * (*(sp - 0)), cur, 7); vst3_u8((void *)dp, cur); } if (i != row_width) { /* Remove the amount that wasn't processed. */ i -= pixels_per_chunk; } /* Decrement output pointers. */ *ssp = *ssp - i; *ddp = *ddp - ((i << 1) + i); return i; }