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
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
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 }