/* { dg-options "-O3 -floop-interchange" } */ typedef unsigned char uint8_t; void border_mirror(uint8_t *outer_img, int w, int h, int rb, int border) { uint8_t *img = outer_img + border * rb + border; int x, y; for (y = -border; y < 0; y++) { for (x = -border; x < 0; x++) img[y*rb + x] = img[(-y)*rb + (-x)]; for (x = 0; x < w; x++) img[y*rb + x] = img[(-y)*rb + x]; } } void border_mirror_480(uint8_t *outer_img) { border_mirror(outer_img, 640, 480, 640 + 16*2, 16); }