1 /* { dg-do compile } */
2 /* { dg-options "-O -fno-tree-forwprop -fno-tree-ccp -fdump-tree-fre1-details" } */
3 
4 _Complex float m;
5 
6 void
foo(_Complex float x)7 foo (_Complex float x)
8 {
9   float r = __real x;
10   float i = __imag x;
11   _Complex float z;
12   __real z = r;
13   __imag z = i;
14   m = z;
15 }
16 
17 void
bar(_Complex float x)18 bar (_Complex float x)
19 {
20   float r = __real x;
21   float i = __imag x;
22   _Complex float z = x;
23   __real z = r;
24   __imag z = i;
25   m = z;
26 }
27 
28 /* We should CSE all the way to replace the stored value with x.  */
29 /* { dg-final { scan-tree-dump-times "m = x_\\d\+\\(D\\);" 2 "fre1" } } */
30