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
       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
      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" } } */