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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, either SRA should be tweaked so that it can deal with DSE trimming of
initializations (I think that is the best way forward, after all, user could
have
done it manually too -
struct i256 {
    long v[4];
};
void assign(struct i256 *v, long z) {
    struct i256 r;
    __builtin_memset (&r.v[1], 0, sizeof (long) * 3);
    for (int i = 0; i < 1; ++i) 
        r.v[i] = z;
    *v = r;
}
regressed with r7-2588-gdf7ec09f1209a33b35 ), or we should do something at the
RTL level  like it apparently worked before the r7-2588 change, or we should
disable trimming in the DSE part before SRA.

Reply via email to