/* PR tree-optimization/64193 */ /* { dg-do compile } */ /* { dg-options "-O -fdump-tree-fre1" } */ double T,T2,E1[5]; int J; void PA(double E[]) { J = 0; L10: E[1] = ( E[1] + E[2] + E[3] - E[4]) * T; E[2] = ( E[1] + E[2] - E[3] + E[4]) * T; E[3] = ( E[1] - E[2] + E[3] + E[4]) * T; E[4] = (-E[1] + E[2] + E[3] + E[4]) / T2; J += 1; if (J < 6) goto L10; } /* We should remove 15 dead loads and some related stmts, fully propagating their replacements with exactly 4 loads and 4 stores from/to E remaining. */ /* { dg-final { scan-tree-dump-times "MEM" 8 "fre1" } } */