1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-reassoc1" } */
4 unsigned int test1 (unsigned int x
, unsigned int y
, unsigned int z
,
7 unsigned int tmp1
= x
* weight
;
8 unsigned int tmp2
= y
* weight
;
9 unsigned int tmp3
= (x
- y
) * weight
;
10 return tmp1
+ (tmp2
+ tmp3
);
13 unsigned int test2 (unsigned int x
, unsigned int y
, unsigned int z
,
16 unsigned int tmp1
= x
* weight
;
17 unsigned int tmp2
= y
* weight
* weight
;
18 unsigned int tmp3
= z
* weight
* weight
* weight
;
19 return tmp1
+ tmp2
+ tmp3
;
22 /* There should be one multiplication left in test1 and three in test2. */
24 /* { dg-final { scan-tree-dump-times "\\\*" 4 "reassoc1" } } */
25 /* { dg-final { cleanup-tree-dump "reassoc1" } } */