/* { dg-do compile } */ /* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */ float f1_float (float x, float z) { float y = x + z; y = y + x; y = y + x; y = y + x; y = y + x; y = y + x; y = y + x; y = y + x; return y; } float f1_float2 (float x) { float y = x + 3 * x + x; return y; } int f1_int (int x) { int y = x + 4 * x + x; return y; } /* { dg-final { scan-tree-dump-times "\\\* 8\\\.0e\\\+0" 1 "reassoc1" } } */ /* { dg-final { scan-tree-dump-times "\\\* 5\\\.0e\\\+0" 1 "reassoc1" } } */ /* { dg-final { scan-tree-dump-times "\\\* 6" 1 "reassoc1" } } */