https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111677
--- Comment #8 from Gianfranco <costamagnagianfranco at yahoo dot it> ---
reduced testcase:
typedef struct {
int width
} dt_bilateral_t;
typedef dt_aligned_pixel_t[4];
#pragma omp declare simd
void dt_bilateral_splat(dt_bilateral_t *b) {
int oy = b;
float *buf;
long offsets[8];
for (int slice; slice < b; slice++) {
for (int i; i < b->width; i++) {
dt_aligned_pixel_t contrib;
for (int k = 0; k < 4; k++)
buf[offsets[k]] += contrib[k];
}
float *dest, *src = oy;
for (int i = 0; i < oy; i++)
dest[i] += src[i];
}
}
removing openmp, fstack-protector-strong or ffast-math works.