1 /* Verify that rtl expansion cleanup doesn't get too aggressive about
2    code dealing with complex CONCATs.  */
3 /* { dg-do run } */
4 /* { dg-options "-O -fno-tree-sra" } */
5 
6 extern void abort (void);
7 extern void exit (int);
8 
foo(void)9 __complex__ float foo (void)
10 {
11   __complex__ float f[1];
12   __real__ f[0] = 1;
13   __imag__ f[0] = 1;
14   f[0] = __builtin_conjf (f[0]);
15   return f[0];
16 }
17 
main(void)18 int main (void)
19 {
20   __complex__ double d[1];
21   d[0] = foo ();
22   if (__real__ d[0] != 1 || __imag__ d[0] != -1)
23     abort ();
24   exit (0);
25 }
26