Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.c-torture/compile/pr42705.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
typedef int GLint; typedef unsigned char GLubyte; typedef unsigned int uint32_t; struct radeon_bo { void *ptr; uint32_t flags; }; struct radeon_renderbuffer { struct radeon_bo *bo; unsigned int cpp; int has_surface; }; static inline GLint r600_1d_tile_helper(const struct radeon_renderbuffer * rrb, GLint x, GLint y, GLint is_depth, GLint is_stencil) { GLint element_bytes = rrb->cpp; GLint num_samples = 1; GLint tile_width = 8; GLint tile_height = 8; GLint tile_thickness = 1; GLint tile_bytes; GLint tiles_per_row; GLint slice_offset; GLint tile_row_index; GLint tile_column_index; GLint tile_offset; GLint pixel_number = 0; GLint element_offset; GLint offset = 0; tile_bytes = tile_width * tile_height * tile_thickness * element_bytes * num_samples; tile_column_index = x / tile_width; tile_offset = ((tile_row_index * tiles_per_row) + tile_column_index) * tile_bytes; if (is_depth) { } else { GLint sample_offset; switch (element_bytes) { case 1: pixel_number |= ((x >> 0) & 1) << 0; } element_offset = sample_offset + (pixel_number * element_bytes); } offset = slice_offset + tile_offset + element_offset; return offset; } GLubyte *r600_ptr_color(const struct radeon_renderbuffer * rrb, GLint x, GLint y) { GLubyte *ptr = rrb->bo->ptr; uint32_t mask = 1 | 2; GLint offset; if (rrb->has_surface || !(rrb->bo->flags & mask)) { offset = r600_1d_tile_helper(rrb, x, y, 0, 0); } return &ptr[offset]; }