1 /* { dg-do compile } */
2 /* { dg-options "-O2 -ffast-math -fdump-tree-reassoc1" } */
3 
f1_float(float x,float z)4 float f1_float (float x, float z)
5 {
6     float y = x + z;
7     y = y + x;
8     y = y + x;
9     y = y + x;
10     y = y + x;
11     y = y + x;
12     y = y + x;
13     y = y + x;
14     return y;
15 }
16 
f1_float2(float x)17 float f1_float2 (float x)
18 {
19     float y = x + 3 * x + x;
20     return y;
21 }
22 
f1_int(int x)23 int f1_int (int x)
24 {
25     int y = x + 4 * x + x;
26     return y;
27 }
28 
29 /* { dg-final { scan-tree-dump-times "\\\* 8\\\.0e\\\+0" 1 "reassoc1" } } */
30 /* { dg-final { scan-tree-dump-times "\\\* 5\\\.0e\\\+0" 1 "reassoc1" } } */
31 /* { dg-final { scan-tree-dump-times "\\\* 6" 1 "reassoc1" } } */
32 
33