https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122793

Kacper Michajłow <kasper93 at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kasper93 at gmail dot com

--- Comment #5 from Kacper Michajłow <kasper93 at gmail dot com> ---
Smaller reproducer, in case it would be useful.

```
static void foo(unsigned char *dst, unsigned char *src,
                int dstStride, int srcStride) {
  for (int i = 0; i < 4; i++) {
    dst[0] = src[-2];
    dst[5] = (src[5] + src[6]) * 2 - (src[4] + src[7]) * 5 + src[3] + src[8];
    dst[6] = (src[6] + src[7]) * 2 - (src[5] + src[8]) * 5 + src[4] + src[9];
    dst[7] = (src[7] + src[8]) * 2 - (src[6] + src[9]) * 5 + src[5] + src[0];
    dst += dstStride;
    src += srcStride;
  }
}

unsigned char src[128] = {2};
unsigned char dst[128];

int main() {
  foo(dst, src + 2, 16, 16);
  if (dst[5] != 0)
    __builtin_abort();
}
```

Reply via email to